/** @brief Update everything */
void all_update(void) {
++suppress_actions;
- queue_update();
- recent_update();
+ event_raise("queue-changed", 0);
+ event_raise("recent-changed", 0);
volume_update();
- added_update();
+ event_raise("added-changed", 0);
--suppress_actions;
}
/** @brief Called when some track is moved within the queue */
static void log_moved(void attribute((unused)) *v,
const char attribute((unused)) *user) {
- queue_update();
+ event_raise("queue-changed", 0);
}
static void log_playing(void attribute((unused)) *v,
/** @brief Called when a track is added to the queue */
static void log_queue(void attribute((unused)) *v,
struct queue_entry attribute((unused)) *q) {
- queue_update();
+ event_raise("queue-changed", 0);
}
/** @brief Called when a track is added to the recently-played list */
static void log_recent_added(void attribute((unused)) *v,
struct queue_entry attribute((unused)) *q) {
- recent_update();
+ event_raise("recent-changed", 0);
}
/** @brief Called when a track is removed from the recently-played list
static void log_removed(void attribute((unused)) *v,
const char attribute((unused)) *id,
const char attribute((unused)) *user) {
-
- queue_update();
+ event_raise("queue-changed", 0);
}
/** @brief Called when the current track is scratched */
/** @brief Called when a rescan completes */
static void log_rescanned(void attribute((unused)) *v) {
- added_update();
+ event_raise("added-changed", 0);
}
/** @brief Add a monitor to the list
const struct queue_entry *q,
const char *data);
static int draggable_row(const struct queue_entry *q);
+static void recent_changed(const char *event,
+ void *eventdata,
+ void *callbackdata);
+static void added_changed(const char *event,
+ void *eventdata,
+ void *callbackdata);
+static void queue_changed(const char *event,
+ void *eventdata,
+ void *callbackdata);
static const struct tabtype tabtype_queue; /* forward */
g_timeout_add(1000/*ms*/, adjust_sofar, 0);
/* Arrange a callback whenever the playing state changes */
register_monitor(playing_update, 0, DISORDER_PLAYING|DISORDER_TRACK_PAUSED);
- register_reset(queue_update);
+ event_register("queue-changed",
+ queue_changed,
+ 0);
/* We pass choose_update() as our notify function since the choose screen
* marks tracks that are playing/in the queue. */
return queuelike(&ql_queue, fixup_queue, choose_update, queue_menu,
* Called when a track is added to the queue, removed from the queue (by user
* cmmand or because it is to be played) or moved within the queue
*/
-void queue_update(void) {
- D(("queue_update"));
+void queue_changed(const char attribute((unused)) *event,
+ void attribute((unused)) *eventdata,
+ void attribute((unused)) *callbackdata) {
+ D(("queue_changed"));
gtk_label_set_text(GTK_LABEL(report_label), "updating queue");
disorder_eclient_queue(client, queuelike_completed, &ql_queue);
}
/** @brief Create the recently-played list */
GtkWidget *recent_widget(void) {
D(("recent_widget"));
- register_reset(recent_update);
+ event_register("recent-changed",
+ recent_changed,
+ 0);
return queuelike(&ql_recent, fixup_recent, 0, recent_menu,
maincolumns, NMAINCOLUMNS);
}
*
* Called whenever a track is added to it or removed from it.
*/
-void recent_update(void) {
- D(("recent_update"));
+static void recent_changed(const char attribute((unused)) *event,
+ void attribute((unused)) *eventdata,
+ void attribute((unused)) *callbackdata) {
+ D(("recent_changed"));
gtk_label_set_text(GTK_LABEL(report_label), "updating recently played list");
disorder_eclient_recent(client, queuelike_completed, &ql_recent);
}
/** @brief Create the newly-added list */
GtkWidget *added_widget(void) {
D(("added_widget"));
- register_reset(added_update);
+ event_register("added-changed", added_changed, 0);
return queuelike(&ql_added, 0/*fixup*/, 0/*notify*/, added_menu,
addedcolumns, NADDEDCOLUMNS);
}
}
/** @brief Update the newly-added list */
-void added_update(void) {
- D(("added_update"));
+static void added_changed(const char attribute((unused)) *event,
+ void attribute((unused)) *eventdata,
+ void attribute((unused)) *callbackdata) {
+ D(("added_changed"));
gtk_label_set_text(GTK_LABEL(report_label),
"updating newly added track list");