From: <tp...@ke...> - 2007-02-06 15:57:03
|
CVS Root: /cvs/gstreamer Module: gst-plugins-good Changes by: tpm Date: Tue Feb 06 2007 15:56:26 UTC Log message: * ext/gconf/gconf.c: (gst_gconf_get_key_for_sink_profile), (gst_gconf_render_bin_from_key), (gst_gconf_get_default_audio_sink): * ext/gconf/gconf.h: * ext/gconf/gstgconfaudiosink.c: (get_gconf_key_for_profile), (do_toggle_element), (gst_gconf_audio_sink_set_property), (gst_gconf_audio_sink_get_property): In gconfaudiosink, get the right key as the old key in do_toggle (ie. one dependent on the profile selected). Log some more stuff so we can see what's actually going on. Modified files: . : ChangeLog ext/gconf : gconf.c gconf.h gstgconfaudiosink.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ChangeLog.diff?r1=1.2717&r2=1.2718 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ext/gconf/gconf.c.diff?r1=1.6&r2=1.7 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ext/gconf/gconf.h.diff?r1=1.5&r2=1.6 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ext/gconf/gstgconfaudiosink.c.diff?r1=1.14&r2=1.15 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-good/ChangeLog,v retrieving revision 1.2717 retrieving revision 1.2718 diff -u -d -r1.2717 -r1.2718 --- ChangeLog 6 Feb 2007 11:16:49 -0000 1.2717 +++ ChangeLog 6 Feb 2007 15:56:14 -0000 1.2718 @@ -1,3 +1,16 @@ +2007-02-06 Tim-Philipp Müller <tim at centricular dot net> + + * ext/gconf/gconf.c: (gst_gconf_get_key_for_sink_profile), + (gst_gconf_render_bin_from_key), + (gst_gconf_get_default_audio_sink): + * ext/gconf/gconf.h: + * ext/gconf/gstgconfaudiosink.c: (get_gconf_key_for_profile), + (do_toggle_element), (gst_gconf_audio_sink_set_property), + (gst_gconf_audio_sink_get_property): + In gconfaudiosink, get the right key as the old key in do_toggle + (ie. one dependent on the profile selected). Log some more stuff so + we can see what's actually going on. 2007-02-06 Sebastian Dröge <sl...@ci...> * gst/audiofx/audioamplify.c: (gst_audio_amplify_base_init), Index: gconf.c RCS file: /cvs/gstreamer/gst-plugins-good/ext/gconf/gconf.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- gconf.c 17 Feb 2006 10:53:38 -0000 1.6 +++ gconf.c 6 Feb 2007 15:56:14 -0000 1.7 @@ -27,6 +27,7 @@ #endif #include "gconf.h" +#include "gstgconfelements.h" /* for debug category */ #ifndef GST_GCONF_DIR #error "GST_GCONF_DIR is not defined !" @@ -77,6 +78,23 @@ return value; } +const gchar * +gst_gconf_get_key_for_sink_profile (guint profile) +{ + switch (profile) { + case GCONF_PROFILE_SOUNDS: + return GST_GCONF_AUDIOSINK_KEY; + case GCONF_PROFILE_MUSIC: + return GST_GCONF_MUSIC_AUDIOSINK_KEY; + case GCONF_PROFILE_CHAT: + return GST_GCONF_CHAT_AUDIOSINK_KEY; + default: + break; + } + g_return_val_if_reached (GST_GCONF_AUDIOSINK_KEY); +} /** * gst_gconf_set_string: * @key: a #gchar corresponding to the key you want to set. @@ -113,6 +131,9 @@ gchar *value; value = gst_gconf_get_string (key); + GST_LOG ("%s = %s", GST_STR_NULL (key), GST_STR_NULL (value)); if (value) { GError *err = NULL; @@ -142,27 +163,10 @@ gst_gconf_get_default_audio_sink (int profile) { GstElement *ret; - gchar *key; - const gchar *profile_string; - - switch (profile) { - case GCONF_PROFILE_SOUNDS: - profile_string = ""; - break; - case GCONF_PROFILE_MUSIC: - profile_string = "music"; - case GCONF_PROFILE_CHAT: - profile_string = "chat"; - default: - g_return_val_if_reached (NULL); - } - key = g_strdup_printf ("default/%saudiosink", profile_string); + const gchar *key; + key = gst_gconf_get_key_for_sink_profile (profile); ret = gst_gconf_render_bin_from_key (key); - g_free (key); if (!ret) { ret = gst_element_factory_make (DEFAULT_AUDIOSINK, NULL); Index: gconf.h RCS file: /cvs/gstreamer/gst-plugins-good/ext/gconf/gconf.h,v retrieving revision 1.5 diff -u -d -r1.5 -r1.6 --- gconf.h 17 Feb 2006 10:53:38 -0000 1.5 +++ gconf.h 6 Feb 2007 15:56:14 -0000 1.6 @@ -30,10 +30,12 @@ G_BEGIN_DECLS -#define GST_GCONF_AUDIOSRC_KEY "default/audiosrc" -#define GST_GCONF_AUDIOSINK_KEY "default/audiosink" -#define GST_GCONF_VIDEOSRC_KEY "default/videosrc" -#define GST_GCONF_VIDEOSINK_KEY "default/videosink" +#define GST_GCONF_AUDIOSRC_KEY "default/audiosrc" +#define GST_GCONF_AUDIOSINK_KEY "default/audiosink" +#define GST_GCONF_MUSIC_AUDIOSINK_KEY "default/musicaudiosink" +#define GST_GCONF_CHAT_AUDIOSINK_KEY "default/chataudiosink" +#define GST_GCONF_VIDEOSRC_KEY "default/videosrc" +#define GST_GCONF_VIDEOSINK_KEY "default/videosink" enum @@ -46,6 +48,8 @@ void gst_gconf_set_string (const gchar *key, const gchar *value); +const gchar * gst_gconf_get_key_for_sink_profile (guint profile); GstElement * gst_gconf_render_bin_from_key (const gchar *key); GstElement * gst_gconf_get_default_video_sink (void); Index: gstgconfaudiosink.c RCS file: /cvs/gstreamer/gst-plugins-good/ext/gconf/gstgconfaudiosink.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- gstgconfaudiosink.c 10 May 2006 10:29:52 -0000 1.14 +++ gstgconfaudiosink.c 6 Feb 2007 15:56:14 -0000 1.15 @@ -136,11 +136,11 @@ switch (profile) { case GCONF_PROFILE_SOUNDS: - return GST_GCONF_DIR "/default/audiosink"; + return GST_GCONF_DIR GST_GCONF_AUDIOSINK_KEY; case GCONF_PROFILE_MUSIC: - return GST_GCONF_DIR "/default/musicaudiosink"; + return GST_GCONF_DIR GST_GCONF_MUSIC_AUDIOSINK_KEY; case GCONF_PROFILE_CHAT: - return GST_GCONF_DIR "/default/chataudiosink"; + return GST_GCONF_DIR GST_GCONF_CHAT_AUDIOSINK_KEY; default: g_return_val_if_reached (NULL); } @@ -189,11 +189,17 @@ static gboolean do_toggle_element (GstGConfAudioSink * sink) GstPad *targetpad; gchar *new_gconf_str; GstState cur, next; - new_gconf_str = gst_gconf_get_string (GST_GCONF_AUDIOSINK_KEY); + key = gst_gconf_get_key_for_sink_profile (sink->profile); + new_gconf_str = gst_gconf_get_string (key); + GST_LOG_OBJECT (sink, "old gconf string: %s", GST_STR_NULL (sink->gconf_str)); + GST_LOG_OBJECT (sink, "new gconf string: %s", GST_STR_NULL (new_gconf_str)); if (new_gconf_str != NULL && sink->gconf_str != NULL && (strlen (new_gconf_str) == 0 || strcmp (sink->gconf_str, new_gconf_str) == 0)) { @@ -257,8 +263,6 @@ GstGConfAudioSink *sink; - g_return_if_fail (GST_IS_GCONF_AUDIO_SINK (object)); sink = GST_GCONF_AUDIO_SINK (object); switch (prop_id) { @@ -282,8 +286,6 @@ |