libsaria: Don't store the library in the playlist deck

This makes some of the deck code easier, since I don't need to check for
static playlists anymore.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
Bryan Schumaker 2012-05-13 10:46:32 -04:00
parent 5b86536af3
commit 7f52d81d12
2 changed files with 19 additions and 23 deletions

View File

@ -151,7 +151,6 @@ namespace libsaria
app::mkdir("library");
next_id = schedule_load();
deck::push_back(&lib_playlist);
task = new IdleCallback(restore_current);
task->queue();

View File

@ -10,7 +10,6 @@
using namespace std;
static unsigned int max_playlists = 10;
static unsigned int num_static = 0;
static void (*on_new_playlist)(libsaria::Playlist *) = NULL;
static AutoPauseType pause_type;
@ -32,21 +31,22 @@ static void renumber_playlists()
list<libsaria::Playlist *>::iterator it;
int n = 0;
for (it = playlist_deck.begin(); it != playlist_deck.end(); it++) {
if (!(*it)->is_static())
for (it = playlist_deck.begin(); it != playlist_deck.end(); it++)
(*it)->renumber(n++);
}
}
libsaria::Playlist *find_nth_plist(unsigned int n)
{
list<libsaria::Playlist *>::iterator it;
for (it = playlist_deck.begin(); it != playlist_deck.end(); it++) {
if ((*it)->get_number() == n)
return (*it);
}
return NULL;
if (n >= playlist_deck.size())
return NULL;
it = playlist_deck.begin();
for (unsigned int i = 0; i < n; i++)
it++;
return *it;
}
static void check_pause()
@ -73,22 +73,20 @@ namespace libsaria
void deck::push_back(Playlist *plist)
{
list<libsaria::Playlist *>::iterator it;
for (it = playlist_deck.begin(); it != playlist_deck.end(); it++) {
if ((*it)->is_static()) {
playlist_deck.insert(it, plist);
return;
}
}
playlist_deck.push_back(plist);
}
void deck::next()
{
Playlist *plist = playlist_deck.front();
Track *track = plist->next();
Playlist *plist;
Track *track;
if (playlist_deck.size() == 0)
plist = library::get_playlist();
else
plist = playlist_deck.front();
track = plist->next();
if (track) {
track->play_now();
list_recent_track(track);
@ -120,7 +118,7 @@ namespace libsaria
{
Playlist *plist;
if ((playlist_deck.size() - num_static) == max_playlists)
if (playlist_deck.size() == max_playlists)
return;
switch (type) {
@ -148,7 +146,6 @@ namespace libsaria
void deck::init()
{
app::mkdir("playlist");
push_back(&recent_plist);
}
Playlist *deck::get_recent_plist()