ocarina/gui/collection_tab.cpp

47 lines
957 B
C++

/*
* Copyright 2014 (c) Anna Schumaker.
*/
extern "C" {
#include <core/collection.h>
#include <core/playlist.h>
#include <gui/builder.h>
#include <gui/queue.h>
#include <gui/sidebar.h>
}
#include <gui/tabs.h>
#include <gui/queue/label.h>
static void *collection_init(struct queue *queue)
{
return gui_queue_alloc(queue, "Collection", GQ_CAN_RANDOM);
}
static void collection_added(struct queue *queue, unsigned int pos)
{
gui_queue_added(queue, pos);
gui_sidebar_set_size(gui_queue(queue));
}
static bool collection_erase(struct queue *queue, struct track *track)
{
return playlist_add(PL_HIDDEN, track);
}
static void collection_removed(struct queue *queue, unsigned int pos)
{
gui_queue_removed(queue, pos);
gui_sidebar_set_size(gui_queue(queue));
}
struct queue_ops collection_ops = {
collection_init,
gui_queue_free,
collection_added,
collection_erase,
collection_removed,
gui_queue_cleared,
collection_save,
gui_queue_updated,
};