lib: Import ban status from Ocarina 5.x

Now that I have a banned playlist working I can remember the ban status
easier.

Signed-off-by: Anna Schumaker <schumaker.anna@gmail.com>
This commit is contained in:
Anna Schumaker 2014-02-02 14:20:56 -05:00 committed by Anna Schumaker
parent a474712a22
commit 21c80ea1f9
4 changed files with 14 additions and 2 deletions

View File

@ -25,6 +25,7 @@ struct Callbacks {
void (*on_library_track_add)(unsigned int);
void (*on_library_track_del)(unsigned int);
void (*on_library_track_updated)(unsigned int);
void (*on_library_import_ban)(unsigned int);
/* Playlist callbacks */
void (*on_playlist_ban)(unsigned int);

View File

@ -27,6 +27,7 @@ static struct Callbacks callbacks = {
.on_library_track_add = no_op,
.on_library_track_del = no_op,
.on_library_track_updated = no_op,
.on_library_import_ban = no_op,
.on_playlist_ban = no_op,
.on_playlist_unban = no_op,

View File

@ -397,7 +397,7 @@ static void do_import_track(File &f, unsigned int lib_id)
{
struct ImportData data;
std::string artist, album, genre;
unsigned int artist_id, album_id, genre_id, track_id, year, tmp;
unsigned int artist_id, album_id, genre_id, track_id, year, banned, tmp;
data.filepath = f.getline();
data.title = f.getline();
@ -409,7 +409,7 @@ static void do_import_track(File &f, unsigned int lib_id)
f.getline(); /* lenstr */
f >> tmp /* id */ >> year >> data.track >> data.count;
f >> data.last_day >> data.last_month >> data.last_year >> data.length;
f >> tmp >> tmp >>tmp >> tmp; /* bitrate, sample, channels, banned */
f >> tmp >> tmp >>tmp >> banned; /* bitrate, sample, channels, banned */
f.getline(); /* get rest of line */
artist_id = artist_db.insert(library :: AGInfo(library :: DB_ARTIST, artist));
@ -423,6 +423,9 @@ static void do_import_track(File &f, unsigned int lib_id)
filter::add(album_db[album_id].name, track_id);
filter::add(track_db[track_id].title, track_id);
get_callbacks()->on_library_track_add(track_id);
if (banned == true)
get_callbacks()->on_library_import_ban(track_id);
}
static void do_import_library(std::string &s)

View File

@ -11,6 +11,11 @@ static Database<IndexEntry> playlist_db("playlist.db");
static Playqueue playlist_pq(PQ_ENABLED);
static std::string cur_pq;
static void import_ban_track(unsigned int track_id)
{
playlist :: add("Banned", track_id);
}
void playlist :: init()
{
std::set<unsigned int> ids;
@ -21,6 +26,8 @@ void playlist :: init()
playlist_pq.add_sort(SORT_TRACK);
playlist_pq.set_flag(PQ_NEVER_SORT);
get_callbacks()->on_library_import_ban = import_ban_track;
playlist_db.load();
ids = get_tracks("Banned");