X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/58d2aad26bc5a3059ee362a251024a2d470e63a1..bdd2a99650780a1ef4a9e788eaabbc5e810cc39c:/disobedience/log.c diff --git a/disobedience/log.c b/disobedience/log.c index 4dadae7..6779cbd 100644 --- a/disobedience/log.c +++ b/disobedience/log.c @@ -42,6 +42,7 @@ static void log_scratched(void *v, const char *track, const char *user); static void log_state(void *v, unsigned long state); static void log_volume(void *v, int l, int r); static void log_rescanned(void *v); +static void log_rights_changed(void *v, rights_type r); /** @brief Callbacks for server state monitoring */ const disorder_eclient_log_callbacks log_callbacks = { @@ -57,7 +58,8 @@ const disorder_eclient_log_callbacks log_callbacks = { .scratched = log_scratched, .state = log_state, .volume = log_volume, - .rescanned = log_rescanned + .rescanned = log_rescanned, + .rights_changed = log_rights_changed }; /** @brief Update everything */ @@ -149,6 +151,7 @@ static const struct { { DISORDER_RANDOM_ENABLED, "random-changed" }, { DISORDER_TRACK_PAUSED, "pause-changed" }, { DISORDER_PLAYING, "playing-changed" }, + { DISORDER_CONNECTED, "connected-changed" }, }; #define NSTATE_EVENTS (sizeof state_events / sizeof *state_events) @@ -192,6 +195,15 @@ static void log_rescanned(void attribute((unused)) *v) { event_raise("rescan-complete", 0); } +/** @brief Called when our rights change */ +static void log_rights_changed(void attribute((unused)) *v, + rights_type new_rights) { + ++suppress_actions; + last_rights = new_rights; + event_raise("rights-changed", 0); + --suppress_actions; +} + /* Local Variables: c-basic-offset:2