alsa-ucm: use ucm2 name for the direct card index open

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2019-11-23 15:17:30 +01:00 committed by Arun Raghavan
parent 1ee1f749e1
commit c8f065250d

View file

@ -576,17 +576,25 @@ int pa_alsa_ucm_query_profiles(pa_alsa_ucm_config *ucm, int card_index) {
const char **verb_list; const char **verb_list;
int num_verbs, i, err = 0; int num_verbs, i, err = 0;
/* is UCM available for this card ? */ /* support multiple card instances, address card directly by index */
err = snd_card_get_name(card_index, &card_name); card_name = pa_sprintf_malloc("hw:%i", card_index);
if (err < 0) { if (card_name == NULL)
pa_log("Card can't get card_name from card_index %d", card_index); return -ENOMEM;
goto name_fail;
}
err = snd_use_case_mgr_open(&ucm->ucm_mgr, card_name); err = snd_use_case_mgr_open(&ucm->ucm_mgr, card_name);
if (err < 0) { if (err < 0) {
pa_log_info("UCM not available for card %s", card_name); /* fallback longname: is UCM available for this card ? */
goto ucm_mgr_fail; pa_xfree(card_name);
err = snd_card_get_name(card_index, &card_name);
if (err < 0) {
pa_log("Card can't get card_name from card_index %d", card_index);
goto name_fail;
}
err = snd_use_case_mgr_open(&ucm->ucm_mgr, card_name);
if (err < 0) {
pa_log_info("UCM not available for card %s", card_name);
goto ucm_mgr_fail;
}
} }
pa_log_info("UCM available for card %s", card_name); pa_log_info("UCM available for card %s", card_name);
@ -626,7 +634,7 @@ ucm_verb_fail:
} }
ucm_mgr_fail: ucm_mgr_fail:
free(card_name); pa_xfree(card_name);
name_fail: name_fail:
return err; return err;