Merge lp:~seb128/unity-settings-daemon/sound_delay_init into lp:unity-settings-daemon

Proposed by Sebastien Bacher on 2015-10-07
Status: Merged
Approved by: Marco Trevisan (Treviño) on 2015-10-09
Approved revision: 4102
Merged at revision: 4105
Proposed branch: lp:~seb128/unity-settings-daemon/sound_delay_init
Merge into: lp:unity-settings-daemon
Diff against target: 101 lines (+36/-28)
1 file modified
plugins/media-keys/gsd-media-keys-manager.c (+36/-28)
To merge this branch: bzr merge lp:~seb128/unity-settings-daemon/sound_delay_init
Reviewer Review Type Date Requested Status
Marco Trevisan (Treviño) 2015-10-07 Approve on 2015-10-09
Review via email: mp+273729@code.launchpad.net

Commit Message

media-keys: Postpone initialisation of libcanberra

Description of the Change

media-keys: Postpone initialisation of libcanberra

To post a comment you must log in.
4102. By Bastien Nocera on 2015-10-08

media-keys: Fix compilation failure

Marco Trevisan (Treviño) (3v1n0) wrote :

ok

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugins/media-keys/gsd-media-keys-manager.c'
2--- plugins/media-keys/gsd-media-keys-manager.c 2015-09-30 14:04:11 +0000
3+++ plugins/media-keys/gsd-media-keys-manager.c 2015-10-08 14:28:35 +0000
4@@ -1358,6 +1358,41 @@
5 }
6
7 static void
8+sound_theme_changed (GtkSettings *settings,
9+ GParamSpec *pspec,
10+ GsdMediaKeysManager *manager)
11+{
12+ char *theme_name;
13+
14+ g_object_get (G_OBJECT (manager->priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
15+ if (theme_name)
16+ ca_context_change_props (manager->priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
17+ g_free (theme_name);
18+}
19+
20+static void
21+ensure_canberra (GsdMediaKeysManager *manager)
22+{
23+ char *theme_name;
24+
25+ if (manager->priv->ca != NULL)
26+ return;
27+
28+ ca_context_create (&manager->priv->ca);
29+ ca_context_set_driver (manager->priv->ca, "pulse");
30+ ca_context_change_props (manager->priv->ca, 0,
31+ CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
32+ NULL);
33+ manager->priv->gtksettings = gtk_settings_get_for_screen (gdk_screen_get_default ());
34+ g_object_get (G_OBJECT (manager->priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
35+ if (theme_name)
36+ ca_context_change_props (manager->priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
37+ g_free (theme_name);
38+ g_signal_connect (manager->priv->gtksettings, "notify::gtk-sound-theme-name",
39+ G_CALLBACK (sound_theme_changed), manager);
40+}
41+
42+static void
43 update_dialog (GsdMediaKeysManager *manager,
44 GvcMixerStream *stream,
45 guint vol,
46@@ -1389,6 +1424,7 @@
47
48 done:
49 if (quiet == FALSE && sound_changed != FALSE && muted == FALSE) {
50+ ensure_canberra (manager);
51 ca_context_change_device (manager->priv->ca,
52 gvc_mixer_stream_get_name (stream));
53 ca_context_play (manager->priv->ca, 1,
54@@ -1594,19 +1630,6 @@
55 }
56
57 static void
58-sound_theme_changed (GtkSettings *settings,
59- GParamSpec *pspec,
60- GsdMediaKeysManager *manager)
61-{
62- char *theme_name;
63-
64- g_object_get (G_OBJECT (manager->priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
65- if (theme_name)
66- ca_context_change_props (manager->priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
67- g_free (theme_name);
68-}
69-
70-static void
71 update_default_sink (GsdMediaKeysManager *manager)
72 {
73 GvcMixerStream *stream;
74@@ -3011,7 +3034,6 @@
75 start_media_keys_idle_cb (GsdMediaKeysManager *manager)
76 {
77 const gchar *module;
78- char *theme_name;
79
80 g_debug ("Starting media_keys manager");
81 gnome_settings_profile_start (NULL);
82@@ -3061,20 +3083,6 @@
83
84 manager->priv->sound_settings = g_settings_new ("com.ubuntu.sound");
85
86- /* Sound events */
87- ca_context_create (&manager->priv->ca);
88- ca_context_set_driver (manager->priv->ca, "pulse");
89- ca_context_change_props (manager->priv->ca, 0,
90- CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
91- NULL);
92- manager->priv->gtksettings = gtk_settings_get_for_screen (gdk_screen_get_default ());
93- g_object_get (G_OBJECT (manager->priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
94- if (theme_name)
95- ca_context_change_props (manager->priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
96- g_free (theme_name);
97- g_signal_connect (manager->priv->gtksettings, "notify::gtk-sound-theme-name",
98- G_CALLBACK (sound_theme_changed), manager);
99-
100 /* for the power plugin interface code */
101 manager->priv->power_settings = g_settings_new (SETTINGS_POWER_DIR);
102

Subscribers

People subscribed via source and target branches