--- gnome-media-2.30.0/gstreamer-properties/gstreamer-properties.c-orig 2011-01-26 17:42:34.370674877 -0600
+++ gnome-media-2.30.0/gstreamer-properties/gstreamer-properties.c 2011-01-26 17:49:45.028133772 -0600
@@ -74,6 +74,10 @@ gst_properties_gconf_get_string (const g
return value;
}
+static gchar GSTPROPS_KEY_DEFAULT_AUDIOSINK[] = "default/audiosink";
+static gchar GSTPROPS_KEY_DEFAULT_CHATAUDIOSINK[] = "default/chataudiosink";
+static gchar GSTPROPS_KEY_DEFAULT_MUSICAUDIOSINK[] = "default/musicaudiosink";
+
void
gst_properties_gconf_set_string (const gchar * key, const gchar * value)
{
@@ -85,6 +89,19 @@ gst_properties_gconf_set_string (const g
gconf_client_set_string (gconf_client, full_key, value, &error);
g_free (full_key);
+ /*
+ * If setting "default/audiosink", also set the other keys that should be
+ * kept in sync.
+ */
+ if (strcmp (key, GSTPROPS_KEY_DEFAULT_AUDIOSINK) == 0) {
+ full_key = gst_properties_gconf_get_full_key (GSTPROPS_KEY_DEFAULT_CHATAUDIOSINK);
+ gconf_client_set_string (gconf_client, full_key, value, &error);
+ g_free (full_key);
+ full_key = gst_properties_gconf_get_full_key (GSTPROPS_KEY_DEFAULT_MUSICAUDIOSINK);
+ gconf_client_set_string (gconf_client, full_key, value, &error);
+ g_free (full_key);
+ }
+
if (error) {
g_warning ("%s() error: %s", G_STRFUNC, error->message);
g_error_free (error);