47 lines
957 B
C++
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,
|
|
};
|