New command searchadd similar to command findadd.

This commit is contained in:
geneticdrift
2012-06-27 09:26:00 +02:00
committed by Max Kellermann
parent f2536445f7
commit 16e91baa79
3 changed files with 73 additions and 0 deletions

View File

@@ -853,6 +853,31 @@ handle_search(struct client *client, int argc, char *argv[])
return ret;
}
static enum command_return
handle_searchadd(struct client *client, int argc, char *argv[])
{
struct locate_item_list *list =
locate_item_list_parse(argv + 1, argc - 1);
if (list == NULL || list->length == 0) {
if (list != NULL)
locate_item_list_free(list);
command_error(client, ACK_ERROR_ARG, "incorrect arguments");
return COMMAND_RETURN_ERROR;
}
GError *error = NULL;
enum command_return ret = search_add_songs(client->player_control,
"", list, &error)
? COMMAND_RETURN_OK
: print_error(client, error);
locate_item_list_free(list);
return ret;
}
static enum command_return
handle_count(struct client *client, int argc, char *argv[])
{
@@ -2002,6 +2027,7 @@ static const struct command commands[] = {
{ "rm", PERMISSION_CONTROL, 1, 1, handle_rm },
{ "save", PERMISSION_CONTROL, 1, 1, handle_save },
{ "search", PERMISSION_READ, 2, -1, handle_search },
{ "searchadd", PERMISSION_READ, 2, -1, handle_searchadd },
{ "seek", PERMISSION_CONTROL, 2, 2, handle_seek },
{ "seekcur", PERMISSION_CONTROL, 1, 1, handle_seekcur },
{ "seekid", PERMISSION_CONTROL, 2, 2, handle_seekid },