X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/763d5e6ad88ef3ba1cd1d7742d060e4f1e54c6b8..348ef7809bd9e7eda327e3c4cec0a963b245f0fb:/disobedience/disobedience.h diff --git a/disobedience/disobedience.h b/disobedience/disobedience.h index 59cc6e9..c3acca7 100644 --- a/disobedience/disobedience.h +++ b/disobedience/disobedience.h @@ -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 */ /*