66 lines
1.3 KiB
C++
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);
|
|
}
|
|
|
|
};
|