ext/pulse/pulsesrc.c: Add "device-name" property, which provides a human readable...
authorLaszlo Pandy <laszlok2@gmail.com>
Wed, 13 Aug 2008 12:37:26 +0000 (12:37 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Wed, 13 Aug 2008 12:37:26 +0000 (12:37 +0000)
Original commit message from CVS:
Patch by: Laszlo Pandy <laszlok2 at gmail dot com>
* ext/pulse/pulsesrc.c: (gst_pulsesrc_class_init),
(gst_pulsesrc_get_property):
Add "device-name" property, which provides a human readable string
for the audio device, to make it more consisten with other audio
sources. Fixes bug #547519.

ChangeLog
ext/pulse/pulsesrc.c

index 7cfb332..49df6b3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2008-08-13  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
 
+       Patch by: Laszlo Pandy <laszlok2 at gmail dot com>
+
+       * ext/pulse/pulsesrc.c: (gst_pulsesrc_class_init),
+       (gst_pulsesrc_get_property):
+       Add "device-name" property, which provides a human readable string
+       for the audio device, to make it more consisten with other audio
+       sources. Fixes bug #547519.
+
+2008-08-13  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
+
        * ext/pulse/pulsemixer.c: (gst_pulsemixer_change_state):
        * ext/pulse/pulsemixerctrl.c: (gst_pulsemixer_ctrl_subscribe_cb),
        (gst_pulsemixer_ctrl_open), (gst_pulsemixer_ctrl_new),
index 2359748..59d2c24 100644 (file)
@@ -58,7 +58,8 @@ GST_DEBUG_CATEGORY_EXTERN (pulse_debug);
 enum
 {
   PROP_SERVER = 1,
-  PROP_DEVICE
+  PROP_DEVICE,
+  PROP_DEVICE_NAME
 };
 
 static GstAudioSrcClass *parent_class = NULL;
@@ -233,6 +234,12 @@ gst_pulsesrc_class_init (gpointer g_class, gpointer class_data)
       g_param_spec_string ("device", "Source",
           "The PulseAudio source device to connect to", NULL,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class,
+      PROP_DEVICE_NAME,
+      g_param_spec_string ("device-name", "Device name",
+          "Human-readable name of the sound device", NULL,
+          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 }
 
 static void
@@ -360,6 +367,15 @@ gst_pulsesrc_get_property (GObject * object,
       g_value_set_string (value, pulsesrc->device);
       break;
 
+    case PROP_DEVICE_NAME:
+
+      if (pulsesrc->mixer)
+        g_value_set_string (value, pulsesrc->mixer->description);
+      else
+        g_value_set_string (value, NULL);
+
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -493,9 +509,8 @@ gst_pulsesrc_prepare (GstAudioSrc * asrc, GstRingBufferSpec * spec)
   if (!pulsesrc->context
       || pa_context_get_state (pulsesrc->context) != PA_CONTEXT_READY) {
     GST_ELEMENT_ERROR (pulsesrc, RESOURCE, FAILED, ("Bad context state: %s",
-            pulsesrc->
-            context ? pa_strerror (pa_context_errno (pulsesrc->context)) :
-            NULL), (NULL));
+            pulsesrc->context ? pa_strerror (pa_context_errno (pulsesrc->
+                    context)) : NULL), (NULL));
     goto unlock_and_fail;
   }