ocarina: Fill in the queue

The library passes in its selected songs and then the queue responds to
the QUEUE_REFRESH callback to fill in the list.
This commit is contained in:
Bryan Schumaker 2011-12-11 16:18:47 -05:00
parent 6ef54e07c5
commit 0f3e5d5963
4 changed files with 23 additions and 5 deletions

View File

@ -7,6 +7,7 @@ namespace ocarina
{
void init();
void refresh();
}
};

View File

@ -5,6 +5,7 @@
#include <ocarina/ocarina.h>
#include <ocarina/button.h>
#include <ocarina/library.h>
#include <ocarina/queue.h>
#include <ocarina/settings.h>
#include <ocarina/footer.h>
@ -35,6 +36,12 @@ void cb_library_refresh()
library_settings_refresh();
}
void cb_queue_refresh()
{
println("Ocarina QUEUE_REFRESH callback!");
ocarina::queue::refresh();
}
void cb_refilter()
{
println("Ocarina REFILTER callback!");
@ -54,6 +61,7 @@ void setup_callbacks()
register_callback(PAUSE, cb_pause);
register_callback(IDLE_TASK_QUEUED, cb_idle_task_queued);
register_callback(LIBRARY_REFRESH, cb_library_refresh);
register_callback(QUEUE_REFRESH, cb_queue_refresh);
register_callback(REFILTER, cb_refilter);
register_callback(TRACK_LOADED, cb_track_loaded);
}

View File

@ -5,6 +5,7 @@
#include <ocarina/songlist.h>
#include <libsaria/library.h>
#include <libsaria/queue.h>
#include <libsaria/track.h>
#include <libsaria/print.h>
@ -20,11 +21,7 @@ static void add_to_queue(GtkMenuItem *menu, gpointer data)
list<ino_t> selected;
list<ino_t>::iterator it;
library_list.list_selected_ids(selected);
println("Test function!");
for (it = selected.begin(); it != selected.end(); it++) {
println(*it);
}
libsaria::queue::add_ids(selected);
}
namespace ocarina

View File

@ -4,6 +4,8 @@
#include <ocarina/gtk.h>
#include <ocarina/songlist.h>
#include <libsaria/queue.h>
#include <list>
using namespace std;
@ -14,10 +16,20 @@ static list <MenuItem> queue_menu;
namespace ocarina
{
void queue::refresh()
{
queue_list.clear();
queue_list.fill();
}
void queue::init()
{
queue_funcs.for_each = libsaria::queue::for_each;
queue_funcs.size = libsaria::queue::size;
queue_list.init("Queue", &queue_funcs, &queue_menu);
add_page(queue_list.get_label(), queue_list.get_window(), true);
ocarina::queue::refresh();
}
};