summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Dreßler <verdre@v0yd.nl>2019-02-02 16:15:47 +0100
committerBenjamin Berg <benjamin@sipsolutions.net>2019-12-12 12:00:05 +0000
commit7bf807de146ac1fbce9acd88e0d755fb8c26063f (patch)
tree8e55aea8aac3f2d7638d484c9d603de2b4223361
parentcd4418653f317fcd2d6a6d69f14fdc2e005e092c (diff)
downloadgnome-settings-daemon-7bf807de146ac1fbce9acd88e0d755fb8c26063f.tar.gz
media-keys: Split up update_dialog into two functions
The function `update_dialog` has nothing to do with a dialog, to make the code better understandable, split it up into two functions: `show_volume_osd` and `play_volume_changed_audio`. While at it, also include the function `ensure_canberra` in the new function since it's only needed here and use `g_signal_connect_swapped` for the `sound_theme_changed` callback. https://gitlab.gnome.org/GNOME/gnome-settings-daemon/merge_requests/77
-rw-r--r--plugins/media-keys/gsd-media-keys-manager.c74
1 files changed, 37 insertions, 37 deletions
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index f4ab76f5..7d3cdf54 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -1330,9 +1330,7 @@ do_lock_screensaver (GsdMediaKeysManager *manager)
}
static void
-sound_theme_changed (GtkSettings *settings,
- GParamSpec *pspec,
- GsdMediaKeysManager *manager)
+sound_theme_changed (GsdMediaKeysManager *manager)
{
GsdMediaKeysManagerPrivate *priv = GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE (manager);
char *theme_name;
@@ -1358,35 +1356,45 @@ allow_volume_above_100_percent_changed_cb (GSettings *settings,
}
static void
-ensure_canberra (GsdMediaKeysManager *manager)
+play_volume_changed_audio (GsdMediaKeysManager *manager,
+ GvcMixerStream *stream)
{
GsdMediaKeysManagerPrivate *priv = GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE (manager);
- char *theme_name;
- if (priv->ca != NULL)
- return;
+ if (priv->ca == NULL) {
+ ca_context_create (&priv->ca);
+ ca_context_set_driver (priv->ca, "pulse");
+ ca_context_change_props (priv->ca, 0,
+ CA_PROP_APPLICATION_ID,
+ "org.gnome.VolumeControl",
+ NULL);
- ca_context_create (&priv->ca);
- ca_context_set_driver (priv->ca, "pulse");
- ca_context_change_props (priv->ca, 0,
- CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
- NULL);
- priv->gtksettings = gtk_settings_get_for_screen (gdk_screen_get_default ());
- g_object_get (G_OBJECT (priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
- if (theme_name)
- ca_context_change_props (priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
- g_free (theme_name);
- g_signal_connect (priv->gtksettings, "notify::gtk-sound-theme-name",
- G_CALLBACK (sound_theme_changed), manager);
+ priv->gtksettings =
+ gtk_settings_get_for_screen (gdk_screen_get_default ());
+
+ g_signal_connect_swapped (priv->gtksettings,
+ "notify::gtk-sound-theme-name",
+ G_CALLBACK (sound_theme_changed),
+ manager);
+ sound_theme_changed (manager);
+ }
+
+ ca_context_change_device (priv->ca,
+ gvc_mixer_stream_get_name (stream));
+ ca_context_play (priv->ca, 1,
+ CA_PROP_EVENT_ID, "audio-volume-change",
+ CA_PROP_EVENT_DESCRIPTION, "volume changed through key press",
+ CA_PROP_CANBERRA_CACHE_CONTROL, "permanent",
+ NULL);
}
static void
-update_dialog (GsdMediaKeysManager *manager,
- GvcMixerStream *stream,
- guint vol,
- gboolean muted,
- gboolean sound_changed,
- gboolean quiet)
+show_volume_osd (GsdMediaKeysManager *manager,
+ GvcMixerStream *stream,
+ guint vol,
+ gboolean muted,
+ gboolean sound_changed,
+ gboolean quiet)
{
GsdMediaKeysManagerPrivate *priv = GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE (manager);
GvcMixerUIDevice *device;
@@ -1419,16 +1427,8 @@ update_dialog (GsdMediaKeysManager *manager,
playing = gvc_mixer_stream_get_state (stream) == GVC_STREAM_STATE_RUNNING;
- if (quiet == FALSE && sound_changed != FALSE && muted == FALSE && playing == FALSE) {
- ensure_canberra (manager);
- ca_context_change_device (priv->ca,
- gvc_mixer_stream_get_name (stream));
- ca_context_play (priv->ca, 1,
- CA_PROP_EVENT_ID, "audio-volume-change",
- CA_PROP_EVENT_DESCRIPTION, "volume changed through key press",
- CA_PROP_CANBERRA_CACHE_CONTROL, "permanent",
- NULL);
- }
+ if (quiet == FALSE && sound_changed != FALSE && muted == FALSE && playing == FALSE)
+ play_volume_changed_audio (manager, stream);
}
#if HAVE_GUDEV
@@ -1615,8 +1615,8 @@ do_sound_action (GsdMediaKeysManager *manager,
}
}
- update_dialog (manager, stream, new_vol, new_muted, sound_changed,
- flags & SOUND_ACTION_FLAG_IS_QUIET);
+ show_volume_osd (manager, stream, new_vol, new_muted, sound_changed,
+ flags & SOUND_ACTION_FLAG_IS_QUIET);
}
static void