sink/source: When picking the initial ports, prefer ones that are not unavailable.

This does for sinks/source ports what f434087e42 did for card profiles.
This commit is contained in:
Colin Guthrie 2013-11-15 09:33:39 +01:00 committed by Tanu Kaskinen
parent 84af39f289
commit 303cff04eb
2 changed files with 21 additions and 2 deletions

View file

@ -304,9 +304,18 @@ pa_sink* pa_sink_new(
void *state;
pa_device_port *p;
PA_HASHMAP_FOREACH(p, s->ports, state)
PA_HASHMAP_FOREACH(p, s->ports, state) {
if (p->available == PA_AVAILABLE_NO)
continue;
if (!s->active_port || p->priority > s->active_port->priority)
s->active_port = p;
}
if (!s->active_port) {
PA_HASHMAP_FOREACH(p, s->ports, state)
if (!s->active_port || p->priority > s->active_port->priority)
s->active_port = p;
}
}
if (s->active_port)

View file

@ -292,9 +292,19 @@ pa_source* pa_source_new(
void *state;
pa_device_port *p;
PA_HASHMAP_FOREACH(p, s->ports, state)
PA_HASHMAP_FOREACH(p, s->ports, state) {
if (p->available == PA_AVAILABLE_NO)
continue;
if (!s->active_port || p->priority > s->active_port->priority)
s->active_port = p;
}
if (!s->active_port) {
PA_HASHMAP_FOREACH(p, s->ports, state)
if (!s->active_port || p->priority > s->active_port->priority)
s->active_port = p;
}
}
if (s->active_port)