Skip to content

Commit f1ebcd0

Browse files
committed
Switchable effects
1 parent b4ac606 commit f1ebcd0

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/btstack_audio_pico.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,11 @@
6666

6767
Display display;
6868
FIX_FFT fft;
69+
RainbowFFT rainbow_fft(display, fft);
70+
ClassicFFT classic_fft(display, fft);
6971

7072
std::vector<Effect *> effects;
73+
unsigned int current_effect = 0;
7174

7275
#ifdef EFFECTS_ON_CORE1
7376
constexpr int core1_stack_len = 512;
@@ -144,8 +147,8 @@ static audio_buffer_pool_t *init_audio(uint32_t sample_frequency, uint8_t channe
144147
assert(ok);
145148
(void)ok;
146149

147-
effects.push_back(new RainbowFFT(display, fft));
148-
effects.push_back(new ClassicFFT(display, fft));
150+
effects.push_back(&rainbow_fft);
151+
effects.push_back(&classic_fft);
149152

150153
for(auto &effect : effects) {
151154
effect->init(sample_frequency);
@@ -168,11 +171,19 @@ static void btstack_audio_pico_sink_fill_buffers(void){
168171
break;
169172
}
170173

174+
if (!gpio_get(Display::SWITCH_A)) {
175+
current_effect = 0;
176+
}
177+
178+
if (!gpio_get(Display::SWITCH_B)) {
179+
current_effect = 1;
180+
}
181+
171182
int16_t * buffer16 = (int16_t *) audio_buffer->buffer->bytes;
172183
(*playback_callback)(buffer16, audio_buffer->max_sample_count);
173184

174185
#ifndef EFFECTS_ON_CORE1
175-
effects[0]->update(buffer16, SAMPLE_COUNT);
186+
effects[current_effect]->update(buffer16, SAMPLE_COUNT);
176187
#endif
177188

178189
#ifdef EFFECTS_ON_CORE1

0 commit comments

Comments
 (0)