From 049d23ab28f2708506dbde362539e9b5f36a10c4 Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Sun, 12 Nov 2023 19:45:08 +0100 Subject: Update liblist api and remote --- src/player.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'src/player.c') diff --git a/src/player.c b/src/player.c index f41a395..2a0c717 100644 --- a/src/player.c +++ b/src/player.c @@ -3,19 +3,21 @@ #include "list.h" #include "data.h" +#include + static bool player_history_contains(struct track *cmp, int depth); -static struct track *playlist_track_next_unused(struct link *start); +static struct track *playlist_track_next_unused(struct list_link *start); static struct track *player_next_from_playlist(void); bool player_history_contains(struct track *cmp, int depth) { - struct link *link; + struct list_link *link; struct track *track; link = list_back(&player.history); while (LIST_INNER(link) && depth-- > 0) { - track = UPCAST(link, struct track, link_hs); + track = LIST_UPCAST(link, struct track, link_hs); if (track == cmp) return true; link = link->prev; @@ -25,10 +27,10 @@ player_history_contains(struct track *cmp, int depth) } struct track * -playlist_track_next_unused(struct link *start) +playlist_track_next_unused(struct list_link *start) { struct track *track; - struct link *link; + struct list_link *link; bool in_history; int len; @@ -39,7 +41,7 @@ playlist_track_next_unused(struct link *start) link = start; while (LIST_INNER(link)) { - track = UPCAST(link, struct track, link_pl); + track = LIST_UPCAST(link, struct track, link_pl); in_history = player_history_contains(track, len - 2); if (track != player.track && !in_history) @@ -59,7 +61,7 @@ playlist_track_next_unused(struct link *start) struct track * player_next_from_playlist(void) { - struct link *link; + struct list_link *link; int index; if (list_empty(&player.playlist)) @@ -70,7 +72,7 @@ player_next_from_playlist(void) link = list_at(&player.playlist, index); return playlist_track_next_unused(link); } else { - if (player.track && link_inuse(&player.track->link_pl)) { + if (player.track && list_link_inuse(&player.track->link_pl)) { index = list_index(&player.playlist, &player.track->link_pl); ASSERT(index >= 0); @@ -80,7 +82,7 @@ player_next_from_playlist(void) index = 0; } link = list_at(&player.playlist, index); - return UPCAST(link, struct track, link_pl); + return LIST_UPCAST(link, struct track, link_pl); } return NULL; @@ -100,9 +102,9 @@ player_next_from_playlist(void) void player_add_history(struct track *new) { - if (!link_inuse(&new->link_hs)) { - link_pop(&new->link_hs); - list_push_back(&player.history, &new->link_hs); + if (!list_link_inuse(&new->link_hs)) { + list_link_pop(&new->link_hs); + list_insert_back(&player.history, &new->link_hs); } } @@ -116,13 +118,13 @@ player_add_history(struct track *new) int player_prev(void) { - struct link *next; + struct list_link *next; struct track *track; if (list_empty(&player.history)) return PLAYER_ERR; - if (!player.track || !link_inuse(&player.track->link_hs)) { + if (!player.track || !list_link_inuse(&player.track->link_hs)) { next = list_back(&player.history); } else if (LIST_INNER(player.track->link_hs.prev)) { next = player.track->link_hs.prev; @@ -130,7 +132,7 @@ player_prev(void) return PLAYER_ERR; } - track = UPCAST(next, struct track, link_hs); + track = LIST_UPCAST(next, struct track, link_hs); player_play_track(track, false); return PLAYER_OK; @@ -140,17 +142,17 @@ int player_next(void) { struct track *next_track; - struct link *link; + struct list_link *link; bool new_entry; - if (player.track && link_inuse(&player.track->link_hs) + if (player.track && list_link_inuse(&player.track->link_hs) && LIST_INNER(player.track->link_hs.next)) { - next_track = UPCAST(player.track->link_hs.next, + next_track = LIST_UPCAST(player.track->link_hs.next, struct track, link_hs); new_entry = false; } else if (!list_empty(&player.queue)) { link = list_pop_front(&player.queue); - next_track = UPCAST(link, struct track, link_pq); + next_track = LIST_UPCAST(link, struct track, link_pq); new_entry = true; } else { next_track = player_next_from_playlist(); -- cgit v1.2.3-71-gd317