libsaria: Add tracks to the lib_playlist when scanning

I was trying to add an empty list, rather than track items.  This caused
the library count to increase (on the library path tab), but the library
playlist was never given track pointers so you had to restart ocarina to
see songs.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
Bryan Schumaker 2012-09-09 12:48:12 -04:00
parent 3df9d153f6
commit 4d764eeb00
3 changed files with 12 additions and 3 deletions

View File

@ -89,6 +89,7 @@ namespace libsaria
virtual void do_add_tracks(list<Track *> &) = 0;
void add_tracks(list<Track *> &);
void add_track(Track *);
void remove_indices(list<unsigned int> &);
void remove_track(Track *);
void track_updated(Track *);

View File

@ -96,7 +96,7 @@ static bool check_file(libsaria::Track &track, void *data)
void ScanTask::run_task()
{
list<string>::iterator it;
list<libsaria::Track *> tracks;
libsaria::ListItem<libsaria::Track> *li;
for (it = file_list.begin(); it != file_list.end(); it++) {
/*
@ -109,7 +109,8 @@ void ScanTask::run_task()
continue;
try {
path->tracks.push_back(libsaria::Track(*it, path));
li = path->tracks.push_back(libsaria::Track(*it, path));
lib_playlist.add_track(&li->get_value());
path->data_state = DIRTY;
} catch (string message) {
println(message);
@ -117,7 +118,6 @@ void ScanTask::run_task()
}
libsaria::notify(PATH_UPDATED, path);
lib_playlist.add_tracks(tracks);
}

View File

@ -137,4 +137,12 @@ namespace libsaria
cur = plist.begin();
}
void Playlist::add_track(Track *track)
{
list<Track *> tracks;
tracks.push_back(track);
do_add_tracks(tracks);
schedule_save();
}
}; /* namespace: libsaria */