queue/playlist/command: move range
The move command now accepts a range for the first argument, in the same form as other range commands, e.g. move 15:17 3. The first song in the range is placed at the destination position. Note that as with other range commands, the range is inclusive on the left only; this example would move only songs 15 and 16, not 17. [mk: fixed signed/unsigned warnings; use G_MAXUINT instead of UINT_MAX]
This commit is contained in:
committed by
Max Kellermann
parent
7684c446c6
commit
13208bf5a7
+5
-3
@@ -1181,14 +1181,16 @@ handle_list(struct client *client, int argc, char *argv[])
|
||||
static enum command_return
|
||||
handle_move(struct client *client, G_GNUC_UNUSED int argc, char *argv[])
|
||||
{
|
||||
int from, to;
|
||||
unsigned start, end;
|
||||
int to;
|
||||
enum playlist_result result;
|
||||
|
||||
if (!check_int(client, &from, argv[1], check_integer, argv[1]))
|
||||
if (!check_range(client, &start, &end,
|
||||
argv[1], need_range))
|
||||
return COMMAND_RETURN_ERROR;
|
||||
if (!check_int(client, &to, argv[2], check_integer, argv[2]))
|
||||
return COMMAND_RETURN_ERROR;
|
||||
result = moveSongInPlaylist(&g_playlist, from, to);
|
||||
result = moveSongRangeInPlaylist(&g_playlist, start, end, to);
|
||||
return print_playlist_result(client, result);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user