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,10 +304,19 @@ pa_sink* pa_sink_new(
void *state;
pa_device_port *p;
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)
s->latency_offset = s->active_port->latency_offset;

View file

@ -292,10 +292,20 @@ pa_source* pa_source_new(
void *state;
pa_device_port *p;
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)
s->latency_offset = s->active_port->latency_offset;