X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/58d2aad26bc5a3059ee362a251024a2d470e63a1..45e6d04af841f7f1114c22d24c3a58d797a6580b:/disobedience/log.c?ds=sidebyside diff --git a/disobedience/log.c b/disobedience/log.c index 4dadae7..a4db0cf 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 */ @@ -192,6 +194,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