FastLED 3.9.15
Loading...
Searching...
No Matches

◆ processAutoTrigger()

void processAutoTrigger ( uint32_t now)

Definition at line 307 of file wavefx.cpp.

307 {
308 // Static variable to remember when the next auto-trigger should happen
309 static uint32_t nextTrigger = 0;
310
311 // Calculate time until next trigger
312 uint32_t trigger_delta = nextTrigger - now;
313
314 // Handle timer overflow (happens after ~49 days of continuous running)
315 if (trigger_delta > 10000) {
316 // If the delta is suspiciously large, we probably rolled over
317 trigger_delta = 0;
318 }
319
320 // Only proceed if auto-trigger is enabled
321 if (autoTrigger) {
322 // Check if it's time for the next trigger
323 if (now >= nextTrigger) {
324 // Create a ripple
326
327 // Calculate the next trigger time based on the speed slider
328 // Invert the speed value so higher slider = faster triggers
329 float speed = 1.0f - triggerSpeed.value();
330
331 // Calculate min and max random intervals
332 // Higher speed = shorter intervals between triggers
333 uint32_t min_rand = 400 * speed; // Minimum interval (milliseconds)
334 uint32_t max_rand = 2000 * speed; // Maximum interval (milliseconds)
335
336 // Ensure min is actually less than max (handles edge cases)
337 uint32_t min = MIN(min_rand, max_rand);
338 uint32_t max = MAX(min_rand, max_rand);
339
340 // Ensure min and max aren't equal (would cause random() to crash)
341 if (min == max) {
342 max += 1;
343 }
344
345 // Schedule the next trigger at a random time in the future
346 nextTrigger = now + random(min, max);
347 }
348 }
349}
UISlider speed("Speed", 1.0f, -20.0f, 20.0f, 0.01f)
#define MIN(a, b)
Definition math_macros.h:15
#define MAX(a, b)
Definition math_macros.h:11
UICheckbox autoTrigger("Auto Trigger", true)
UISlider triggerSpeed("Trigger Speed",.5f, 0.0f, 1.0f, 0.01f)
void triggerRipple()
Definition wavefx.cpp:146

References autoTrigger, MAX, MIN, speed, triggerRipple(), and triggerSpeed.

Referenced by wavefx_loop().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: