lib: Remove track from library pq if banned
Put it back when unbanned. Signed-off-by: Anna Schumaker <schumaker.ann@gmail.com>
This commit is contained in:
parent
48cc1f992a
commit
a474712a22
|
@ -26,6 +26,10 @@ struct Callbacks {
|
|||
void (*on_library_track_del)(unsigned int);
|
||||
void (*on_library_track_updated)(unsigned int);
|
||||
|
||||
/* Playlist callbacks */
|
||||
void (*on_playlist_ban)(unsigned int);
|
||||
void (*on_playlist_unban)(unsigned int);
|
||||
|
||||
/* Playqueue callbacks */
|
||||
void (*on_queue_track_add)(Playqueue *, unsigned int);
|
||||
void (*on_queue_track_del)(Playqueue *, unsigned int);
|
||||
|
|
|
@ -28,6 +28,9 @@ static struct Callbacks callbacks = {
|
|||
.on_library_track_del = no_op,
|
||||
.on_library_track_updated = no_op,
|
||||
|
||||
.on_playlist_ban = no_op,
|
||||
.on_playlist_unban = no_op,
|
||||
|
||||
.on_queue_track_add = no_op,
|
||||
.on_queue_track_del = no_op,
|
||||
.on_queue_track_changed = no_op,
|
||||
|
|
|
@ -37,6 +37,8 @@ void deck :: init()
|
|||
library_playqueue.add_sort(SORT_TRACK);
|
||||
read();
|
||||
|
||||
get_callbacks()->on_playlist_ban = del_library_track;
|
||||
get_callbacks()->on_playlist_unban = add_library_track;
|
||||
get_callbacks()->on_library_track_add = add_library_track;
|
||||
get_callbacks()->on_library_track_del = del_library_track;
|
||||
get_callbacks()->on_library_track_updated = change_library_track;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* Copyright 2013 (c) Anna Schumaker.
|
||||
*/
|
||||
#include <callback.h>
|
||||
#include <database.h>
|
||||
#include <error.h>
|
||||
#include <playlist.h>
|
||||
|
@ -21,6 +22,11 @@ void playlist :: init()
|
|||
playlist_pq.set_flag(PQ_NEVER_SORT);
|
||||
|
||||
playlist_db.load();
|
||||
|
||||
ids = get_tracks("Banned");
|
||||
for (it = ids.begin(); it != ids.end(); it++)
|
||||
get_callbacks()->on_playlist_ban(*it);
|
||||
|
||||
if (cur_pq == "")
|
||||
return;
|
||||
|
||||
|
@ -36,6 +42,8 @@ void playlist :: add(const std::string &name, unsigned int track_id)
|
|||
playlist_db.save();
|
||||
if (name == cur_pq)
|
||||
playlist_pq.add(track_id);
|
||||
if (name == "Banned")
|
||||
get_callbacks()->on_playlist_ban(track_id);
|
||||
} else
|
||||
throw -E_EXIST;
|
||||
}
|
||||
|
@ -47,6 +55,8 @@ void playlist :: del(const std::string &name, unsigned int track_id)
|
|||
playlist_db.save();
|
||||
if (name == cur_pq)
|
||||
playlist_pq.del_track(track_id);
|
||||
if (name == "Banned")
|
||||
get_callbacks()->on_playlist_unban(track_id);
|
||||
} else
|
||||
throw -E_EXIST;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue