diff options
author | Sjoerd Simons <sjoerd.simons@collabora.co.uk> | 2011-10-13 01:12:05 +0800 |
---|---|---|
committer | Sjoerd Simons <sjoerd.simons@collabora.co.uk> | 2011-10-13 01:12:05 +0800 |
commit | 8176b8a7121bf2bcfbc07cd939b266db59c924c6 (patch) | |
tree | 1af28e9d366974fe7e997bf9b22cdb1efb63a37b | |
parent | 990f61afe75fa02ff525c20094d55d980e5df36f (diff) | |
download | gsoc2013-empathy-8176b8a7121bf2bcfbc07cd939b266db59c924c6.tar gsoc2013-empathy-8176b8a7121bf2bcfbc07cd939b266db59c924c6.tar.gz gsoc2013-empathy-8176b8a7121bf2bcfbc07cd939b266db59c924c6.tar.bz2 gsoc2013-empathy-8176b8a7121bf2bcfbc07cd939b266db59c924c6.tar.lz gsoc2013-empathy-8176b8a7121bf2bcfbc07cd939b266db59c924c6.tar.xz gsoc2013-empathy-8176b8a7121bf2bcfbc07cd939b266db59c924c6.tar.zst gsoc2013-empathy-8176b8a7121bf2bcfbc07cd939b266db59c924c6.zip |
Don't try to access non-existing properties
-rw-r--r-- | src/empathy-audio-src.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/empathy-audio-src.c b/src/empathy-audio-src.c index b287555a0..916f3cd98 100644 --- a/src/empathy-audio-src.c +++ b/src/empathy-audio-src.c @@ -91,6 +91,21 @@ empathy_audio_src_supports_changing_mic (EmpathyGstAudioSrc *self) "source-output-index") != NULL); } +static guint +empathy_audio_src_get_mic_index (EmpathyGstAudioSrc *self) +{ + EmpathyGstAudioSrcPrivate *priv = EMPATHY_GST_AUDIO_SRC_GET_PRIVATE (self); + guint audio_src_idx = PA_INVALID_INDEX; + + if (empathy_audio_src_supports_changing_mic (self)) + g_object_get (priv->src, + "source-output-index", &audio_src_idx, + NULL); + + return audio_src_idx; +} + + static void empathy_audio_src_microphone_changed_cb (EmpathyMicMonitor *monitor, guint source_output_idx, @@ -99,9 +114,9 @@ empathy_audio_src_microphone_changed_cb (EmpathyMicMonitor *monitor, { EmpathyGstAudioSrc *self = user_data; EmpathyGstAudioSrcPrivate *priv = EMPATHY_GST_AUDIO_SRC_GET_PRIVATE (self); - guint audio_src_idx = PA_INVALID_INDEX; + guint audio_src_idx; - g_object_get (priv->src, "source-output-index", &audio_src_idx, NULL); + audio_src_idx = empathy_audio_src_get_mic_index (self); if (source_output_idx == PA_INVALID_INDEX || source_output_idx != audio_src_idx) @@ -147,9 +162,9 @@ empathy_audio_src_source_output_index_notify (GObject *object, EmpathyGstAudioSrc *self) { EmpathyGstAudioSrcPrivate *priv = EMPATHY_GST_AUDIO_SRC_GET_PRIVATE (self); - guint source_output_idx = PA_INVALID_INDEX; + guint source_output_idx; - g_object_get (priv->src, "source-output-index", &source_output_idx, NULL); + source_output_idx = empathy_audio_src_get_mic_index (self); if (source_output_idx == PA_INVALID_INDEX) return; @@ -561,7 +576,7 @@ empathy_audio_src_change_microphone_async (EmpathyGstAudioSrc *src, return; } - g_object_get (priv->src, "source-output-index", &source_output_idx, NULL); + source_output_idx = empathy_audio_src_get_mic_index (src); if (source_output_idx == PA_INVALID_INDEX) { |