playlist editors will need one though.
}
/** @brief Called at startup */
-static void added_init(void) {
+static void added_init(struct queuelike attribute((unused)) *ql) {
event_register("rescan-complete", added_changed, 0);
}
--srcrow;
/* Tell the queue implementation */
- ql->drop(srcrow, dstrow);
+ ql->drop(ql, srcrow, dstrow);
/* Dispose of stashed data */
gtk_tree_path_free(ql->drag_target);
/* TODO style? */
- ql->init();
+ ql->init(ql);
/* Update display text when lookups complete */
event_register("lookups-completed", queue_lookups_completed, ql);
const char *name;
/** @brief Initialization function */
- void (*init)(void);
+ void (*init)(struct queuelike *ql);
/** @brief Columns */
const struct queue_column *columns;
* If the rearrangement is impossible then the displayed queue must be put
* back.
*/
- void (*drop)(int src, int dst);
+ void (*drop)(struct queuelike *ql, int src, int dst);
/** @brief Stashed drag target row */
GtkTreePath *drag_target;
}
/** @brief Called at startup */
-static void queue_init(void) {
+static void queue_init(struct queuelike attribute((unused)) *ql) {
/* Arrange a callback whenever the playing state changes */
event_register("playing-changed", playing_changed, 0);
/* We reget both playing track and queue at pause/resume so that start times
}
/** @brief Called when drag+drop completes */
-static void queue_drop(int src, int dst) {
+static void queue_drop(struct queuelike attribute((unused)) *ql,
+ int src, int dst) {
struct queue_entry *sq, *dq;
int n;
}
/** @brief Called at startup */
-static void recent_init(void) {
+static void recent_init(struct queuelike attribute((unused)) *ql) {
/* Whenever the recent list changes on the server, re-fetch it */
event_register("recent-changed", recent_changed, 0);
}