enum playlist_result playlist_swap_songs_id(struct playlist *playlist, unsigned id1, unsigned id2) { int song1 = queue_id_to_position(&playlist->queue, id1); int song2 = queue_id_to_position(&playlist->queue, id2); if (song1 < 0 || song2 < 0) return PLAYLIST_RESULT_NO_SUCH_SONG; return playlist_swap_songs(playlist, song1, song2); }
enum playlist_result playlist_move_id(struct playlist *playlist, unsigned id1, int to) { int song = queue_id_to_position(&playlist->queue, id1); if (song < 0) return PLAYLIST_RESULT_NO_SUCH_SONG; return playlist_move_range(playlist, song, song+1, to); }
enum playlist_result playlist_delete_id(struct playlist *playlist, unsigned id) { int song = queue_id_to_position(&playlist->queue, id); if (song < 0) return PLAYLIST_RESULT_NO_SUCH_SONG; return playlist_delete(playlist, song); }
enum playlist_result playlist_seek_song_id(struct playlist *playlist, struct player_control *pc, unsigned id, float seek_time) { int song = queue_id_to_position(&playlist->queue, id); if (song < 0) return PLAYLIST_RESULT_NO_SUCH_SONG; return playlist_seek_song(playlist, pc, song, seek_time); }
enum playlist_result playlist_set_priority_id(struct playlist *playlist, struct player_control *pc, unsigned song_id, uint8_t priority) { int song_position = queue_id_to_position(&playlist->queue, song_id); if (song_position < 0) return PLAYLIST_RESULT_NO_SUCH_SONG; return playlist_set_priority(playlist, pc, song_position, song_position + 1, priority); }
enum playlist_result playlist_play_id(struct playlist *playlist, struct player_control *pc, int id) { int song; if (id == -1) { return playlist_play(playlist, pc, id); } song = queue_id_to_position(&playlist->queue, id); if (song < 0) return PLAYLIST_RESULT_NO_SUCH_SONG; return playlist_play(playlist, pc, song); }