mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
Clean up peak calculating code.
Mixer needn't keep peak data around that will never be used. Just pass pcm_peaks structure to it instead of allocating for every channel. Plugin API becomes incompatible. vu_meter digital mode was still using global peak calculation; switch it to playback channel like the rest. Remove some accumulated soil peaks inside pcm.c and make it more generic. Change-Id: Ib4d268d80b6a9d09915eea1c91eab483c1a2c009
This commit is contained in:
parent
c0208f0f64
commit
e189b33ff4
10 changed files with 81 additions and 78 deletions
|
@ -704,9 +704,11 @@ static void analog_meter(void) {
|
|||
int left_peak = rb->mas_codec_readreg(0xC);
|
||||
int right_peak = rb->mas_codec_readreg(0xD);
|
||||
#elif (CONFIG_CODEC == SWCODEC)
|
||||
int left_peak, right_peak;
|
||||
static struct pcm_peaks peaks;
|
||||
rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK,
|
||||
&left_peak, &right_peak);
|
||||
&peaks);
|
||||
#define left_peak peaks.left
|
||||
#define right_peak peaks.right
|
||||
#endif
|
||||
|
||||
if(vumeter_settings.analog_use_db_scale) {
|
||||
|
@ -762,8 +764,11 @@ static void digital_meter(void) {
|
|||
int left_peak = rb->mas_codec_readreg(0xC);
|
||||
int right_peak = rb->mas_codec_readreg(0xD);
|
||||
#elif (CONFIG_CODEC == SWCODEC)
|
||||
int left_peak, right_peak;
|
||||
rb->pcm_calculate_peaks(&left_peak, &right_peak);
|
||||
static struct pcm_peaks peaks;
|
||||
rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK,
|
||||
&peaks);
|
||||
#define left_peak peaks.left
|
||||
#define right_peak peaks.right
|
||||
#endif
|
||||
|
||||
if(vumeter_settings.digital_use_db_scale) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue