alsasrc/sink: add property to get the card name
authorWim Taymans <wim.taymans@collabora.co.uk>
Wed, 18 Aug 2010 14:45:37 +0000 (16:45 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Wed, 18 Aug 2010 14:45:37 +0000 (16:45 +0200)
fixes #627203

ext/alsa/gstalsasink.c
ext/alsa/gstalsasrc.c

index e57884a..2fb37df 100644 (file)
@@ -55,6 +55,7 @@
 
 #define DEFAULT_DEVICE         "default"
 #define DEFAULT_DEVICE_NAME    ""
+#define DEFAULT_CARD_NAME      ""
 #define SPDIF_PERIOD_SIZE 1536
 #define SPDIF_BUFFER_SIZE 15360
 
@@ -62,7 +63,9 @@ enum
 {
   PROP_0,
   PROP_DEVICE,
-  PROP_DEVICE_NAME
+  PROP_DEVICE_NAME,
+  PROP_CARD_NAME,
+  PROP_LAST
 };
 
 static void gst_alsasink_init_interfaces (GType type);
@@ -209,6 +212,11 @@ gst_alsasink_class_init (GstAlsaSinkClass * klass)
       g_param_spec_string ("device-name", "Device name",
           "Human-readable name of the sound device", DEFAULT_DEVICE_NAME,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_CARD_NAME,
+      g_param_spec_string ("card-name", "Card name",
+          "Human-readable name of the sound card", DEFAULT_CARD_NAME,
+          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 }
 
 static void
@@ -251,6 +259,11 @@ gst_alsasink_get_property (GObject * object, guint prop_id,
           gst_alsa_find_device_name (GST_OBJECT_CAST (sink),
               sink->device, sink->handle, SND_PCM_STREAM_PLAYBACK));
       break;
+    case PROP_CARD_NAME:
+      g_value_take_string (value,
+          gst_alsa_find_card_name (GST_OBJECT_CAST (sink),
+              sink->device, SND_PCM_STREAM_PLAYBACK));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
index 0aae04d..d9e6bc8 100644 (file)
 
 #define DEFAULT_PROP_DEVICE            "default"
 #define DEFAULT_PROP_DEVICE_NAME       ""
+#define DEFAULT_PROP_CARD_NAME         ""
 
 enum
 {
   PROP_0,
   PROP_DEVICE,
   PROP_DEVICE_NAME,
+  PROP_CARD_NAME,
+  PROP_LAST
 };
 
 static void gst_alsasrc_init_interfaces (GType type);
@@ -226,6 +229,11 @@ gst_alsasrc_class_init (GstAlsaSrcClass * klass)
       g_param_spec_string ("device-name", "Device name",
           "Human-readable name of the sound device",
           DEFAULT_PROP_DEVICE_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_CARD_NAME,
+      g_param_spec_string ("card-name", "Card name",
+          "Human-readable name of the sound card",
+          DEFAULT_PROP_CARD_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 }
 
 static void
@@ -267,6 +275,11 @@ gst_alsasrc_get_property (GObject * object, guint prop_id,
           gst_alsa_find_device_name (GST_OBJECT_CAST (src),
               src->device, src->handle, SND_PCM_STREAM_CAPTURE));
       break;
+    case PROP_CARD_NAME:
+      g_value_take_string (value,
+          gst_alsa_find_card_name (GST_OBJECT_CAST (src),
+              src->device, SND_PCM_STREAM_CAPTURE));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;