libsaria: Add and remove individual tracks to a playlist

I can easily get the sid_t out of the Track pointer, so I might as well
allow this for now...

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
Bryan Schumaker 2012-02-19 17:32:35 -05:00
parent e52e6ae3b0
commit f352952924
3 changed files with 17 additions and 0 deletions

View File

@ -28,7 +28,10 @@ namespace libsaria
void save();
void add_ids(list<sid_t> &);
void add_track(Track *);
void rm_ids(list<sid_t> &);
void rm_track(Track *);
unsigned int size();
sid_t next();

View File

@ -3,6 +3,7 @@
#include <libsaria/index.h>
#include <libsaria/library.h>
#include <libsaria/print.h>
#include "../library.h"
#include "list.h"
#include <list>
@ -22,11 +23,13 @@ namespace libsaria
void library::list_track(libsaria::Track *track)
{
track_list.push_back(track);
lib_playlist.add_track(track);
}
void library::unlist_track(libsaria::Track *track)
{
track_list.remove(track);
lib_playlist.rm_track(track);
}
void library::sort_list()

View File

@ -25,6 +25,12 @@ namespace libsaria
save();
}
void Playlist::add_track(libsaria::Track *track)
{
plist.push_back(track->get_songid());
save();
}
void Playlist::rm_ids(list<sid_t> &ids)
{
for (it = ids.begin(); it != ids.end(); it++)
@ -32,6 +38,11 @@ namespace libsaria
save();
}
void Playlist::rm_track(Track *track)
{
plist.remove(track->get_songid());
}
unsigned int Playlist::size()
{
return plist.size();