pactl: optimized code

some if statements are redundant, use switch instead of it.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/686>
This commit is contained in:
liaohanqin 2022-01-25 16:09:32 +08:00
parent cfd8fb9398
commit b8c15e8787

View file

@ -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;
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 ((*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);
if (!PA_VOLUME_IS_VALID((pa_volume_t) v)) {
pa_log(_("Volume outside permissible range.\n"));