8#include "platforms/is_platform.h"
12template<
typename Condition>
14 const u32 startTime = timeoutMs > 0 ?
millis() : 0;
28 while ((
fl::micros() - spinStart) < spinBudget) {
32 if (timeoutMs > 0 && (
millis() - startTime) >= timeoutMs) {
33 FL_ERROR(
"Timeout occurred while waiting for condition");
40 while (!condition()) {
42 if (timeoutMs > 0 && (
millis() - startTime >= timeoutMs)) {
43 FL_ERROR(
"Timeout occurred while waiting for condition");
FastLED chrono implementation - duration types for time measurements.
bool waitForCondition(Condition condition, u32 timeoutMs=1000) FL_NO_EXCEPT
virtual DriverState poll() FL_NO_EXCEPT=0
Query driver state and perform maintenance.
bool waitForReady(u32 timeoutMs=1000) FL_NO_EXCEPT
Wait for driver to become READY.
bool waitForReadyOrDraining(u32 timeoutMs=1000) FL_NO_EXCEPT
static bool isAnyNetworkActive() FL_NO_EXCEPT
Task executor — runs registered task runners and manages the run loop.
Centralized logging categories for FastLED hardware interfaces and subsystems.
fl::u32 getWaitSpinBudgetUs() FL_NO_EXCEPT
Get the current tiered-wait spin budget (microseconds).
void yield_system(fl::u32 microseconds) FL_NO_EXCEPT
OS-level yield only: same behavior as run(us, ExecFlags::SYSTEM).
u8 u8 fract8 blur_amount FL_NO_EXCEPT
fl::u32 millis() FL_NO_EXCEPT
Universal millisecond timer - returns milliseconds since system startup.
fl::u32 micros() FL_NO_EXCEPT
Universal microsecond timer - returns microseconds since system startup.
Base definition for an LED controller.
Cross-platform facade for runtime network activity detection.
@ READY
Hardware idle; ready to accept new transmissions.
@ DRAINING
All channels submitted; still transmitting.
Runtime-tunable microsecond spin budget for the channel-manager and driver wait loops (Phase 1 of #28...