From 976731ab6cc88b88a71179f9ed4b27cbdc3c54da Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 29 Mar 2019 17:01:31 +0100 Subject: [PATCH] command/playlist: invoke the RemoteTagScanner on all newly added songs Closes https://github.com/MusicPlayerDaemon/MPD/issues/234 --- NEWS | 2 ++ src/command/PlaylistCommands.cxx | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index b93d711b5..7c1efe15d 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.21.7 (not yet released) +* input + - qobuz/tidal: scan tags when loading a playlist * require Meson 0.49.0 for native libgcrypt-config support * fix build failure with -Dlocal_socket=false * Haiku diff --git a/src/command/PlaylistCommands.cxx b/src/command/PlaylistCommands.cxx index 858cd2029..89b64ff6f 100644 --- a/src/command/PlaylistCommands.cxx +++ b/src/command/PlaylistCommands.cxx @@ -20,6 +20,7 @@ #include "config.h" #include "PlaylistCommands.hxx" #include "Request.hxx" +#include "Instance.hxx" #include "db/DatabasePlaylist.hxx" #include "CommandError.hxx" #include "PlaylistSave.hxx" @@ -27,6 +28,7 @@ #include "PlaylistError.hxx" #include "db/PlaylistVector.hxx" #include "SongLoader.hxx" +#include "song/DetachedSong.hxx" #include "BulkEdit.hxx" #include "playlist/PlaylistQueue.hxx" #include "playlist/Print.hxx" @@ -76,11 +78,21 @@ handle_load(Client &client, Request args, gcc_unused Response &r) const ScopeBulkEdit bulk_edit(client.GetPartition()); + auto &playlist = client.GetPlaylist(); + const unsigned old_size = playlist.GetLength(); + const SongLoader loader(client); playlist_open_into_queue(uri, range.start, range.end, - client.GetPlaylist(), + playlist, client.GetPlayerControl(), loader); + + /* invoke the RemoteTagScanner on all newly added songs */ + auto &instance = client.GetInstance(); + const unsigned new_size = playlist.GetLength(); + for (unsigned i = old_size; i < new_size; ++i) + instance.LookupRemoteTag(playlist.queue.Get(i).GetURI()); + return CommandResult::OK; }