alsa-mixer: Make sure unsupported paths are removed after probing

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
This commit is contained in:
David Henningsson 2012-01-19 10:30:31 +01:00 committed by Colin Guthrie
parent 2c652b43f9
commit 43a705ae18

View file

@ -4224,6 +4224,23 @@ static snd_pcm_t* mapping_open_pcm(pa_alsa_mapping *m,
&try_buffer_size, 0, NULL, NULL, TRUE); &try_buffer_size, 0, NULL, NULL, TRUE);
} }
static void paths_drop_unsupported(pa_hashmap* h) {
void* state = NULL;
const void* key;
pa_alsa_path* p;
pa_assert(h);
p = pa_hashmap_iterate(h, &state, &key);
while (p) {
if (p->supported <= 0) {
pa_hashmap_remove(h, key);
pa_alsa_path_free(p);
}
p = pa_hashmap_iterate(h, &state, &key);
}
}
void pa_alsa_profile_set_probe( void pa_alsa_profile_set_probe(
pa_alsa_profile_set *ps, pa_alsa_profile_set *ps,
const char *dev_id, const char *dev_id,
@ -4319,6 +4336,9 @@ void pa_alsa_profile_set_probe(
mapping_free(m); mapping_free(m);
} }
paths_drop_unsupported(ps->input_paths);
paths_drop_unsupported(ps->output_paths);
ps->probed = TRUE; ps->probed = TRUE;
} }