diff options
author | Max Kellermann <max@duempel.org> | 2016-02-28 10:40:31 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2016-02-28 10:40:31 +0100 |
commit | c81747dd153bbbdfd6de0ca18287047a749e9ddd (patch) | |
tree | 407fa8ed4137ecfcd62ca0ca3a5297076a2e8cf1 | |
parent | f8810d7caf55a4071b7288e03745fd0a9d1b84d3 (diff) |
queue/PlaylistTag: throw PlaylistError on error
-rw-r--r-- | src/command/TagCommands.cxx | 12 | ||||
-rw-r--r-- | src/queue/Playlist.hxx | 5 | ||||
-rw-r--r-- | src/queue/PlaylistTag.cxx | 43 |
3 files changed, 18 insertions, 42 deletions
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; } |