volume: add pa_cvolume_inc_clamp function

added function to increase volume not exceeding specified limit
simply changed PA_VOLUME_MAX to 'limit' in pa_cvolume_inc
pa_cvolume_inc now calls pa_cvolume_inc_clamp with PA_VOLUME_MAX limit
This commit is contained in:
Vladimir Kokarev 2009-09-19 19:43:24 +04:00 committed by Lennart Poettering
parent 53b046d5c9
commit d2c59354d5
3 changed files with 12 additions and 3 deletions

View file

@ -130,6 +130,7 @@ pa_cvolume_get_balance;
pa_cvolume_get_fade; pa_cvolume_get_fade;
pa_cvolume_get_position; pa_cvolume_get_position;
pa_cvolume_inc; pa_cvolume_inc;
pa_cvolume_inc_clamp;
pa_cvolume_init; pa_cvolume_init;
pa_cvolume_max; pa_cvolume_max;
pa_cvolume_max_mask; pa_cvolume_max_mask;

View file

@ -885,7 +885,7 @@ pa_cvolume* pa_cvolume_merge(pa_cvolume *dest, const pa_cvolume *a, const pa_cvo
return dest; return dest;
} }
pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc) { pa_cvolume* pa_cvolume_inc_clamp(pa_cvolume *v, pa_volume_t inc, pa_volume_t limit) {
pa_volume_t m; pa_volume_t m;
pa_assert(v); pa_assert(v);
@ -895,14 +895,18 @@ pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc) {
m = pa_cvolume_max(v); m = pa_cvolume_max(v);
if (m >= PA_VOLUME_MAX - inc) if (m >= limit - inc)
m = PA_VOLUME_MAX; m = limit;
else else
m += inc; m += inc;
return pa_cvolume_scale(v, m); return pa_cvolume_scale(v, m);
} }
pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc){
return pa_cvolume_inc_clamp(v, inc, PA_VOLUME_MAX);
}
pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec) { pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec) {
pa_volume_t m; pa_volume_t m;

View file

@ -348,6 +348,10 @@ pa_volume_t pa_cvolume_get_position(pa_cvolume *cv, const pa_channel_map *map, p
* and dest may point to the same structure. \since 0.9.16 */ * and dest may point to the same structure. \since 0.9.16 */
pa_cvolume* pa_cvolume_merge(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b); pa_cvolume* pa_cvolume_merge(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b);
/** Increase the volume passed in by 'inc', but not exceeding 'limit'.
* The proportions between the channels are kept. \since 0.9.19 */
pa_cvolume* pa_cvolume_inc_clamp(pa_cvolume *v, pa_volume_t inc, pa_volume_t limit);
/** Increase the volume passed in by 'inc'. The proportions between /** Increase the volume passed in by 'inc'. The proportions between
* the channels are kept. \since 0.9.16 */ * the channels are kept. \since 0.9.16 */
pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc); pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc);