[alsa-devel] ALSA UCM
Jaroslav Kysela
perex at perex.cz
Wed Nov 10 16:11:02 CET 2010
On Tue, 9 Nov 2010, abraham duenas wrote:
> Hello, I think this is missing:
>
> diff --git a/src/ucm/main.c b/src/ucm/main.c
> index e233f41..a73595d 100644
> --- a/src/ucm/main.c
> +++ b/src/ucm/main.c
> @@ -774,9 +774,9 @@ int snd_use_case_get_list(snd_use_case_mgr_t *uc_mgr,
> pthread_mutex_lock(&uc_mgr->mutex);
> if (strcmp(identifier, "_verbs") == 0)
> err = get_verb_list(uc_mgr, list);
> - else if (strcmp(identifier, "_enadevs"))
> + else if (strcmp(identifier, "_enadevs") == 0)
> err = get_enabled_device_list(uc_mgr, list);
> - else if (strcmp(identifier, "_enamods"))
> + else if (strcmp(identifier, "_enamods") == 0)
> err = get_enabled_modifier_list(uc_mgr, list);
> else {
> str1 = strchr(identifier, '/');
I added this fix to my ucm tree. Thaks.
> And changing the "[" for a "{" in the SectionVerb and SectionDevice like this:
> SectionVerb {
> EnableSequence {
> cset "name='DL1 Media Playback Volume' 90"
> cset "name='DL2 Media Playback Volume' 90"
> }
> ..........
> SectionDevice."Headset".0 {
> Comment "SDP4430 3.5mm Headset"
>
> EnableSequence {
> cset "name='DL1 Mixer Multimedia' 0"
> cset "name='Sidetone Mixer Playback' 1"
> cset "name='HS Right Playback' 0"
> cset "name='HS Left Playback' 0"
> cset "name='MUX_UL11' 9"
> cset "name='MUX_UL10' 10"
> }
> ...........
>
> I'm getting the expected error ONLY for the last element: listed in
> the EnableSequence field:
> e.g:
> ALSA lib main.c:137:(execute_sequence) cset not yet implemented:
> 'name='DL2 Media Playback Volume' 90'
> ALSA lib main.c:137:(execute_sequence) cset not yet implemented:
> 'name='MUX_UL10' 10'
>
> i'll keep on digging as time permits :)
I fixed the sequence parser. It should work now ok. So the only missing
part is to add the 'snd_ctl_*' backend for cset commands. The parsing
functions for ctl strings are available in my ucm branch now:
char *snd_ctl_ascii_elem_id_get(snd_ctl_elem_id_t *id);
int snd_ctl_ascii_elem_id_parse(snd_ctl_elem_id_t *dst, const char *str);
int snd_ctl_ascii_value_parse(snd_ctl_t *handle,
snd_ctl_elem_value_t *dst,
snd_ctl_elem_info_t *info,
const char *value);
Jaroslav
-----
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.
More information about the Alsa-devel
mailing list