+/** @brief Called when a rescan completes */
+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;
+}
+
+/** @brief Called when a track is adopted */
+static void log_adopted(void attribute((unused)) *v,
+ const char attribute((unused)) *id,
+ const char attribute((unused)) *who) {
+ event_raise("queue-changed", 0);
+}
+
+static void log_playlist_created(void attribute((unused)) *v,
+ const char *playlist,
+ const char attribute((unused)) *sharing) {
+ event_raise("playlist-created", (void *)playlist);
+}
+
+static void log_playlist_modified(void attribute((unused)) *v,
+ const char *playlist,
+ const char attribute((unused)) *sharing) {
+ event_raise("playlist-modified", (void *)playlist);
+}