diff options
| author | Louis Burda <quent.burda@gmail.com> | 2022-12-18 02:05:58 +0100 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2022-12-18 02:06:18 +0100 |
| commit | 28482cd5d05a8ccb7c98fd6cf54bf5d7d69aa6eb (patch) | |
| tree | 70160707e2baec3ec581aa8b9b33ca652842e533 /src | |
| parent | 33b966e7236912d06ff5033f69b69c687a7a7803 (diff) | |
| download | tmus-28482cd5d05a8ccb7c98fd6cf54bf5d7d69aa6eb.tar.gz tmus-28482cd5d05a8ccb7c98fd6cf54bf5d7d69aa6eb.zip | |
player: move add_history to clear_track
Diffstat (limited to 'src')
| -rw-r--r-- | src/player.c | 13 | ||||
| -rw-r--r-- | src/player_mplay.c | 20 |
2 files changed, 13 insertions, 20 deletions
diff --git a/src/player.c b/src/player.c index 258a1b8..eb246c9 100644 --- a/src/player.c +++ b/src/player.c @@ -100,17 +100,10 @@ player_next_from_playlist(void) void player_add_history(struct track *new) { - struct link *link; - struct track *track; - - link = list_back(&player.history); - if (link) { - track = UPCAST(link, struct track, link_hs); - if (track == new) return; + if (!link_inuse(&new->link_hs)) { + link_pop(&new->link_hs); + list_push_back(&player.history, &new->link_hs); } - - link_pop(&new->link_hs); - list_push_back(&player.history, &new->link_hs); } /* implemented by backend: diff --git a/src/player_mplay.c b/src/player_mplay.c index d34ed59..73cd90a 100644 --- a/src/player_mplay.c +++ b/src/player_mplay.c @@ -90,7 +90,7 @@ mplay_run(struct track *track) line = mplay_readline(); if (!line || strcmp(line, "+READY")) { mplay_kill(); - PLAYER_STATUS(ERR, "mplay failed to start"); + PLAYER_STATUS(ERR, "Failed to start"); return false; } @@ -179,7 +179,7 @@ player_update(void) fprintf(mplay.stdin, "status\n"); line = mplay_readline(); if (!line || strncmp(line, "+STATUS:", 8)) { - PLAYER_STATUS(ERR, "PLAYER: invalid response"); + PLAYER_STATUS(ERR, "Bad response"); return; } @@ -202,16 +202,13 @@ int player_play_track(struct track *track, bool new) { ASSERT(track != NULL); + player_clear_track(); if (!mplay_run(track)) return PLAYER_STATUS_ERR; - /* add last track to history */ - if (player.track && !link_inuse(&player.track->link_hs)) - player_add_history(player.track); - - /* new invocations result in updated history pos */ + /* new invocations are removed from history */ if (new) link_pop(&track->link_hs); player.track = track; @@ -224,6 +221,9 @@ player_play_track(struct track *track, bool new) int player_clear_track(void) { + if (player.track) + player_add_history(player.track); + player.track = NULL; mplay_kill(); @@ -238,7 +238,7 @@ player_toggle_pause(void) fprintf(mplay.stdin, "pause\n"); line = mplay_readline(); if (!line || strncmp(line, "+PAUSE:", 7)) { - PLAYER_STATUS(ERR, "PLAYER: invalid response"); + PLAYER_STATUS(ERR, "Bad response"); return PLAYER_STATUS_ERR; } @@ -287,7 +287,7 @@ player_seek(int sec) fprintf(mplay.stdin, "seek %i\n", sec); line = mplay_readline(); if (!line || strncmp(line, "+SEEK:", 6)) { - PLAYER_STATUS(ERR, "PLAYER: Bad response"); + PLAYER_STATUS(ERR, "Bad response"); return PLAYER_STATUS_ERR; } @@ -312,7 +312,7 @@ player_set_volume(unsigned int vol) fprintf(mplay.stdin, "vol %i\n", vol); line = mplay_readline(); if (!line || strncmp(line, "+VOLUME:", 8)) { - PLAYER_STATUS(ERR, "PLAYER: Bad response"); + PLAYER_STATUS(ERR, "Bad response"); return PLAYER_STATUS_ERR; } |
