diff options
author | liaohanqin <liaohanqin@uniontech.com> | 2022-01-25 16:09:32 +0800 |
---|---|---|
committer | liaohanqin <liaohanqin@uniontech.com> | 2022-01-25 16:09:32 +0800 |
commit | b8c15e87871905bb7aaead5dfaa62a6c745813a3 (patch) | |
tree | bd9d4e7ed8ef190aebb8aa875236c8ccdd735e95 | |
parent | cfd8fb9398cca004103a82df2dba596e3a85b829 (diff) | |
download | pulseaudio-b8c15e87871905bb7aaead5dfaa62a6c745813a3.tar.gz |
pactl: optimized code
some if statements are redundant, use switch instead of it.
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/686>
-rw-r--r-- | src/utils/pactl.c | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/src/utils/pactl.c b/src/utils/pactl.c index cb6db58b7..3c1eeb0d0 100644 --- a/src/utils/pactl.c +++ b/src/utils/pactl.c @@ -2552,19 +2552,30 @@ static int parse_volume(const char *vol_spec, pa_volume_t *vol, enum volume_flag pa_xfree(vs); if (*vol_flags & VOL_RELATIVE) { - if ((*vol_flags & 0x0F) == VOL_UINT) - v += (double) PA_VOLUME_NORM; - if ((*vol_flags & 0x0F) == VOL_PERCENT) - v += 100.0; - if ((*vol_flags & 0x0F) == VOL_LINEAR) - v += 1.0; - } - if ((*vol_flags & 0x0F) == VOL_PERCENT) - v = v * (double) PA_VOLUME_NORM / 100; - if ((*vol_flags & 0x0F) == VOL_LINEAR) - v = pa_sw_volume_from_linear(v); - if ((*vol_flags & 0x0F) == VOL_DECIBEL) - v = pa_sw_volume_from_dB(v); + switch (*vol_flags & 0x0F) { + case VOL_UINT: + v += (double) PA_VOLUME_NORM; + break; + case VOL_PERCENT: + v += 100.0; + break; + case VOL_LINEAR: + v += 1.0; + break; + } + } + + switch (*vol_flags & 0x0F) { + case VOL_PERCENT: + v = v * (double) PA_VOLUME_NORM / 100; + break; + case VOL_LINEAR: + v = pa_sw_volume_from_linear(v); + break; + case VOL_DECIBEL: + v = pa_sw_volume_from_dB(v); + break; + } if (!PA_VOLUME_IS_VALID((pa_volume_t) v)) { pa_log(_("Volume outside permissible range.\n")); |