2014-02-17 15:32:47 -05:00
|
|
|
/*
|
|
|
|
* Copyright 2014 (c) Anna Schumaker.
|
|
|
|
*/
|
2015-12-07 09:35:58 -05:00
|
|
|
extern "C" {
|
|
|
|
#include <core/collection.h>
|
2014-06-05 10:19:22 -04:00
|
|
|
#include <core/playlist.h>
|
2015-12-24 09:35:36 -05:00
|
|
|
#include <gui/builder.h>
|
2016-01-13 09:37:05 -05:00
|
|
|
#include <gui/queue.h>
|
2016-01-21 10:10:56 -05:00
|
|
|
#include <gui/sidebar.h>
|
2015-12-10 13:59:21 -05:00
|
|
|
}
|
2014-06-04 13:59:15 -04:00
|
|
|
#include <gui/tabs.h>
|
2015-04-11 16:24:01 -04:00
|
|
|
#include <gui/queue/label.h>
|
2014-02-17 15:32:47 -05:00
|
|
|
|
|
|
|
|
2016-01-12 08:02:28 -05:00
|
|
|
static void *collection_init(struct queue *queue)
|
|
|
|
{
|
2016-01-14 08:00:04 -05:00
|
|
|
return gui_queue_alloc(queue, "Collection", GQ_CAN_RANDOM);
|
2016-01-13 08:18:03 -05:00
|
|
|
}
|
|
|
|
|
2015-11-29 19:45:39 -05:00
|
|
|
static void collection_added(struct queue *queue, unsigned int pos)
|
|
|
|
{
|
2016-01-18 09:11:30 -05:00
|
|
|
gui_queue_added(queue, pos);
|
2016-01-21 10:10:56 -05:00
|
|
|
gui_sidebar_set_size(gui_queue(queue));
|
2015-11-29 19:45:39 -05:00
|
|
|
}
|
|
|
|
|
2016-01-22 08:11:09 -05:00
|
|
|
static bool collection_erase(struct queue *queue, struct track *track)
|
|
|
|
{
|
2016-01-21 08:13:14 -05:00
|
|
|
return playlist_add(PL_HIDDEN, track);
|
2016-01-22 08:11:09 -05:00
|
|
|
}
|
|
|
|
|
2015-11-29 20:01:12 -05:00
|
|
|
static void collection_removed(struct queue *queue, unsigned int pos)
|
|
|
|
{
|
2016-01-18 09:11:30 -05:00
|
|
|
gui_queue_removed(queue, pos);
|
2016-01-21 10:10:56 -05:00
|
|
|
gui_sidebar_set_size(gui_queue(queue));
|
2015-11-29 20:01:12 -05:00
|
|
|
}
|
|
|
|
|
2015-11-24 08:18:31 -05:00
|
|
|
struct queue_ops collection_ops = {
|
2016-01-12 08:02:28 -05:00
|
|
|
collection_init,
|
2016-01-13 09:37:05 -05:00
|
|
|
gui_queue_free,
|
2015-11-29 19:45:39 -05:00
|
|
|
collection_added,
|
2016-01-22 08:11:09 -05:00
|
|
|
collection_erase,
|
2015-11-29 20:01:12 -05:00
|
|
|
collection_removed,
|
2016-01-20 16:49:37 -05:00
|
|
|
gui_queue_cleared,
|
2015-12-05 13:24:26 -05:00
|
|
|
collection_save,
|
2016-01-20 16:49:37 -05:00
|
|
|
gui_queue_updated,
|
2015-11-24 08:18:31 -05:00
|
|
|
};
|