mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-06 19:47:02 +03:00
better memory management and more effect tweaks
This commit is contained in:
@@ -188,7 +188,7 @@ static struct {
|
||||
bool enable, full;
|
||||
} artwork;
|
||||
|
||||
#define MAX_BARS 32
|
||||
#define MAX_BARS 48
|
||||
#define VISU_ESP32 0x10
|
||||
static EXT_RAM_ATTR struct {
|
||||
int bar_gap, bar_width, bar_border;
|
||||
@@ -207,6 +207,8 @@ static EXT_RAM_ATTR struct {
|
||||
} back;
|
||||
} visu;
|
||||
|
||||
static uint8_t* led_data;
|
||||
|
||||
static EXT_RAM_ATTR struct {
|
||||
float fft[FFT_LEN*2], samples[FFT_LEN*2], hanning[FFT_LEN];
|
||||
int levels[2];
|
||||
@@ -357,6 +359,7 @@ bool sb_displayer_init(void) {
|
||||
|
||||
if (led_display) {
|
||||
led_visu.config = led_vu_string_length();
|
||||
led_data = malloc(MAX_BARS);
|
||||
}
|
||||
|
||||
// inform LMS of our screen/led dimensions
|
||||
@@ -1090,21 +1093,19 @@ static void displayer_update(void) {
|
||||
led_vu_display(led_visu.bars[0].current, led_visu.bars[1].current, led_visu.max, led_visu.style);
|
||||
} else if (led_visu.mode == VISU_SPECTRUM) {
|
||||
spectrum_scale(led_visu.n, led_visu.bars, led_visu.max, meters.samples);
|
||||
uint8_t* led_data = malloc(led_visu.n);
|
||||
uint8_t* p = (uint8_t*) led_data;
|
||||
for (int i = 0; i < led_visu.n; i++) {
|
||||
*p = led_visu.bars[i].current;
|
||||
p++;
|
||||
}
|
||||
led_vu_spectrum(led_data, led_visu.max, led_visu.n, led_visu.style);
|
||||
free(led_data);
|
||||
} else if (led_visu.mode == VISU_WAVEFORM) {
|
||||
spectrum_scale(led_visu.n, led_visu.bars, led_visu.max, meters.samples);
|
||||
led_vu_spin_dial(
|
||||
led_visu.bars[1].current,
|
||||
led_visu.bars[(led_visu.n/2)+1].current * 50 / led_visu.max,
|
||||
led_visu.bars[led_visu.n-2].current * 5 / led_visu.max,
|
||||
led_visu.style);
|
||||
led_visu.bars[led_visu.n-2].current,
|
||||
led_visu.bars[(led_visu.n/2)+1].current * 50 / led_visu.max,
|
||||
led_visu.bars[1].current * 4 / led_visu.max,
|
||||
led_visu.style);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user