commit - bfaa78978668ab4b8078802c3ac873a16e4357d6
commit + 2f589330f4858cf8f45f7d4a5c2f90e11eecc232
blob - 4c153998dca494438aaad84852e350bfc2544358
blob + 6992675c67b9569778f023bdc94632bbaa318a8a
--- amused.c
+++ amused.c
imsg_compose_event(iev_player, IMSG_PLAY, 0, 0, fd,
path, sizeof(path));
return 1;
+}
+
+void
+main_playlist_resume(void)
+{
+ const char *song;
+
+ if ((song = playlist_current()) == NULL)
+ song = playlist_advance();
+
+ for (;song != NULL; song = playlist_advance()) {
+ if (main_play_song(song))
+ return;
+
+ playlist_dropcurrent();
+ }
}
void
blob - ce92c23f936b012809b3081a4783a6873d5cf8bf
blob + 2475ee20926c8e17979c97b4e5c97b23998e2707
--- amused.h
+++ amused.h
int imsg_compose_event(struct imsgev *, uint16_t, uint32_t,
pid_t, int, const void *, uint16_t);
int main_send_player(uint16_t, int, const void *, uint16_t);
+void main_playlist_resume(void);
void main_playlist_advance(void);
void main_playlist_previous(void);
void main_restart_track(void);
blob - 6323e068f5736f6fcf8c4501c5987c78a1c31b21
blob + d8e0f626db6bc19c15243ab660931a65ec79ca46
--- control.c
+++ control.c
case IMSG_CTL_PLAY:
switch (play_state) {
case STATE_STOPPED:
- main_playlist_advance();
+ main_playlist_resume();
break;
case STATE_PLAYING:
/* do nothing */
case IMSG_CTL_TOGGLE_PLAY:
switch (play_state) {
case STATE_STOPPED:
- main_playlist_advance();
+ main_playlist_resume();
break;
case STATE_PLAYING:
play_state = STATE_PAUSED;