4#include "platforms/time_platform.h"
23 time_provider_t& get_time_provider() {
24 static time_provider_t provider;
29void inject_time_provider(
const time_provider_t& provider) {
30 fl::unique_lock<fl::mutex> lock(get_time_mutex());
31 get_time_provider() = provider;
34void clear_time_provider() {
35 fl::unique_lock<fl::mutex> lock(get_time_mutex());
36 get_time_provider() = time_provider_t{};
40MockTimeProvider::MockTimeProvider(fl::u32 initial_time)
41 : mCurrentTime(initial_time) {
44void MockTimeProvider::advance(fl::u32 milliseconds) {
48void MockTimeProvider::set_time(fl::u32 milliseconds) {
52fl::u32 MockTimeProvider::current_time()
const {
56fl::u32 MockTimeProvider::operator()()
const {
68 fl::unique_lock<fl::mutex> lock(get_time_mutex());
69 const auto& provider = get_time_provider();
77 return fl::platforms::millis();
82 return fl::platforms::micros();
101 Millis64State&
state = get_millis64_state();
102 fl::unique_lock<fl::mutex> lock(
state.mutex);
103 state.accumulated = 0;
104 state.last_millis = 0;
105 state.initialized =
false;
109 Millis64State&
state = get_millis64_state();
111 fl::unique_lock<fl::mutex> lock(
state.mutex);
113 if (!
state.initialized) {
115 state.accumulated = current_millis;
116 state.last_millis = current_millis;
117 state.initialized =
true;
118 return state.accumulated;
123 fl::u32 delta = current_millis -
state.last_millis;
126 state.accumulated += delta;
129 state.last_millis = current_millis;
131 return state.accumulated;
FastLED chrono implementation - duration types for time measurements.
Centralized logging categories for FastLED hardware interfaces and subsystems.
Platform-independent mutex interface.
Millis64State & get_millis64_state()
duration< fl::i64, fl::milli > milliseconds
Milliseconds - duration with period of 1/1,000 seconds.
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.
fl::u32 micros()
Universal microsecond timer - returns microseconds since system startup.
fl::u64 millis64()
64-bit millisecond timer - returns milliseconds since system startup without wraparound
fl::platforms::mutex mutex
Base definition for an LED controller.