libsaria: Create a get_playlist() function

I don't want to keep creating functions for doing things to playlists.
Instead, I'd rather just get the playlist directly.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
Bryan Schumaker 2012-04-09 08:00:12 -04:00
parent 851aa10ae1
commit b2c17bd54a
4 changed files with 16 additions and 15 deletions

View File

@ -21,9 +21,8 @@ namespace libsaria
void next();
void prev();
void init();
Playlist *get_playlist(unsigned int);
Playlist *get_recent_plist();
PlaylistRenderer *get_nth_renderer(unsigned int);
void add_to_nth_plist(unsigned int, list<Track *> &);
void tracks_removed(list<Track> &);
void set_pause_type(AutoPauseType, unsigned int);
AutoPauseType get_pause_type();

View File

@ -148,21 +148,16 @@ namespace libsaria
return &recent_plist;
}
PlaylistRenderer *deck::get_nth_renderer(unsigned int n)
Playlist *deck::get_playlist(unsigned int n)
{
Playlist *plist = find_nth_plist(n);
if (plist)
return plist->get_renderer();
list<libsaria::Playlist *>::iterator it;
for (it = playlist_deck.begin(); it != playlist_deck.end(); it++) {
if ((*it)->get_number() == n)
return (*it);
}
return NULL;
}
void deck::add_to_nth_plist(unsigned int n, list<Track *> &tracks)
{
Playlist *plist = find_nth_plist(n);
if (plist)
plist->add_tracks(tracks);
}
void deck::tracks_removed(list<Track> &tracks)
{
list<Track *> track_ptrs;

View File

@ -29,7 +29,11 @@ namespace ocarina
void playlist::switch_to_plist(unsigned int n)
{
ocarina::Playlist *renderer = (ocarina::Playlist *)libsaria::deck::get_nth_renderer(n);
libsaria::Playlist *plist = libsaria::deck::get_playlist(n);
ocarina::Playlist *renderer;
if (plist)
renderer = (ocarina::Playlist *)plist->get_renderer();
if (renderer)
renderer->switch_to();
}

View File

@ -59,6 +59,7 @@ gboolean key_pressed(GtkWidget *widget, GdkEvent *event, gpointer data)
{
list<libsaria::Track *> tracks;
string key = gdk_keyval_name(event->key.keyval);
libsaria::Playlist *list;
ocarina::Playlist *plist = (ocarina::Playlist *)data;
println("Treeview handling key press");
@ -73,7 +74,9 @@ gboolean key_pressed(GtkWidget *widget, GdkEvent *event, gpointer data)
plist->list_selected_tracks(tracks);
if (tracks.size() == 0)
return FALSE;
libsaria::deck::add_to_nth_plist(k, tracks);
list = libsaria::deck::get_playlist(k);
if (list)
list->add_tracks(tracks);
} else if (key == "Delete") {
plist->list_selected_tracks(tracks);
if (tracks.size() == 0)