libsaria: Give playlists a remove_track() function
This makes more sense than pushing a single track into a list and then iterating over the single item... Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
parent
1ba1c72e3f
commit
94cbcd9a5d
|
@ -92,6 +92,7 @@ namespace libsaria
|
|||
virtual void do_add_tracks(list<Track *> &) = 0;
|
||||
void add_tracks(list<Track *> &);
|
||||
void remove_indices(list<unsigned int> &);
|
||||
void remove_track(Track *);
|
||||
void remove_tracks(list<Track *> &);
|
||||
void track_updated(Track *);
|
||||
};
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace libsaria
|
|||
tracks.push_back(track);
|
||||
|
||||
/* Remove from library playlist */
|
||||
library::get_playlist()->remove_tracks(tracks);
|
||||
library::get_playlist()->remove_track(track);
|
||||
|
||||
/* Add to banned list */
|
||||
banned_plist.add_tracks(tracks);
|
||||
|
@ -31,7 +31,7 @@ namespace libsaria
|
|||
tracks.push_back(track);
|
||||
|
||||
/* Remove from banned list */
|
||||
banned_plist.remove_tracks(tracks);
|
||||
banned_plist.remove_track(track);
|
||||
|
||||
/* Add to library playlist */
|
||||
library::get_playlist()->add_tracks(tracks);
|
||||
|
|
|
@ -42,6 +42,25 @@ namespace libsaria
|
|||
return rm_index;
|
||||
}
|
||||
|
||||
void Playlist::remove_track(Track *track)
|
||||
{
|
||||
list<Track *>::iterator it;
|
||||
unsigned int index = 0;
|
||||
|
||||
RENDER( modify_prepare() );
|
||||
|
||||
for (it = plist.begin(); it != plist.end(); it++) {
|
||||
if (*it == track) {
|
||||
remove_track_it(it, index);
|
||||
break;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
schedule_save();
|
||||
RENDER( modify_done() );
|
||||
}
|
||||
|
||||
void Playlist::remove_tracks(list<Track *> &tracks)
|
||||
{
|
||||
list<Track *>::iterator p_it, t_it;
|
||||
|
|
Loading…
Reference in New Issue