chiark / gitweb /
propagate button in track properties popup
[disorder] / disobedience / disobedience.h
index 59cc6e9b22c8678d7acc0e21f59397e9ce6d59b9..c3acca7e51059577fab8b44bf10f99f68ff6e3c5 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of DisOrder.
- * Copyright (C) 2006 Richard Kettlewell
+ * Copyright (C) 2006, 2007 Richard Kettlewell
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -88,6 +88,11 @@ extern int playing;                     /* true if playing some track */
 extern int volume_l, volume_r;          /* current volume */
 extern double goesupto;                 /* volume upper bound */
 extern int choosealpha;                 /* break up choose by letter */
+extern GtkTooltips *tips;
+
+extern const disorder_eclient_log_callbacks log_callbacks;
+
+typedef void monitor_callback(void *u);
 
 /* Functions --------------------------------------------------------------- */
 
@@ -111,6 +116,13 @@ GdkPixbuf *find_image(const char *name);
 void popup_error(const char *msg);
 /* Pop up an error message */
 
+void register_monitor(monitor_callback *callback,
+                      void *u,
+                      unsigned long mask);
+/* Register a state monitor */
+
+void all_update(void);
+/* Update everything */
 
 /* Main menu */
 
@@ -127,9 +139,8 @@ void menu_update(int page);
 GtkWidget *control_widget(void);
 /* Make the controls widget */
 
-void control_update(void);
-/* Called whenever we think the control widget needs changing */
-
+void volume_update(void);
+/* Called whenever we think the volume control has changed */
 
 /* Queue/Recent */
 
@@ -147,9 +158,6 @@ void queue_select_all(struct queuelike *ql);
 void queue_properties(struct queuelike *ql);
 /* Pop up properties of selected items in some queue */
 
-void playing_update(void);
-/* Called whenever we think the currently playing track might have changed */
-
 int queued(const char *track);
 /* Return nonzero iff TRACK is queued or playing */
 
@@ -167,6 +175,35 @@ GtkWidget *choose_widget(void);
 void choose_update(void);
 /* Called when we think the choose tree might need updating */
 
+/* Widget leakage debugging rubbish ---------------------------------------- */
+
+#if MDEBUG
+#define NW(what) do {                                   \
+  if(++current##what % 100 > max##what) {               \
+    fprintf(stderr, "%s:%d: %d %s\n",                   \
+            __FILE__, __LINE__, current##what, #what);  \
+    max##what = current##what;                          \
+  }                                                     \
+} while(0)
+#define WT(what) static int current##what, max##what
+#define DW(what) (--current##what)
+#else
+#define NW(what) do { } while(0)
+#define DW(what) do { } while(0)
+#define WT(what) struct neverused
+#endif
+
+#if MTRACK
+extern const char *mtag;
+#define MTAG(x) do { mtag = x; } while(0)
+#define MTAG_PUSH(x) do { const char *save_mtag = mtag; mtag = x; (void)0
+#define MTAG_POP() mtag = save_mtag; } while(0)
+#else
+#define MTAG(x) do { } while(0)
+#define MTAG_PUSH(x) do {} while(0)
+#define MTAG_POP() do {} while(0)
+#endif
+
 #endif /* DISOBEDIENCE_H */
 
 /*