alsa: Use card description in default sink/source prefix when available

When given an explicit device.description in card_properties, prefer
this information over other default prefixes (e.g. 'Built-in Audio')
when constructing sink/source descriptions.

For example, if I manually configure the card description to be
"FooBar", I then expect that the sinks and created by the card also
have "FooBar" in their description instead of generic "Built-in
Audio".
This commit is contained in:
Pete Beardmore 2014-03-13 10:14:40 +00:00 committed by Tanu Kaskinen
parent efec98280f
commit fe6e41d7d2
9 changed files with 19 additions and 14 deletions

View file

@ -2278,7 +2278,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
pa_proplist_sets(data.proplist, key, pa_proplist_gets(mapping->proplist, key));
}
pa_alsa_init_description(data.proplist);
pa_alsa_init_description(data.proplist, card);
if (u->control_device)
pa_alsa_init_proplist_ctl(data.proplist, u->control_device);

View file

@ -1984,7 +1984,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
pa_proplist_sets(data.proplist, key, pa_proplist_gets(mapping->proplist, key));
}
pa_alsa_init_description(data.proplist);
pa_alsa_init_description(data.proplist, card);
if (u->control_device)
pa_alsa_init_proplist_ctl(data.proplist, u->control_device);

View file

@ -868,11 +868,11 @@ void pa_alsa_refcnt_dec(void) {
}
}
bool pa_alsa_init_description(pa_proplist *p) {
bool pa_alsa_init_description(pa_proplist *p, pa_card *card) {
const char *d, *k;
pa_assert(p);
if (pa_device_init_description(p))
if (pa_device_init_description(p, card))
return true;
if (!(d = pa_proplist_gets(p, "alsa.card_name")))

View file

@ -118,7 +118,7 @@ void pa_alsa_init_proplist_pcm_info(pa_core *c, pa_proplist *p, snd_pcm_info_t *
void pa_alsa_init_proplist_card(pa_core *c, pa_proplist *p, int card);
void pa_alsa_init_proplist_pcm(pa_core *c, pa_proplist *p, snd_pcm_t *pcm);
void pa_alsa_init_proplist_ctl(pa_proplist *p, const char *name);
bool pa_alsa_init_description(pa_proplist *p);
bool pa_alsa_init_description(pa_proplist *p, pa_card *card);
int pa_alsa_recover_from_poll(snd_pcm_t *pcm, int revents);

View file

@ -704,7 +704,7 @@ int pa__init(pa_module *m) {
pa_alsa_init_proplist_card(m->core, data.proplist, u->alsa_card_index);
pa_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, u->device_id);
pa_alsa_init_description(data.proplist);
pa_alsa_init_description(data.proplist, NULL);
set_card_name(&data, u->modargs, u->device_id);
/* We need to give pa_modargs_get_value_boolean() a pointer to a local