From 61d0583384b81de28498544ea3ec2e5c8eba42be Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Fri, 23 Aug 2013 14:18:08 -0400 Subject: Greatly reduce volume-change zipper artifacts with SW volume. Uses a cosine factor to smoothly shift the PCM level from the old level to the new one over the length of a frame. Implements indirect calls to PCM scaling function instead of testing conditions on every callback, cleanly assigning a different call to do the volume transition. The volume change call then assigns the final scaling function. Change-Id: If1004b92a91c5ca766dd0e4014ec274636e8ed26 Reviewed-on: http://gerrit.rockbox.org/763 Reviewed-by: Michael Sevakis Tested: Michael Sevakis --- firmware/export/pcm-internal.h | 1 + 1 file changed, 1 insertion(+) (limited to 'firmware/export') diff --git a/firmware/export/pcm-internal.h b/firmware/export/pcm-internal.h index 2b73f64ef6..7670f99f04 100644 --- a/firmware/export/pcm-internal.h +++ b/firmware/export/pcm-internal.h @@ -57,6 +57,7 @@ void pcm_sw_volume_copy_buffer(void *dst, const void *src, size_t size); #endif #endif /* PCM_SW_VOLUME_UNBUFFERED */ +void pcm_sync_pcm_factors(void); #endif /* HAVE_SW_VOLUME_CONTROL */ #define PCM_SAMPLE_SIZE (2 * sizeof (int16_t)) -- cgit v1.2.3