21 int16_t *sampleBuf, sample;
28 sampleBuf += bufLen / (2 +
sizeof(int16_t));
36 bufLen /= (2 +
sizeof(int16_t));
39 sample = *sampleBuf++;
40 if ( ! (sample & 0x8000))
42 if (sample > l_params.
vuInput[0])
45 sample = *sampleBuf++;
46 if ( ! (sample & 0x8000))
48 if (sample > l_params.
vuInput[1])
62 if (l_params.
vuInput[channel] > last_input[channel])
63 last_input[channel] = l_params.
vuInput[channel];
68 static void VUMETER_Move(
int channel)
71 uint32_t curTickDelta;
73 if (curTick > l_params.
vuTick[channel] )
74 curTickDelta = curTick - l_params.
vuTick[channel];
76 curTickDelta = l_params.
vuTick[channel] - curTick;
81 l_params.
vuTick[channel] = curTick;
85 curTickDelta = curTick - l_params.
vuTickPeak[channel];
87 curTickDelta = l_params.
vuTickPeak[channel] - curTick;
145 VUMETER_Move(channel);
#define LCD_COLOR_GREEN
Green value in ARGB8888 format.
#define LCD_COLOR_YELLOW
Yellow value in ARGB8888 format.
void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
Draws a full rectangle in currently active layer.
uint32_t vuTickPeak[NUM_CHANNELS]
#define LCD_COLOR_MAGENTA
Magenta value in ARGB8888 format.
void VUMETER_Input(int channel)
Analyze the peak meter for the audio input.
#define LCD_COLOR_GRAY
Gray value in ARGB8888 format.
int16_t vuInput[NUM_CHANNELS]
void BSP_LCD_SetTextColor(uint32_t Color)
Sets the LCD text color.
void VUMETER_Display(int channel)
Display the peak meter.
int AUDIO_PLAYER_GetState(void)
void VUMETER_Analyse(void)
Analyse the peak meter value.
int16_t vuPeak[NUM_CHANNELS]
int AUDIO_PLAYER_GetBuffer(uint8_t **out_BufAddr)
uint32_t vuTick[NUM_CHANNELS]
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
#define LCD_COLOR_RED
Red value in ARGB8888 format.