Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:alefnode:GSI-Phone
pulseaudio-13.0
0019-alsa-ucm-parse-correctly-the-device-values...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0019-alsa-ucm-parse-correctly-the-device-values.patch of Package pulseaudio-13.0
From 4c64f73c97c7f77426ee838f47fc7bad6a4563b6 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela <perex@perex.cz> Date: Fri, 6 Dec 2019 21:51:47 +0100 Subject: [PATCH] alsa-ucm: parse correctly the device values The UCM library is used to get the fallback values from the verbs and the defaults section. There is no reason to duplicate this code inside application. Signed-off-by: Jaroslav Kysela <perex@perex.cz> --- src/modules/alsa/alsa-ucm.c | 55 ++++++--------------------------------------- 1 file changed, 7 insertions(+), 48 deletions(-) diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c index 3ee271845c19..ac1b71e94022 100644 --- a/src/modules/alsa/alsa-ucm.c +++ b/src/modules/alsa/alsa-ucm.c @@ -141,30 +141,6 @@ static struct ucm_info dev_info[] = { {NULL, 0} }; -/* UCM profile properties - The verb data is store so it can be used to fill - * the new profiles properties */ -static int ucm_get_property(pa_alsa_ucm_verb *verb, snd_use_case_mgr_t *uc_mgr, const char *verb_name) { - const char *value; - char *id; - int i; - - for (i = 0; item[i].id; i++) { - int err; - - id = pa_sprintf_malloc("=%s//%s", item[i].id, verb_name); - err = snd_use_case_get(uc_mgr, id, &value); - pa_xfree(id); - if (err < 0) - continue; - - pa_log_debug("Got %s for verb %s: %s", item[i].id, verb_name, value); - pa_proplist_sets(verb->proplist, item[i].property, value); - free((void*)value); - } - - return 0; -}; - static int ucm_device_exists(pa_idxset *idxset, pa_alsa_ucm_device *dev) { pa_alsa_ucm_device *d; uint32_t idx; @@ -325,7 +301,7 @@ static int ucm_get_device_property( pa_alsa_ucm_volume *vol; for (i = 0; item[i].id; i++) { - id = pa_sprintf_malloc("=%s/%s", item[i].id, device_name); + id = pa_sprintf_malloc("%s/%s", item[i].id, device_name); err = snd_use_case_get(uc_mgr, id, &value); pa_xfree(id); if (err < 0) @@ -347,14 +323,8 @@ static int ucm_get_device_property( /* get pcm */ value = pa_proplist_gets(device->proplist, PA_ALSA_PROP_UCM_SINK); - if (!value) { /* take pcm from verb playback default */ - value = pa_proplist_gets(verb->proplist, PA_ALSA_PROP_UCM_SINK); - if (value) { - pa_log_debug("UCM playback device %s fetch pcm from verb default %s", device_name, value); - pa_proplist_sets(device->proplist, PA_ALSA_PROP_UCM_SINK, value); - } else - pa_log("UCM playback device %s fetch pcm failed", device_name); - } + if (!value) /* take pcm from verb playback default */ + pa_log("UCM playback device %s fetch pcm failed", device_name); } value = pa_proplist_gets(device->proplist, PA_ALSA_PROP_UCM_CAPTURE_CHANNELS); @@ -367,14 +337,8 @@ static int ucm_get_device_property( /* get pcm */ value = pa_proplist_gets(device->proplist, PA_ALSA_PROP_UCM_SOURCE); - if (!value) { /* take pcm from verb capture default */ - value = pa_proplist_gets(verb->proplist, PA_ALSA_PROP_UCM_SOURCE); - if (value) { - pa_log_debug("UCM capture device %s fetch pcm from verb default %s", device_name, value); - pa_proplist_sets(device->proplist, PA_ALSA_PROP_UCM_SOURCE, value); - } else - pa_log("UCM capture device %s fetch pcm failed", device_name); - } + if (!value) /* take pcm from verb capture default */ + pa_log("UCM capture device %s fetch pcm failed", device_name); } if (device->playback_channels == 0 && device->capture_channels == 0) { @@ -387,8 +351,7 @@ static int ucm_get_device_property( /* get rate and priority of device */ if (device->playback_channels) { /* sink device */ /* get rate */ - if ((value = pa_proplist_gets(device->proplist, PA_ALSA_PROP_UCM_PLAYBACK_RATE)) || - (value = pa_proplist_gets(verb->proplist, PA_ALSA_PROP_UCM_PLAYBACK_RATE))) { + if ((value = pa_proplist_gets(device->proplist, PA_ALSA_PROP_UCM_PLAYBACK_RATE))) { if (pa_atou(value, &ui) == 0 && pa_sample_rate_valid(ui)) { pa_log_debug("UCM playback device %s rate %d", device_name, ui); device->playback_rate = ui; @@ -417,8 +380,7 @@ static int ucm_get_device_property( if (device->capture_channels) { /* source device */ /* get rate */ - if ((value = pa_proplist_gets(device->proplist, PA_ALSA_PROP_UCM_CAPTURE_RATE)) || - (value = pa_proplist_gets(verb->proplist, PA_ALSA_PROP_UCM_CAPTURE_RATE))) { + if ((value = pa_proplist_gets(device->proplist, PA_ALSA_PROP_UCM_CAPTURE_RATE))) { if (pa_atou(value, &ui) == 0 && pa_sample_rate_valid(ui)) { pa_log_debug("UCM capture device %s rate %d", device_name, ui); device->capture_rate = ui; @@ -796,9 +758,6 @@ int pa_alsa_ucm_get_verb(snd_use_case_mgr_t *uc_mgr, const char *verb_name, cons if (err < 0) pa_log("No UCM modifiers for verb %s", verb_name); - /* Verb properties */ - ucm_get_property(verb, uc_mgr, verb_name); - PA_LLIST_FOREACH(d, verb->devices) { const char *dev_name = pa_proplist_gets(d->proplist, PA_ALSA_PROP_UCM_NAME); -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor