From 7b310c6a03f057c306f43f249a22c57c18baba95 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 18 Aug 2010 16:45:37 +0200 Subject: [PATCH] alsasrc/sink: add property to get the card name fixes #627203 --- ext/alsa/gstalsasink.c | 15 ++++++++++++++- ext/alsa/gstalsasrc.c | 13 +++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/ext/alsa/gstalsasink.c b/ext/alsa/gstalsasink.c index e57884ad26..2fb37df2a3 100644 --- a/ext/alsa/gstalsasink.c +++ b/ext/alsa/gstalsasink.c @@ -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; diff --git a/ext/alsa/gstalsasrc.c b/ext/alsa/gstalsasrc.c index 0aae04d9ba..d9e6bc80ec 100644 --- a/ext/alsa/gstalsasrc.c +++ b/ext/alsa/gstalsasrc.c @@ -53,12 +53,15 @@ #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;