aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2012-02-09 23:54:31 +0100
committerMax Kellermann <max@duempel.org>2012-02-09 23:54:31 +0100
commitb0ea3f42619d4d831830502f12340105937bf533 (patch)
tree77e185a28e1519c1dcdef17a62fc172592b53fa1 /src
parent0103219f00bde7e5177c4bea4a2b9d21a61841ca (diff)
downloadmpd-b0ea3f42619d4d831830502f12340105937bf533.tar.gz
mpd-b0ea3f42619d4d831830502f12340105937bf533.tar.xz
mpd-b0ea3f42619d4d831830502f12340105937bf533.zip
playlist_save: add start/end_index parameters
Diffstat (limited to '')
-rw-r--r--src/command.c3
-rw-r--r--src/playlist_save.c9
-rw-r--r--src/playlist_save.h4
3 files changed, 12 insertions, 4 deletions
diff --git a/src/command.c b/src/command.c
index 568997cc7..1d26acd6b 100644
--- a/src/command.c
+++ b/src/command.c
@@ -809,7 +809,8 @@ handle_load(struct client *client, G_GNUC_UNUSED int argc, char *argv[])
GError *error = NULL;
return playlist_load_spl(&g_playlist, client->player_control,
- argv[1], &error)
+ argv[1], 0, G_MAXUINT,
+ &error)
? COMMAND_RETURN_OK
: print_error(client, error);
}
diff --git a/src/playlist_save.c b/src/playlist_save.c
index b8e03ea85..6571e286c 100644
--- a/src/playlist_save.c
+++ b/src/playlist_save.c
@@ -112,7 +112,9 @@ spl_save_playlist(const char *name_utf8, const struct playlist *playlist)
bool
playlist_load_spl(struct playlist *playlist, struct player_control *pc,
- const char *name_utf8, GError **error_r)
+ const char *name_utf8,
+ unsigned start_index, unsigned end_index,
+ GError **error_r)
{
GPtrArray *list;
@@ -120,7 +122,10 @@ playlist_load_spl(struct playlist *playlist, struct player_control *pc,
if (list == NULL)
return false;
- for (unsigned i = 0; i < list->len; ++i) {
+ if (list->len < end_index)
+ end_index = list->len;
+
+ for (unsigned i = start_index; i < end_index; ++i) {
const char *temp = g_ptr_array_index(list, i);
if ((playlist_append_uri(playlist, pc, temp, NULL)) != PLAYLIST_RESULT_SUCCESS) {
/* for windows compatibility, convert slashes */
diff --git a/src/playlist_save.h b/src/playlist_save.h
index f8bfb8355..a6c31a9a6 100644
--- a/src/playlist_save.h
+++ b/src/playlist_save.h
@@ -54,6 +54,8 @@ spl_save_playlist(const char *name_utf8, const struct playlist *playlist);
*/
bool
playlist_load_spl(struct playlist *playlist, struct player_control *pc,
- const char *name_utf8, GError **error_r);
+ const char *name_utf8,
+ unsigned start_index, unsigned end_index,
+ GError **error_r);
#endif