diff options
Diffstat (limited to 'src/PlaylistCommands.cxx')
-rw-r--r-- | src/PlaylistCommands.cxx | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/src/PlaylistCommands.cxx b/src/PlaylistCommands.cxx index faa8b72bb..785267c1d 100644 --- a/src/PlaylistCommands.cxx +++ b/src/PlaylistCommands.cxx @@ -33,6 +33,7 @@ #include "ls.hxx" #include "Playlist.hxx" #include "util/UriUtil.hxx" +#include "util/Error.hxx" #include <assert.h> #include <stdlib.h> @@ -64,7 +65,7 @@ handle_load(Client *client, int argc, char *argv[]) if (argc < 3) { start_index = 0; - end_index = G_MAXUINT; + end_index = unsigned(-1); } else if (!check_range(client, &start_index, &end_index, argv[2])) return COMMAND_RETURN_ERROR; @@ -77,19 +78,22 @@ handle_load(Client *client, int argc, char *argv[]) if (result != PLAYLIST_RESULT_NO_SUCH_LIST) return print_playlist_result(client, result); - GError *error = NULL; + Error error; if (playlist_load_spl(&client->playlist, client->player_control, argv[1], start_index, end_index, - &error)) + error)) return COMMAND_RETURN_OK; - if (error->domain == playlist_quark() && - error->code == PLAYLIST_RESULT_BAD_NAME) + if (error.IsDomain(playlist_domain) && + error.GetCode() == PLAYLIST_RESULT_BAD_NAME) { /* the message for BAD_NAME is confusing when the client wants to load a playlist file from the music - directory; patch the GError object to show "no such + directory; patch the Error object to show "no such playlist" instead */ - error->code = PLAYLIST_RESULT_NO_SUCH_LIST; + Error error2(playlist_domain, PLAYLIST_RESULT_NO_SUCH_LIST, + error.GetMessage()); + error = std::move(error2); + } return print_error(client, error); } @@ -100,8 +104,8 @@ handle_listplaylist(Client *client, gcc_unused int argc, char *argv[]) if (playlist_file_print(client, argv[1], false)) return COMMAND_RETURN_OK; - GError *error = NULL; - return spl_print(client, argv[1], false, &error) + Error error; + return spl_print(client, argv[1], false, error) ? COMMAND_RETURN_OK : print_error(client, error); } @@ -113,8 +117,8 @@ handle_listplaylistinfo(Client *client, if (playlist_file_print(client, argv[1], true)) return COMMAND_RETURN_OK; - GError *error = NULL; - return spl_print(client, argv[1], true, &error) + Error error; + return spl_print(client, argv[1], true, error) ? COMMAND_RETURN_OK : print_error(client, error); } @@ -122,8 +126,8 @@ handle_listplaylistinfo(Client *client, enum command_return handle_rm(Client *client, gcc_unused int argc, char *argv[]) { - GError *error = NULL; - return spl_delete(argv[1], &error) + Error error; + return spl_delete(argv[1], error) ? COMMAND_RETURN_OK : print_error(client, error); } @@ -131,8 +135,8 @@ handle_rm(Client *client, gcc_unused int argc, char *argv[]) enum command_return handle_rename(Client *client, gcc_unused int argc, char *argv[]) { - GError *error = NULL; - return spl_rename(argv[1], argv[2], &error) + Error error; + return spl_rename(argv[1], argv[2], error) ? COMMAND_RETURN_OK : print_error(client, error); } @@ -146,8 +150,8 @@ handle_playlistdelete(Client *client, if (!check_unsigned(client, &from, argv[2])) return COMMAND_RETURN_ERROR; - GError *error = NULL; - return spl_remove_index(playlist, from, &error) + Error error; + return spl_remove_index(playlist, from, error) ? COMMAND_RETURN_OK : print_error(client, error); } @@ -163,8 +167,8 @@ handle_playlistmove(Client *client, gcc_unused int argc, char *argv[]) if (!check_unsigned(client, &to, argv[3])) return COMMAND_RETURN_ERROR; - GError *error = NULL; - return spl_move_index(playlist, from, to, &error) + Error error; + return spl_move_index(playlist, from, to, error) ? COMMAND_RETURN_OK : print_error(client, error); } @@ -172,8 +176,8 @@ handle_playlistmove(Client *client, gcc_unused int argc, char *argv[]) enum command_return handle_playlistclear(Client *client, gcc_unused int argc, char *argv[]) { - GError *error = NULL; - return spl_clear(argv[1], &error) + Error error; + return spl_clear(argv[1], error) ? COMMAND_RETURN_OK : print_error(client, error); } @@ -185,7 +189,7 @@ handle_playlistadd(Client *client, gcc_unused int argc, char *argv[]) char *uri = argv[2]; bool success; - GError *error = NULL; + Error error; if (uri_has_scheme(uri)) { if (!uri_supported_scheme(uri)) { command_error(client, ACK_ERROR_NO_EXIST, @@ -193,12 +197,12 @@ handle_playlistadd(Client *client, gcc_unused int argc, char *argv[]) return COMMAND_RETURN_ERROR; } - success = spl_append_uri(uri, playlist, &error); + success = spl_append_uri(uri, playlist, error); } else success = search_add_to_playlist(uri, playlist, nullptr, - &error); + error); - if (!success && error == NULL) { + if (!success && !error.IsDefined()) { command_error(client, ACK_ERROR_NO_EXIST, "directory or file not found"); return COMMAND_RETURN_ERROR; @@ -211,9 +215,9 @@ enum command_return handle_listplaylists(Client *client, gcc_unused int argc, gcc_unused char *argv[]) { - GError *error = NULL; - const auto list = ListPlaylistFiles(&error); - if (list.empty() && error != NULL) + Error error; + const auto list = ListPlaylistFiles(error); + if (list.empty() && error.IsDefined()) return print_error(client, error); print_spl_list(client, list); |