diff --git a/src/command/TagCommands.cxx b/src/command/TagCommands.cxx index 771ae4f5d..2ee67cbdf 100644 --- a/src/command/TagCommands.cxx +++ b/src/command/TagCommands.cxx @@ -41,11 +41,7 @@ handle_addtagid(Client &client, Request args, Response &r) const char *const value = args[2]; - Error error; - if (!client.partition.playlist.AddSongIdTag(song_id, tag_type, value, - error)) - return print_error(r, error); - + client.partition.playlist.AddSongIdTag(song_id, tag_type, value); return CommandResult::OK; } @@ -65,10 +61,6 @@ handle_cleartagid(Client &client, Request args, Response &r) } } - Error error; - if (!client.partition.playlist.ClearSongIdTag(song_id, tag_type, - error)) - return print_error(r, error); - + client.partition.playlist.ClearSongIdTag(song_id, tag_type); return CommandResult::OK; } diff --git a/src/queue/Playlist.hxx b/src/queue/Playlist.hxx index cd82b4b11..1abfb56a2 100644 --- a/src/queue/Playlist.hxx +++ b/src/queue/Playlist.hxx @@ -258,9 +258,8 @@ public: SongTime start, SongTime end, Error &error); - bool AddSongIdTag(unsigned id, TagType tag_type, const char *value, - Error &error); - bool ClearSongIdTag(unsigned id, TagType tag_type, Error &error); + void AddSongIdTag(unsigned id, TagType tag_type, const char *value); + void ClearSongIdTag(unsigned id, TagType tag_type); void Stop(PlayerControl &pc); diff --git a/src/queue/PlaylistTag.cxx b/src/queue/PlaylistTag.cxx index e61381bc1..08d66810a 100644 --- a/src/queue/PlaylistTag.cxx +++ b/src/queue/PlaylistTag.cxx @@ -29,25 +29,18 @@ #include "DetachedSong.hxx" #include "tag/Tag.hxx" #include "tag/TagBuilder.hxx" -#include "util/Error.hxx" -bool -playlist::AddSongIdTag(unsigned id, TagType tag_type, const char *value, - Error &error) +void +playlist::AddSongIdTag(unsigned id, TagType tag_type, const char *value) { const int position = queue.IdToPosition(id); - if (position < 0) { - error.Set(playlist_domain, int(PlaylistResult::NO_SUCH_SONG), - "No such song"); - return false; - } + if (position < 0) + throw PlaylistError::NoSuchSong(); DetachedSong &song = queue.Get(position); - if (song.IsFile()) { - error.Set(playlist_domain, int(PlaylistResult::DENIED), - "Cannot edit tags of local file"); - return false; - } + if (song.IsFile()) + throw PlaylistError(PlaylistResult::DENIED, + "Cannot edit tags of local file"); { TagBuilder tag(std::move(song.WritableTag())); @@ -57,26 +50,19 @@ playlist::AddSongIdTag(unsigned id, TagType tag_type, const char *value, queue.ModifyAtPosition(position); OnModified(); - return true; } -bool -playlist::ClearSongIdTag(unsigned id, TagType tag_type, - Error &error) +void +playlist::ClearSongIdTag(unsigned id, TagType tag_type) { const int position = queue.IdToPosition(id); - if (position < 0) { - error.Set(playlist_domain, int(PlaylistResult::NO_SUCH_SONG), - "No such song"); - return false; - } + if (position < 0) + throw PlaylistError::NoSuchSong(); DetachedSong &song = queue.Get(position); - if (song.IsFile()) { - error.Set(playlist_domain, int(PlaylistResult::DENIED), - "Cannot edit tags of local file"); - return false; - } + if (song.IsFile()) + throw PlaylistError(PlaylistResult::DENIED, + "Cannot edit tags of local file"); { TagBuilder tag(std::move(song.WritableTag())); @@ -89,5 +75,4 @@ playlist::ClearSongIdTag(unsigned id, TagType tag_type, queue.ModifyAtPosition(position); OnModified(); - return true; }