summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorliaohanqin <liaohanqin@uniontech.com>2022-01-25 16:09:32 +0800
committerliaohanqin <liaohanqin@uniontech.com>2022-01-25 16:09:32 +0800
commitb8c15e87871905bb7aaead5dfaa62a6c745813a3 (patch)
treebd9d4e7ed8ef190aebb8aa875236c8ccdd735e95 /src/utils
parentcfd8fb9398cca004103a82df2dba596e3a85b829 (diff)
pactl: optimized code
some if statements are redundant, use switch instead of it. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/686>
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/pactl.c37
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"));