implemented the 'consume' mode

Consume mode removes each song played
This commit is contained in:
Romain Bignon
2009-03-30 00:01:02 +02:00
parent 7d9380fd91
commit e81f683a18
8 changed files with 105 additions and 17 deletions

View File

@@ -100,9 +100,13 @@ static void syncPlaylistWithQueue(struct playlist *playlist)
/* queued song has started: copy queued to current,
and notify the clients */
int current = playlist->current;
playlist->current = playlist->queued;
playlist->queued = -1;
if(playlist->queue.consume)
deleteFromPlaylist(playlist, queue_order_to_position(&playlist->queue, current));
idle_add(IDLE_PLAYER);
}
}
@@ -267,6 +271,12 @@ getPlaylistSingleStatus(const struct playlist *playlist)
return playlist->queue.single;
}
bool
getPlaylistConsumeStatus(const struct playlist *playlist)
{
return playlist->queue.consume;
}
void setPlaylistRepeatStatus(struct playlist *playlist, bool status)
{
if (status == playlist->queue.repeat)
@@ -307,6 +317,15 @@ void setPlaylistSingleStatus(struct playlist *playlist, bool status)
idle_add(IDLE_OPTIONS);
}
void setPlaylistConsumeStatus(struct playlist *playlist, bool status)
{
if (status == playlist->queue.consume)
return;
playlist->queue.consume = status;
idle_add(IDLE_OPTIONS);
}
void setPlaylistRandomStatus(struct playlist *playlist, bool status)
{
const struct song *queued;