ocarina/ocarina/library.cpp

66 lines
1.3 KiB
C++

#include <ocarina/library.h>
#include <ocarina/body.h>
#include <ocarina/gtk.h>
#include <ocarina/songlist.h>
#include <ocarina/shortcut.h>
#include <libsaria/library.h>
#include <libsaria/queue.h>
#include <libsaria/track.h>
#include <libsaria/print.h>
#include <list>
using namespace std;
static SongList library_list;
static struct SongListFuncs library_funcs;
static list <MenuItem> library_menu;
static void add_to_queue()
{
list<ino_t> selected;
list<ino_t>::iterator it;
library_list.list_selected_ids(selected);
libsaria::queue::add_ids(selected);
}
static void add_to_queue_event(GtkMenuItem *menu, gpointer data)
{
add_to_queue();
}
namespace ocarina
{
void library::refilter()
{
library_list.refilter();
}
void library::refresh()
{
library_list.clear();
library_list.fill();
}
void library::init()
{
library_menu.push_back(MenuItem("Add to Queue", add_to_queue_event));
library_funcs.for_each = libsaria::library::for_each;
library_funcs.size = libsaria::library::size;
register_shortcut("q", add_to_queue);
library_list.init("Library", &library_funcs, &library_menu, true);
add_page(library_list.get_label(), library_list.get_window(), true);
ocarina::library::refresh();
}
void library::scroll_to(Track &track)
{
library_list.scroll_to(track);
}
};