summaryrefslogtreecommitdiffstats
path: root/apps/playlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/playlist.c')
-rw-r--r--apps/playlist.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/apps/playlist.c b/apps/playlist.c
index c0e943cf37..1822db844f 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -434,7 +434,7 @@ static int update_control_unlocked(struct playlist_info* playlist,
result = write(fd, "R\n", 2);
break;
case PLAYLIST_COMMAND_CLEAR:
- result = write(fd, "C\n", 2);
+ result = fdprintf(fd, "C:%d\n", i1);
break;
case PLAYLIST_COMMAND_FLAGS:
result = fdprintf(fd, "F:%u:%u\n", i1, i2);
@@ -1178,7 +1178,6 @@ static int remove_all_tracks_unlocked(struct playlist_info *playlist, bool write
#endif
/* Update playlist state as if by remove_track_unlocked() */
- playlist->index = 0;
playlist->first_index = 0;
playlist->amount = 1;
playlist->indices[0] |= PLAYLIST_QUEUED;
@@ -1191,10 +1190,12 @@ static int remove_all_tracks_unlocked(struct playlist_info *playlist, bool write
if (write && playlist->control_fd >= 0)
{
update_control_unlocked(playlist, PLAYLIST_COMMAND_CLEAR,
- -1, -1, NULL, NULL, NULL);
+ playlist->index, -1, NULL, NULL, NULL);
sync_control_unlocked(playlist);
}
+ playlist->index = 0;
+
return 0;
}
@@ -3353,6 +3354,8 @@ int playlist_resume(void)
}
case PLAYLIST_COMMAND_CLEAR:
{
+ if (strp[0])
+ playlist->index = atoi(strp[0]);
if (remove_all_tracks_unlocked(playlist, false) < 0)
{
result = -16;