From: Mike Brady Date: Thu, 29 Mar 2018 16:23:22 +0000 (+0100) Subject: Remove unneeded check for initialisation. X-Git-Tag: 3.2RC1~7^2~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8094bb4d6f05f7f728949ed952e9d63dab815503;p=thirdparty%2Fshairport-sync.git Remove unneeded check for initialisation. --- diff --git a/dbus-service.c b/dbus-service.c index 45e6f9b9..e78703e3 100644 --- a/dbus-service.c +++ b/dbus-service.c @@ -15,184 +15,179 @@ #include "dbus-service.h" -int initialised = 0; ShairportSyncDiagnostics *shairportSyncDiagnosticsSkeleton = NULL; ShairportSyncRemoteControl *shairportSyncRemoteControlSkeleton = NULL; ShairportSyncAdvancedRemoteControl *shairportSyncAdvancedRemoteControlSkeleton = NULL; void dbus_metadata_watcher(struct metadata_bundle *argc, __attribute__((unused)) void *userdata) { char response[100]; - if (initialised) { - shairport_sync_advanced_remote_control_set_volume(shairportSyncAdvancedRemoteControlSkeleton, - argc->speaker_volume); - - shairport_sync_remote_control_set_airplay_volume(shairportSyncRemoteControlSkeleton, - argc->airplay_volume); - - shairport_sync_remote_control_set_server(shairportSyncRemoteControlSkeleton, argc->client_ip); - - if (argc->dacp_server_active) { - shairport_sync_remote_control_set_available(shairportSyncRemoteControlSkeleton, TRUE); - } else { - shairport_sync_remote_control_set_available(shairportSyncRemoteControlSkeleton, FALSE); - } - - if (argc->advanced_dacp_server_active) { - shairport_sync_advanced_remote_control_set_available(shairportSyncAdvancedRemoteControlSkeleton, - TRUE); - } else { - shairport_sync_advanced_remote_control_set_available(shairportSyncAdvancedRemoteControlSkeleton, - FALSE); - } - - switch (argc->player_state) { - case PS_NOT_AVAILABLE: - shairport_sync_remote_control_set_player_state(shairportSyncRemoteControlSkeleton, - "Not Available"); - case PS_STOPPED: - shairport_sync_remote_control_set_player_state(shairportSyncRemoteControlSkeleton, "Stopped"); - break; - case PS_PAUSED: - shairport_sync_remote_control_set_player_state(shairportSyncRemoteControlSkeleton, "Paused"); - break; - case PS_PLAYING: - shairport_sync_remote_control_set_player_state(shairportSyncRemoteControlSkeleton, "Playing"); - break; - default: - debug(1, "This should never happen."); - } - - switch (argc->play_status) { - case PS_NOT_AVAILABLE: - shairport_sync_advanced_remote_control_set_playback_status( - shairportSyncAdvancedRemoteControlSkeleton, "Not Available"); - case PS_STOPPED: - shairport_sync_advanced_remote_control_set_playback_status( - shairportSyncAdvancedRemoteControlSkeleton, "Stopped"); - break; - case PS_PAUSED: - shairport_sync_advanced_remote_control_set_playback_status( - shairportSyncAdvancedRemoteControlSkeleton, "Paused"); - break; - case PS_PLAYING: - shairport_sync_advanced_remote_control_set_playback_status( - shairportSyncAdvancedRemoteControlSkeleton, "Playing"); - break; - default: - debug(1, "This should never happen."); - } - - switch (argc->repeat_status) { - case RS_NOT_AVAILABLE: - strcpy(response,"Not Available"); - break; - case RS_OFF: - strcpy(response,"Off"); - break; - case RS_ONE: - strcpy(response,"One"); - break; - case RS_ALL: - strcpy(response,"All"); - break; - default: - debug(1, "This should never happen."); - } - const char *th = shairport_sync_advanced_remote_control_get_loop_status(shairportSyncAdvancedRemoteControlSkeleton); - if (th) - debug(1,"Reported loop status is \"%s\".",th); - else - debug(1,"Null loop status."); - - // only set this if it's different - if ((th==NULL) || (strcasecmp(th,response)!=0)) { - debug(1,"Loop Status should be changed"); - shairport_sync_advanced_remote_control_set_loop_status(shairportSyncAdvancedRemoteControlSkeleton, response); - } - - switch (argc->shuffle_status) { - case SS_NOT_AVAILABLE: - shairport_sync_advanced_remote_control_set_shuffle(shairportSyncAdvancedRemoteControlSkeleton, - FALSE); - break; - case SS_OFF: - shairport_sync_advanced_remote_control_set_shuffle(shairportSyncAdvancedRemoteControlSkeleton, - FALSE); - break; - case SS_ON: - shairport_sync_advanced_remote_control_set_shuffle(shairportSyncAdvancedRemoteControlSkeleton, + + shairport_sync_advanced_remote_control_set_volume(shairportSyncAdvancedRemoteControlSkeleton, + argc->speaker_volume); + + shairport_sync_remote_control_set_airplay_volume(shairportSyncRemoteControlSkeleton, + argc->airplay_volume); + + shairport_sync_remote_control_set_server(shairportSyncRemoteControlSkeleton, argc->client_ip); + + if (argc->dacp_server_active) { + shairport_sync_remote_control_set_available(shairportSyncRemoteControlSkeleton, TRUE); + } else { + shairport_sync_remote_control_set_available(shairportSyncRemoteControlSkeleton, FALSE); + } + + if (argc->advanced_dacp_server_active) { + shairport_sync_advanced_remote_control_set_available(shairportSyncAdvancedRemoteControlSkeleton, TRUE); - break; - default: - debug(1, "This should never happen."); - } - - GVariantBuilder *dict_builder, *aa; - - /* Build the metadata array */ - // debug(1,"Build metadata"); - dict_builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}")); - - // Make up the artwork URI if we have one - if (argc->cover_art_pathname) { - char artURIstring[1024]; - sprintf(artURIstring, "file://%s", argc->cover_art_pathname); - // sprintf(artURIstring,""); - // debug(1,"artURI String: \"%s\".",artURIstring); - GVariant *artUrl = g_variant_new("s", artURIstring); - g_variant_builder_add(dict_builder, "{sv}", "mpris:artUrl", artUrl); - } - - // Add the TrackID if we have one - if (argc->item_id) { - char trackidstring[128]; - // debug(1, "Set ID using mper ID: \"%u\".",argc->item_id); - sprintf(trackidstring, "/org/gnome/ShairportSync/mper_%u", argc->item_id); - GVariant *trackid = g_variant_new("o", trackidstring); - g_variant_builder_add(dict_builder, "{sv}", "mpris:trackid", trackid); - } - - // Add the track name if there is one - if (argc->track_name) { - // debug(1, "Track name set to \"%s\".", argc->track_name); - GVariant *trackname = g_variant_new("s", argc->track_name); - g_variant_builder_add(dict_builder, "{sv}", "xesam:title", trackname); - } - - // Add the album name if there is one - if (argc->album_name) { - // debug(1, "Album name set to \"%s\".", argc->album_name); - GVariant *albumname = g_variant_new("s", argc->album_name); - g_variant_builder_add(dict_builder, "{sv}", "xesam:album", albumname); - } - - // Add the artists if there are any (actually there will be at most one, but put it in an array) - if (argc->artist_name) { - /* Build the artists array */ - // debug(1,"Build artist array"); - aa = g_variant_builder_new(G_VARIANT_TYPE("as")); - g_variant_builder_add(aa, "s", argc->artist_name); - GVariant *artists = g_variant_builder_end(aa); - g_variant_builder_unref(aa); - g_variant_builder_add(dict_builder, "{sv}", "xesam:artist", artists); - } - - // Add the genres if there are any (actually there will be at most one, but put it in an array) - if (argc->genre) { - // debug(1,"Build genre"); - aa = g_variant_builder_new(G_VARIANT_TYPE("as")); - g_variant_builder_add(aa, "s", argc->genre); - GVariant *genres = g_variant_builder_end(aa); - g_variant_builder_unref(aa); - g_variant_builder_add(dict_builder, "{sv}", "xesam:genre", genres); - } - - GVariant *dict = g_variant_builder_end(dict_builder); - g_variant_builder_unref(dict_builder); - - // debug(1,"Set metadata"); - shairport_sync_remote_control_set_metadata(shairportSyncRemoteControlSkeleton, dict); - } + } else { + shairport_sync_advanced_remote_control_set_available(shairportSyncAdvancedRemoteControlSkeleton, + FALSE); + } + + switch (argc->player_state) { + case PS_NOT_AVAILABLE: + shairport_sync_remote_control_set_player_state(shairportSyncRemoteControlSkeleton, + "Not Available"); + case PS_STOPPED: + shairport_sync_remote_control_set_player_state(shairportSyncRemoteControlSkeleton, "Stopped"); + break; + case PS_PAUSED: + shairport_sync_remote_control_set_player_state(shairportSyncRemoteControlSkeleton, "Paused"); + break; + case PS_PLAYING: + shairport_sync_remote_control_set_player_state(shairportSyncRemoteControlSkeleton, "Playing"); + break; + default: + debug(1, "This should never happen."); + } + + switch (argc->play_status) { + case PS_NOT_AVAILABLE: + shairport_sync_advanced_remote_control_set_playback_status( + shairportSyncAdvancedRemoteControlSkeleton, "Not Available"); + case PS_STOPPED: + shairport_sync_advanced_remote_control_set_playback_status( + shairportSyncAdvancedRemoteControlSkeleton, "Stopped"); + break; + case PS_PAUSED: + shairport_sync_advanced_remote_control_set_playback_status( + shairportSyncAdvancedRemoteControlSkeleton, "Paused"); + break; + case PS_PLAYING: + shairport_sync_advanced_remote_control_set_playback_status( + shairportSyncAdvancedRemoteControlSkeleton, "Playing"); + break; + default: + debug(1, "This should never happen."); + } + + switch (argc->repeat_status) { + case RS_NOT_AVAILABLE: + strcpy(response,"Not Available"); + break; + case RS_OFF: + strcpy(response,"Off"); + break; + case RS_ONE: + strcpy(response,"One"); + break; + case RS_ALL: + strcpy(response,"All"); + break; + default: + debug(1, "This should never happen."); + } + const char *th = shairport_sync_advanced_remote_control_get_loop_status(shairportSyncAdvancedRemoteControlSkeleton); + + // only set this if it's different + if ((th==NULL) || (strcasecmp(th,response)!=0)) { + debug(1,"Loop Status should be changed"); + shairport_sync_advanced_remote_control_set_loop_status(shairportSyncAdvancedRemoteControlSkeleton, response); + } + + switch (argc->shuffle_status) { + case SS_NOT_AVAILABLE: + shairport_sync_advanced_remote_control_set_shuffle(shairportSyncAdvancedRemoteControlSkeleton, + FALSE); + break; + case SS_OFF: + shairport_sync_advanced_remote_control_set_shuffle(shairportSyncAdvancedRemoteControlSkeleton, + FALSE); + break; + case SS_ON: + shairport_sync_advanced_remote_control_set_shuffle(shairportSyncAdvancedRemoteControlSkeleton, + TRUE); + break; + default: + debug(1, "This should never happen."); + } + + GVariantBuilder *dict_builder, *aa; + + /* Build the metadata array */ + // debug(1,"Build metadata"); + dict_builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}")); + + // Make up the artwork URI if we have one + if (argc->cover_art_pathname) { + char artURIstring[1024]; + sprintf(artURIstring, "file://%s", argc->cover_art_pathname); + // sprintf(artURIstring,""); + // debug(1,"artURI String: \"%s\".",artURIstring); + GVariant *artUrl = g_variant_new("s", artURIstring); + g_variant_builder_add(dict_builder, "{sv}", "mpris:artUrl", artUrl); + } + + // Add the TrackID if we have one + if (argc->item_id) { + char trackidstring[128]; + // debug(1, "Set ID using mper ID: \"%u\".",argc->item_id); + sprintf(trackidstring, "/org/gnome/ShairportSync/mper_%u", argc->item_id); + GVariant *trackid = g_variant_new("o", trackidstring); + g_variant_builder_add(dict_builder, "{sv}", "mpris:trackid", trackid); + } + + // Add the track name if there is one + if (argc->track_name) { + // debug(1, "Track name set to \"%s\".", argc->track_name); + GVariant *trackname = g_variant_new("s", argc->track_name); + g_variant_builder_add(dict_builder, "{sv}", "xesam:title", trackname); + } + + // Add the album name if there is one + if (argc->album_name) { + // debug(1, "Album name set to \"%s\".", argc->album_name); + GVariant *albumname = g_variant_new("s", argc->album_name); + g_variant_builder_add(dict_builder, "{sv}", "xesam:album", albumname); + } + + // Add the artists if there are any (actually there will be at most one, but put it in an array) + if (argc->artist_name) { + /* Build the artists array */ + // debug(1,"Build artist array"); + aa = g_variant_builder_new(G_VARIANT_TYPE("as")); + g_variant_builder_add(aa, "s", argc->artist_name); + GVariant *artists = g_variant_builder_end(aa); + g_variant_builder_unref(aa); + g_variant_builder_add(dict_builder, "{sv}", "xesam:artist", artists); + } + + // Add the genres if there are any (actually there will be at most one, but put it in an array) + if (argc->genre) { + // debug(1,"Build genre"); + aa = g_variant_builder_new(G_VARIANT_TYPE("as")); + g_variant_builder_add(aa, "s", argc->genre); + GVariant *genres = g_variant_builder_end(aa); + g_variant_builder_unref(aa); + g_variant_builder_add(dict_builder, "{sv}", "xesam:genre", genres); + } + + GVariant *dict = g_variant_builder_end(dict_builder); + g_variant_builder_unref(dict_builder); + + // debug(1,"Set metadata"); + shairport_sync_remote_control_set_metadata(shairportSyncRemoteControlSkeleton, dict); + } static gboolean on_handle_set_volume(ShairportSyncAdvancedRemoteControl *skeleton, @@ -629,8 +624,6 @@ static void on_dbus_name_acquired(GDBusConnection *connection, const gchar *name add_metadata_watcher(dbus_metadata_watcher, NULL); - initialised = 1; - shairport_sync_set_loudness_threshold(SHAIRPORT_SYNC(shairportSyncSkeleton), config.loudness_reference_volume_db);