mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
volume: Use a macro to check if a volume is valid
This adds a PA_VOLUME_IS_VALID() macro for checking if a given pa_volume_t is valid. This makes changes to the volume ranges simpler (just change PA_VOLUME_MAX, for example, without needing to modify any other code).
This commit is contained in:
parent
4d84a00b49
commit
1d2ef7923d
9 changed files with 30 additions and 27 deletions
|
|
@ -201,8 +201,8 @@ pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, p
|
|||
|
||||
pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) {
|
||||
|
||||
pa_return_val_if_fail(a != PA_VOLUME_INVALID, PA_VOLUME_INVALID);
|
||||
pa_return_val_if_fail(b != PA_VOLUME_INVALID, PA_VOLUME_INVALID);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(a), PA_VOLUME_INVALID);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(b), PA_VOLUME_INVALID);
|
||||
|
||||
/* cbrt((a/PA_VOLUME_NORM)^3*(b/PA_VOLUME_NORM)^3)*PA_VOLUME_NORM = a*b/PA_VOLUME_NORM */
|
||||
|
||||
|
|
@ -211,8 +211,8 @@ pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) {
|
|||
|
||||
pa_volume_t pa_sw_volume_divide(pa_volume_t a, pa_volume_t b) {
|
||||
|
||||
pa_return_val_if_fail(a != PA_VOLUME_INVALID, PA_VOLUME_INVALID);
|
||||
pa_return_val_if_fail(b != PA_VOLUME_INVALID, PA_VOLUME_INVALID);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(a), PA_VOLUME_INVALID);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(b), PA_VOLUME_INVALID);
|
||||
|
||||
if (b <= PA_VOLUME_MUTED)
|
||||
return 0;
|
||||
|
|
@ -238,7 +238,7 @@ pa_volume_t pa_sw_volume_from_dB(double dB) {
|
|||
|
||||
double pa_sw_volume_to_dB(pa_volume_t v) {
|
||||
|
||||
pa_return_val_if_fail(v != PA_VOLUME_INVALID, PA_DECIBEL_MININFTY);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(v), PA_DECIBEL_MININFTY);
|
||||
|
||||
if (v <= PA_VOLUME_MUTED)
|
||||
return PA_DECIBEL_MININFTY;
|
||||
|
|
@ -267,7 +267,7 @@ pa_volume_t pa_sw_volume_from_linear(double v) {
|
|||
double pa_sw_volume_to_linear(pa_volume_t v) {
|
||||
double f;
|
||||
|
||||
pa_return_val_if_fail(v != PA_VOLUME_INVALID, 0.0);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(v), 0.0);
|
||||
|
||||
if (v <= PA_VOLUME_MUTED)
|
||||
return 0.0;
|
||||
|
|
@ -317,7 +317,7 @@ char *pa_volume_snprint(char *s, size_t l, pa_volume_t v) {
|
|||
|
||||
pa_init_i18n();
|
||||
|
||||
if (v == PA_VOLUME_INVALID) {
|
||||
if (!PA_VOLUME_IS_VALID(v)) {
|
||||
pa_snprintf(s, l, _("(invalid)"));
|
||||
return s;
|
||||
}
|
||||
|
|
@ -367,7 +367,7 @@ char *pa_sw_volume_snprint_dB(char *s, size_t l, pa_volume_t v) {
|
|||
|
||||
pa_init_i18n();
|
||||
|
||||
if (v == PA_VOLUME_INVALID) {
|
||||
if (!PA_VOLUME_IS_VALID(v)) {
|
||||
pa_snprintf(s, l, _("(invalid)"));
|
||||
return s;
|
||||
}
|
||||
|
|
@ -384,7 +384,7 @@ int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) {
|
|||
pa_assert(a);
|
||||
|
||||
pa_return_val_if_fail(pa_cvolume_valid(a), 0);
|
||||
pa_return_val_if_fail(v != PA_VOLUME_INVALID, 0);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(v), 0);
|
||||
|
||||
for (c = 0; c < a->channels; c++)
|
||||
if (a->values[c] != v)
|
||||
|
|
@ -418,7 +418,7 @@ pa_cvolume *pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a,
|
|||
pa_assert(a);
|
||||
|
||||
pa_return_val_if_fail(pa_cvolume_valid(a), NULL);
|
||||
pa_return_val_if_fail(b != PA_VOLUME_INVALID, NULL);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(b), NULL);
|
||||
|
||||
for (i = 0; i < a->channels; i++)
|
||||
dest->values[i] = pa_sw_volume_multiply(a->values[i], b);
|
||||
|
|
@ -453,7 +453,7 @@ pa_cvolume *pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, p
|
|||
pa_assert(a);
|
||||
|
||||
pa_return_val_if_fail(pa_cvolume_valid(a), NULL);
|
||||
pa_return_val_if_fail(b != PA_VOLUME_INVALID, NULL);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(b), NULL);
|
||||
|
||||
for (i = 0; i < a->channels; i++)
|
||||
dest->values[i] = pa_sw_volume_divide(a->values[i], b);
|
||||
|
|
@ -472,7 +472,7 @@ int pa_cvolume_valid(const pa_cvolume *v) {
|
|||
return 0;
|
||||
|
||||
for (c = 0; c < v->channels; c++)
|
||||
if (v->values[c] == PA_VOLUME_INVALID)
|
||||
if (!PA_VOLUME_IS_VALID(v->values[c]))
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
|
|
@ -686,7 +686,7 @@ pa_cvolume* pa_cvolume_scale(pa_cvolume *v, pa_volume_t max) {
|
|||
pa_assert(v);
|
||||
|
||||
pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
|
||||
pa_return_val_if_fail(max != PA_VOLUME_INVALID, NULL);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(max), NULL);
|
||||
|
||||
t = pa_cvolume_max(v);
|
||||
|
||||
|
|
@ -705,7 +705,7 @@ pa_cvolume* pa_cvolume_scale_mask(pa_cvolume *v, pa_volume_t max, pa_channel_map
|
|||
|
||||
pa_assert(v);
|
||||
|
||||
pa_return_val_if_fail(max != PA_VOLUME_INVALID, NULL);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(max), NULL);
|
||||
|
||||
if (!cm)
|
||||
return pa_cvolume_scale(v, max);
|
||||
|
|
@ -834,7 +834,7 @@ pa_cvolume* pa_cvolume_set_position(
|
|||
|
||||
pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(cv, map), NULL);
|
||||
pa_return_val_if_fail(t < PA_CHANNEL_POSITION_MAX, NULL);
|
||||
pa_return_val_if_fail(v != PA_VOLUME_INVALID, NULL);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(v), NULL);
|
||||
|
||||
for (c = 0; c < map->channels; c++)
|
||||
if (map->map[c] == t) {
|
||||
|
|
@ -891,7 +891,7 @@ pa_cvolume* pa_cvolume_inc_clamp(pa_cvolume *v, pa_volume_t inc, pa_volume_t lim
|
|||
pa_assert(v);
|
||||
|
||||
pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
|
||||
pa_return_val_if_fail(inc != PA_VOLUME_INVALID, NULL);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(inc), NULL);
|
||||
|
||||
m = pa_cvolume_max(v);
|
||||
|
||||
|
|
@ -913,7 +913,7 @@ pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec) {
|
|||
pa_assert(v);
|
||||
|
||||
pa_return_val_if_fail(pa_cvolume_valid(v), NULL);
|
||||
pa_return_val_if_fail(dec != PA_VOLUME_INVALID, NULL);
|
||||
pa_return_val_if_fail(PA_VOLUME_IS_VALID(dec), NULL);
|
||||
|
||||
m = pa_cvolume_max(v);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue