From: Tanu Kaskinen Date: Tue, 24 Aug 2010 14:33:58 +0000 (+0300) Subject: module-alsa-card: New argument: namereg_fail. X-Git-Tag: submit/2.0-panda/20130828.192557~986 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c277dc65a331887c3e779eb733d4b35c53b6a45f;p=profile%2Fivi%2Fpulseaudio-panda.git module-alsa-card: New argument: namereg_fail. This is added so that module-udev-detect can load multiple module-alsa-card instances with the same card name - forcing namereg_fail to false allows the name registry to mangle the card names to be unique. --- diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c index 6bea33d..37b5a17 100644 --- a/src/modules/alsa/module-alsa-card.c +++ b/src/modules/alsa/module-alsa-card.c @@ -53,6 +53,7 @@ PA_MODULE_USAGE( "sink_properties= " "source_name= " "source_properties= " + "namereg_fail= " "device_id= " "format= " "rate= " @@ -73,6 +74,7 @@ static const char* const valid_modargs[] = { "sink_properties", "source_name", "source_properties", + "namereg_fail", "device_id", "format", "rate", @@ -286,6 +288,7 @@ int pa__init(pa_module *m) { pa_reserve_wrapper *reserve = NULL; const char *description; char *fn = NULL; + pa_bool_t namereg_fail = FALSE; pa_alsa_refcnt_inc(); @@ -341,6 +344,18 @@ int pa__init(pa_module *m) { pa_alsa_init_description(data.proplist); set_card_name(&data, ma, u->device_id); + /* We need to give pa_modargs_get_value_boolean() a pointer to a local + * variable instead of using &data.namereg_fail directly, because + * data.namereg_fail is a bitfield and taking the address of a bitfield + * variable is impossible. */ + namereg_fail = data.namereg_fail; + if (pa_modargs_get_value_boolean(ma, "namereg_fail", &namereg_fail) < 0) { + pa_log("Failed to parse boolean argument namereg_fail."); + pa_card_new_data_done(&data); + goto fail; + } + data.namereg_fail = namereg_fail; + if (reserve) if ((description = pa_proplist_gets(data.proplist, PA_PROP_DEVICE_DESCRIPTION))) pa_reserve_wrapper_set_application_device_name(reserve, description);