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_del)(unsigned int);
|
||||||
void (*on_library_track_updated)(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 */
|
/* Playqueue callbacks */
|
||||||
void (*on_queue_track_add)(Playqueue *, unsigned int);
|
void (*on_queue_track_add)(Playqueue *, unsigned int);
|
||||||
void (*on_queue_track_del)(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_del = no_op,
|
||||||
.on_library_track_updated = 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_add = no_op,
|
||||||
.on_queue_track_del = no_op,
|
.on_queue_track_del = no_op,
|
||||||
.on_queue_track_changed = no_op,
|
.on_queue_track_changed = no_op,
|
||||||
|
|
|
@ -37,6 +37,8 @@ void deck :: init()
|
||||||
library_playqueue.add_sort(SORT_TRACK);
|
library_playqueue.add_sort(SORT_TRACK);
|
||||||
read();
|
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_add = add_library_track;
|
||||||
get_callbacks()->on_library_track_del = del_library_track;
|
get_callbacks()->on_library_track_del = del_library_track;
|
||||||
get_callbacks()->on_library_track_updated = change_library_track;
|
get_callbacks()->on_library_track_updated = change_library_track;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2013 (c) Anna Schumaker.
|
* Copyright 2013 (c) Anna Schumaker.
|
||||||
*/
|
*/
|
||||||
|
#include <callback.h>
|
||||||
#include <database.h>
|
#include <database.h>
|
||||||
#include <error.h>
|
#include <error.h>
|
||||||
#include <playlist.h>
|
#include <playlist.h>
|
||||||
|
@ -21,6 +22,11 @@ void playlist :: init()
|
||||||
playlist_pq.set_flag(PQ_NEVER_SORT);
|
playlist_pq.set_flag(PQ_NEVER_SORT);
|
||||||
|
|
||||||
playlist_db.load();
|
playlist_db.load();
|
||||||
|
|
||||||
|
ids = get_tracks("Banned");
|
||||||
|
for (it = ids.begin(); it != ids.end(); it++)
|
||||||
|
get_callbacks()->on_playlist_ban(*it);
|
||||||
|
|
||||||
if (cur_pq == "")
|
if (cur_pq == "")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -36,6 +42,8 @@ void playlist :: add(const std::string &name, unsigned int track_id)
|
||||||
playlist_db.save();
|
playlist_db.save();
|
||||||
if (name == cur_pq)
|
if (name == cur_pq)
|
||||||
playlist_pq.add(track_id);
|
playlist_pq.add(track_id);
|
||||||
|
if (name == "Banned")
|
||||||
|
get_callbacks()->on_playlist_ban(track_id);
|
||||||
} else
|
} else
|
||||||
throw -E_EXIST;
|
throw -E_EXIST;
|
||||||
}
|
}
|
||||||
|
@ -47,6 +55,8 @@ void playlist :: del(const std::string &name, unsigned int track_id)
|
||||||
playlist_db.save();
|
playlist_db.save();
|
||||||
if (name == cur_pq)
|
if (name == cur_pq)
|
||||||
playlist_pq.del_track(track_id);
|
playlist_pq.del_track(track_id);
|
||||||
|
if (name == "Banned")
|
||||||
|
get_callbacks()->on_playlist_unban(track_id);
|
||||||
} else
|
} else
|
||||||
throw -E_EXIST;
|
throw -E_EXIST;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue