[pulseaudio-discuss] [PATCH 2/7] switch-on-port-available: Improve readability
João Paulo Rechi Vita
jprvita at gmail.com
Wed Aug 8 03:39:19 UTC 2018
Split a big conditional into separate checks and use pa_safe_streq
instead of checking if a pointer is valid and calling pa_streq inside a
conditional.
---
src/modules/module-switch-on-port-available.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/modules/module-switch-on-port-available.c b/src/modules/module-switch-on-port-available.c
index 321db361f..385c2f693 100644
--- a/src/modules/module-switch-on-port-available.c
+++ b/src/modules/module-switch-on-port-available.c
@@ -156,7 +156,7 @@ static int try_to_switch_profile(pa_device_port *port) {
continue;
/* Give a high bonus in case this is the preferred profile */
- if (port->preferred_profile && pa_streq(name ? name : profile->name, port->preferred_profile))
+ if (pa_safe_streq(name ? name : profile->name, port->preferred_profile))
prio += 1000000;
if (best_profile && best_prio >= prio)
@@ -261,10 +261,19 @@ static void switch_from_port(pa_device_port *port) {
return; /* Already deselected */
/* Try to find a good enough port to switch to */
- PA_HASHMAP_FOREACH(p, port->card->ports, state)
- if (p->direction == port->direction && p != port && p->available != PA_AVAILABLE_NO &&
- (!best_port || best_port->priority < p->priority))
+ PA_HASHMAP_FOREACH(p, port->card->ports, state) {
+ if (p == port)
+ continue;
+
+ if (p->available == PA_AVAILABLE_NO)
+ continue;
+
+ if (p->direction != port->direction)
+ continue;
+
+ if (!best_port || best_port->priority < p->priority)
best_port = p;
+ }
pa_log_debug("Trying to switch away from port %s, found %s", port->name, best_port ? best_port->name : "no better option");
--
2.18.0
More information about the pulseaudio-discuss
mailing list