--- src/modules/alsa/alsa-mixer.c | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c index 5dc0d4f..4645817 100644 --- a/src/modules/alsa/alsa-mixer.c +++ b/src/modules/alsa/alsa-mixer.c @@ -4524,6 +4524,11 @@ static pa_device_port* device_port_alsa_init(pa_hashmap *ports, /* card ports */ goto finish; } + p->priority = path->priority * 100; + + if (setting) + p->priority += setting->priority; + pa_hashmap_put(ports, p->name, p); pa_proplist_update(p->proplist, PA_UPDATE_REPLACE, path->proplist); @@ -4565,28 +4570,14 @@ void pa_alsa_path_set_add_ports( return; PA_HASHMAP_FOREACH(path, ps->paths, state) { - if (!path->settings || !path->settings->next) { + if (!path->settings || !path->settings->next) /* If there is no or just one setting we only need a * single entry */ - pa_device_port *port = device_port_alsa_init(ports, path, path->settings, cp, extra, core); - - if (!port) - continue; - - port->priority = path->priority * 100; - - } else { + device_port_alsa_init(ports, path, path->settings, cp, extra, core); + else { pa_alsa_setting *s; - PA_LLIST_FOREACH(s, path->settings) { - pa_device_port *port; - - port = device_port_alsa_init(ports, path, s, cp, extra, core); - - if (!port) - continue; - - port->priority = path->priority * 100 + s->priority; - } + PA_LLIST_FOREACH(s, path->settings) + device_port_alsa_init(ports, path, s, cp, extra, core); } } } -- 1.8.3.1