better memory management and more effect tweaks

This commit is contained in:
Wizmo2
2022-11-25 18:01:20 -05:00
parent 3f4bba2443
commit f5207def53

View File

@@ -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);
}
}
}