libsaria: Save queue to disk

This will restore the queue the next time ocarina is started up.
This commit is contained in:
Bryan Schumaker 2011-12-30 20:24:05 -05:00
parent 8a0922c4a1
commit d655739b77
3 changed files with 29 additions and 0 deletions

View File

@ -22,6 +22,7 @@ namespace libsaria
string next_file();
void save();
void load();
}
}

View File

@ -6,6 +6,7 @@
#include <libsaria/path.h>
#include <libsaria/prefs.h>
#include <libsaria/print.h>
#include <libsaria/queue.h>
#include <libsaria/library.h>
#include <libsaria/format.h>
#include <libsaria/index.h>
@ -21,6 +22,7 @@ namespace libsaria
println("saria dir: %s", get_saria_dir().c_str());
make_saria_dir();
libsaria::library::load();
libsaria::queue::load();
libsaria::prefs::load();
}

View File

@ -1,10 +1,36 @@
#include <libsaria/idle.h>
#include <libsaria/callback.h>
#include <libsaria/queue.h>
#include "queue.h"
static void do_load()
{
unsigned int size;
sid_t songid;
InFile in("queue.q");
if (!in.good())
return;
in >> size;
for (unsigned int i = 0; i < size; i++) {
in >> songid;
playqueue.push_back(songid);
}
trigger_callback(QUEUE_REFRESH);
}
namespace libsaria
{
void queue::load()
{
LoadTask *task = new LoadTask(do_load);
task->queue();
}
void queue::save()
{
OutFile out("queue.q");