Skip to content

Commit 24ecf1a

Browse files
committed
Move getAudioData to static
1 parent e68375a commit 24ecf1a

File tree

3 files changed

+36
-36
lines changed

3 files changed

+36
-36
lines changed

wled00/FX.cpp

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,15 @@ int8_t tristate_square8(uint8_t x, uint8_t pulsewidth, uint8_t attdec) {
7373
return 0;
7474
}
7575

76+
static um_data_t* getAudioData() {
77+
um_data_t *um_data;
78+
if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) {
79+
// add support for no audio
80+
um_data = simulateSound(SEGMENT.soundSim);
81+
}
82+
return um_data;
83+
}
84+
7685
// effect functions
7786

7887
/*
@@ -6325,7 +6334,7 @@ uint16_t mode_ripplepeak(void) { // * Ripple peak. By Andrew Tuli
63256334
if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed
63266335
Ripple* ripples = reinterpret_cast<Ripple*>(SEGENV.data);
63276336

6328-
um_data_t *um_data = usermods.getAudioData();
6337+
um_data_t *um_data = getAudioData();
63296338
uint8_t samplePeak = *(uint8_t*)um_data->u_data[3];
63306339
#ifdef ESP32
63316340
float FFT_MajorPeak = *(float*) um_data->u_data[4];
@@ -6412,7 +6421,7 @@ uint16_t mode_2DSwirl(void) {
64126421
int ni = (cols - 1) - i;
64136422
int nj = (cols - 1) - j;
64146423

6415-
um_data_t *um_data = usermods.getAudioData();
6424+
um_data_t *um_data = getAudioData();
64166425
float volumeSmth = *(float*) um_data->u_data[0]; //ewowi: use instead of sampleAvg???
64176426
int volumeRaw = *(int16_t*) um_data->u_data[1];
64186427

@@ -6438,7 +6447,7 @@ uint16_t mode_2DWaverly(void) {
64386447
const int cols = SEGMENT.virtualWidth();
64396448
const int rows = SEGMENT.virtualHeight();
64406449

6441-
um_data_t *um_data = usermods.getAudioData();
6450+
um_data_t *um_data = getAudioData();
64426451
float volumeSmth = *(float*) um_data->u_data[0];
64436452

64446453
SEGMENT.fadeToBlackBy(SEGMENT.speed);
@@ -6487,7 +6496,7 @@ uint16_t mode_gravcenter(void) { // Gravcenter. By Andrew Tuline.
64876496
if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed
64886497
Gravity* gravcen = reinterpret_cast<Gravity*>(SEGENV.data);
64896498

6490-
um_data_t *um_data = usermods.getAudioData();
6499+
um_data_t *um_data = getAudioData();
64916500
float volumeSmth = *(float*) um_data->u_data[0];
64926501

64936502
//SEGMENT.fade_out(240);
@@ -6532,7 +6541,7 @@ uint16_t mode_gravcentric(void) { // Gravcentric. By Andrew
65326541
if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed
65336542
Gravity* gravcen = reinterpret_cast<Gravity*>(SEGENV.data);
65346543

6535-
um_data_t *um_data = usermods.getAudioData();
6544+
um_data_t *um_data = getAudioData();
65366545
float volumeSmth = *(float*) um_data->u_data[0];
65376546

65386547
// printUmData();
@@ -6580,7 +6589,7 @@ uint16_t mode_gravimeter(void) { // Gravmeter. By Andrew Tuline.
65806589
if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed
65816590
Gravity* gravcen = reinterpret_cast<Gravity*>(SEGENV.data);
65826591

6583-
um_data_t *um_data = usermods.getAudioData();
6592+
um_data_t *um_data = getAudioData();
65846593
float volumeSmth = *(float*) um_data->u_data[0];
65856594

65866595
//SEGMENT.fade_out(240);
@@ -6617,7 +6626,7 @@ static const char _data_FX_MODE_GRAVIMETER[] PROGMEM = "Gravimeter@Rate of fall,
66176626
// * JUGGLES //
66186627
//////////////////////
66196628
uint16_t mode_juggles(void) { // Juggles. By Andrew Tuline.
6620-
um_data_t *um_data = usermods.getAudioData();
6629+
um_data_t *um_data = getAudioData();
66216630
float volumeSmth = *(float*) um_data->u_data[0];
66226631

66236632
SEGMENT.fade_out(224); // 6.25%
@@ -6640,7 +6649,7 @@ uint16_t mode_matripix(void) { // Matripix. By Andrew Tuline.
66406649
if (SEGLEN == 1) return mode_static();
66416650
// even with 1D effect we have to take logic for 2D segments for allocation as fill_solid() fills whole segment
66426651

6643-
um_data_t *um_data = usermods.getAudioData();
6652+
um_data_t *um_data = getAudioData();
66446653
int volumeRaw = *(int16_t*)um_data->u_data[1];
66456654

66466655
if (SEGENV.call == 0) {
@@ -6668,7 +6677,7 @@ uint16_t mode_midnoise(void) { // Midnoise. By Andrew Tuline.
66686677
if (SEGLEN == 1) return mode_static();
66696678
// Changing xdist to SEGENV.aux0 and ydist to SEGENV.aux1.
66706679

6671-
um_data_t *um_data = usermods.getAudioData();
6680+
um_data_t *um_data = getAudioData();
66726681
float volumeSmth = *(float*) um_data->u_data[0];
66736682

66746683
SEGMENT.fade_out(SEGMENT.speed);
@@ -6703,7 +6712,7 @@ uint16_t mode_noisefire(void) { // Noisefire. By Andrew Tuline.
67036712
CRGB::DarkOrange, CRGB::DarkOrange, CRGB::Orange, CRGB::Orange,
67046713
CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow);
67056714

6706-
um_data_t *um_data = usermods.getAudioData();
6715+
um_data_t *um_data = getAudioData();
67076716
float volumeSmth = *(float*) um_data->u_data[0];
67086717

67096718
if (SEGENV.call == 0) SEGMENT.fill(BLACK);
@@ -6727,7 +6736,7 @@ static const char _data_FX_MODE_NOISEFIRE[] PROGMEM = "Noisefire@!,!;;;01v;m12=2
67276736
///////////////////////
67286737
uint16_t mode_noisemeter(void) { // Noisemeter. By Andrew Tuline.
67296738

6730-
um_data_t *um_data = usermods.getAudioData();
6739+
um_data_t *um_data = getAudioData();
67316740
float volumeSmth = *(float*) um_data->u_data[0];
67326741
int volumeRaw = *(int16_t*)um_data->u_data[1];
67336742

@@ -6764,7 +6773,7 @@ uint16_t mode_pixelwave(void) { // Pixelwave. By Andrew Tuline.
67646773
SEGMENT.fill(BLACK);
67656774
}
67666775

6767-
um_data_t *um_data = usermods.getAudioData();
6776+
um_data_t *um_data = getAudioData();
67686777
int volumeRaw = *(int16_t*)um_data->u_data[1];
67696778

67706779
uint8_t secondHand = micros()/(256-SEGMENT.speed)/500+1 % 16;
@@ -6796,7 +6805,7 @@ uint16_t mode_plasmoid(void) { // Plasmoid. By Andrew Tuline.
67966805
if (!SEGENV.allocateData(sizeof(plasphase))) return mode_static(); //allocation failed
67976806
Plasphase* plasmoip = reinterpret_cast<Plasphase*>(SEGENV.data);
67986807

6799-
um_data_t *um_data = usermods.getAudioData();
6808+
um_data_t *um_data = getAudioData();
68006809
float volumeSmth = *(float*) um_data->u_data[0];
68016810

68026811
SEGMENT.fadeToBlackBy(32);
@@ -6831,7 +6840,7 @@ uint16_t mode_puddlepeak(void) { // Puddlepeak. By Andrew Tuline.
68316840
uint8_t fadeVal = map(SEGMENT.speed,0,255, 224, 254);
68326841
unsigned pos = random16(SEGLEN); // Set a random starting position.
68336842

6834-
um_data_t *um_data = usermods.getAudioData();
6843+
um_data_t *um_data = getAudioData();
68356844
uint8_t samplePeak = *(uint8_t*)um_data->u_data[3];
68366845
uint8_t *maxVol = (uint8_t*)um_data->u_data[6];
68376846
uint8_t *binNum = (uint8_t*)um_data->u_data[7];
@@ -6872,7 +6881,7 @@ uint16_t mode_puddles(void) { // Puddles. By Andrew Tuline.
68726881

68736882
SEGMENT.fade_out(fadeVal);
68746883

6875-
um_data_t *um_data = usermods.getAudioData();
6884+
um_data_t *um_data = getAudioData();
68766885
int volumeRaw = *(int16_t*)um_data->u_data[1];
68776886

68786887
if (volumeRaw > 1) {
@@ -6930,7 +6939,7 @@ uint16_t mode_blurz(void) { // Blurz. By Andrew Tuline.
69306939
if (SEGLEN == 1) return mode_static();
69316940
// even with 1D effect we have to take logic for 2D segments for allocation as fill_solid() fills whole segment
69326941

6933-
um_data_t *um_data = usermods.getAudioData();
6942+
um_data_t *um_data = getAudioData();
69346943
uint8_t *fftResult = (uint8_t*)um_data->u_data[2];
69356944

69366945
if (SEGENV.call == 0) {
@@ -6963,7 +6972,7 @@ uint16_t mode_DJLight(void) { // Written by ??? Adapted by Wil
69636972
// No need to prevent from executing on single led strips, only mid will be set (mid = 0)
69646973
const int mid = SEGLEN / 2;
69656974

6966-
um_data_t *um_data = usermods.getAudioData();
6975+
um_data_t *um_data = getAudioData();
69676976
uint8_t *fftResult = (uint8_t*)um_data->u_data[2];
69686977

69696978
if (SEGENV.call == 0) {
@@ -6995,7 +7004,7 @@ uint16_t mode_freqmap(void) { // Map FFT_MajorPeak to SEGLEN.
69957004
// Start frequency = 60 Hz and log10(60) = 1.78
69967005
// End frequency = MAX_FREQUENCY in Hz and lo10(MAX_FREQUENCY) = MAX_FREQ_LOG10
69977006

6998-
um_data_t *um_data = usermods.getAudioData();
7007+
um_data_t *um_data = getAudioData();
69997008
float FFT_MajorPeak = *(float*)um_data->u_data[4];
70007009
float my_magnitude = *(float*)um_data->u_data[5] / 4.0f;
70017010
if (FFT_MajorPeak < 1) FFT_MajorPeak = 1; // log10(0) is "forbidden" (throws exception)
@@ -7025,7 +7034,7 @@ static const char _data_FX_MODE_FREQMAP[] PROGMEM = "Freqmap@Fade rate,Starting
70257034
///////////////////////
70267035
uint16_t mode_freqmatrix(void) { // Freqmatrix. By Andreas Pleschung.
70277036
// No need to prevent from executing on single led strips, we simply change pixel 0 each time and avoid the shift
7028-
um_data_t *um_data = usermods.getAudioData();
7037+
um_data_t *um_data = getAudioData();
70297038
float FFT_MajorPeak = *(float*)um_data->u_data[4];
70307039
float volumeSmth = *(float*)um_data->u_data[0];
70317040

@@ -7080,7 +7089,7 @@ static const char _data_FX_MODE_FREQMATRIX[] PROGMEM = "Freqmatrix@Speed,Sound e
70807089
// SEGMENT.speed select faderate
70817090
// SEGMENT.intensity select colour index
70827091
uint16_t mode_freqpixels(void) { // Freqpixel. By Andrew Tuline.
7083-
um_data_t *um_data = usermods.getAudioData();
7092+
um_data_t *um_data = getAudioData();
70847093
float FFT_MajorPeak = *(float*)um_data->u_data[4];
70857094
float my_magnitude = *(float*)um_data->u_data[5] / 16.0f;
70867095
if (FFT_MajorPeak < 1) FFT_MajorPeak = 1.0f; // log10(0) is "forbidden" (throws exception)
@@ -7123,7 +7132,7 @@ static const char _data_FX_MODE_FREQPIXELS[] PROGMEM = "Freqpixels@Fade rate,Sta
71237132
// Depending on the music stream you have you might find it useful to change the frequency mapping.
71247133
uint16_t mode_freqwave(void) { // Freqwave. By Andreas Pleschung.
71257134
// As before, this effect can also work on single pixels, we just lose the shifting effect
7126-
um_data_t *um_data = usermods.getAudioData();
7135+
um_data_t *um_data = getAudioData();
71277136
float FFT_MajorPeak = *(float*)um_data->u_data[4];
71287137
float volumeSmth = *(float*)um_data->u_data[0];
71297138

@@ -7178,7 +7187,7 @@ uint16_t mode_gravfreq(void) { // Gravfreq. By Andrew Tuline.
71787187
if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed
71797188
Gravity* gravcen = reinterpret_cast<Gravity*>(SEGENV.data);
71807189

7181-
um_data_t *um_data = usermods.getAudioData();
7190+
um_data_t *um_data = getAudioData();
71827191
float FFT_MajorPeak = *(float*)um_data->u_data[4];
71837192
float volumeSmth = *(float*)um_data->u_data[0];
71847193
if (FFT_MajorPeak < 1) FFT_MajorPeak = 1; // log10(0) is "forbidden" (throws exception)
@@ -7221,7 +7230,7 @@ static const char _data_FX_MODE_GRAVFREQ[] PROGMEM = "Gravfreq@Rate of fall,Sens
72217230
// ** Noisemove //
72227231
//////////////////////
72237232
uint16_t mode_noisemove(void) { // Noisemove. By: Andrew Tuline
7224-
um_data_t *um_data = usermods.getAudioData();
7233+
um_data_t *um_data = getAudioData();
72257234
uint8_t *fftResult = (uint8_t*)um_data->u_data[2];
72267235

72277236
int fadeoutDelay = (256 - SEGMENT.speed) / 96;
@@ -7244,7 +7253,7 @@ static const char _data_FX_MODE_NOISEMOVE[] PROGMEM = "Noisemove@Speed of perlin
72447253
// ** Rocktaves //
72457254
//////////////////////
72467255
uint16_t mode_rocktaves(void) { // Rocktaves. Same note from each octave is same colour. By: Andrew Tuline
7247-
um_data_t *um_data = usermods.getAudioData();
7256+
um_data_t *um_data = getAudioData();
72487257
float FFT_MajorPeak = *(float*) um_data->u_data[4];
72497258
float my_magnitude = *(float*) um_data->u_data[5] / 16.0f;
72507259

@@ -7282,7 +7291,7 @@ static const char _data_FX_MODE_ROCKTAVES[] PROGMEM = "Rocktaves@;!,!;!;01f;m12=
72827291
uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tuline
72837292
// effect can work on single pixels, we just lose the shifting effect
72847293

7285-
um_data_t *um_data = usermods.getAudioData();
7294+
um_data_t *um_data = getAudioData();
72867295
uint8_t samplePeak = *(uint8_t*)um_data->u_data[3];
72877296
float FFT_MajorPeak = *(float*) um_data->u_data[4];
72887297
uint8_t *maxVol = (uint8_t*)um_data->u_data[6];
@@ -7337,7 +7346,7 @@ uint16_t mode_2DGEQ(void) { // By Will Tatam. Code reduction by Ewoud Wijma.
73377346
if (!SEGENV.allocateData(cols*sizeof(uint16_t))) return mode_static(); //allocation failed
73387347
uint16_t *previousBarHeight = reinterpret_cast<uint16_t*>(SEGENV.data); //array of previous bar heights per frequency band
73397348

7340-
um_data_t *um_data = usermods.getAudioData();
7349+
um_data_t *um_data = getAudioData();
73417350
uint8_t *fftResult = (uint8_t*)um_data->u_data[2];
73427351

73437352
if (SEGENV.call == 0) for (int i=0; i<cols; i++) previousBarHeight[i] = 0;
@@ -7396,7 +7405,7 @@ uint16_t mode_2DFunkyPlank(void) { // Written by ??? Adapted by Wil
73967405
bandInc = (NUMB_BANDS / cols);
73977406
}
73987407

7399-
um_data_t *um_data = usermods.getAudioData();
7408+
um_data_t *um_data = getAudioData();
74007409
uint8_t *fftResult = (uint8_t*)um_data->u_data[2];
74017410

74027411
if (SEGENV.call == 0) {

wled00/fcn_declare.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,6 @@ class UsermodManager {
326326
void handleOverlayDraw();
327327
bool handleButton(uint8_t b);
328328
bool getUMData(um_data_t **um_data, uint8_t mod_id = USERMOD_ID_RESERVED); // USERMOD_ID_RESERVED will poll all usermods
329-
um_data_t *getAudioData();
330329
void setup();
331330
void connected();
332331
void appendConfigData();

wled00/um_manager.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,6 @@ bool UsermodManager::getUMData(um_data_t **data, uint8_t mod_id) {
2323
}
2424
return false;
2525
}
26-
um_data_t* UsermodManager::getAudioData() {
27-
um_data_t *um_data;
28-
if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) {
29-
// add support for no audio
30-
um_data = simulateSound(SEGMENT.soundSim);
31-
}
32-
return um_data;
33-
}
3426
void UsermodManager::addToJsonState(JsonObject& obj) { for (unsigned i = 0; i < numMods; i++) ums[i]->addToJsonState(obj); }
3527
void UsermodManager::addToJsonInfo(JsonObject& obj) { for (unsigned i = 0; i < numMods; i++) ums[i]->addToJsonInfo(obj); }
3628
void UsermodManager::readFromJsonState(JsonObject& obj) { for (unsigned i = 0; i < numMods; i++) ums[i]->readFromJsonState(obj); }

0 commit comments

Comments
 (0)