14#define FL_CHRONO_HAS_TEST_TIME_PROVIDER 1
18#define FL_CHRONO_HAS_TEST_TIME_PROVIDER 0
38template<
typename Rep,
typename Period = fl::ratio<1>>
54 template<
typename Rep2,
typename Period2>
66 template<
typename ToRep,
typename ToPeriod,
typename FromRep,
typename FromPeriod>
72 return static_cast<ToRep
>(
91template<
typename ToDuration,
typename Rep,
typename Period>
125template<
typename Clock,
typename Duration =
typename Clock::duration>
130 using rep =
typename Duration::rep;
131 using period =
typename Duration::period;
144 return mDuration.count() <= rhs.mDuration.count();
147 return mDuration.count() < rhs.mDuration.count();
150 return mDuration.count() >= rhs.mDuration.count();
153 return mDuration.count() > rhs.mDuration.count();
156 return mDuration.count() == rhs.mDuration.count();
159 return mDuration.count() != rhs.mDuration.count();
164 return Duration(
mDuration.count() - rhs.mDuration.count());
350#ifdef FASTLED_TESTING
377void inject_time_provider(
const time_provider_t& provider)
FL_NO_EXCEPT;
423class MockTimeProvider {
427 explicit MockTimeProvider(fl::u32 initial_time = 0)
FL_NO_EXCEPT;
446 fl::u32 mCurrentTime;
constexpr duration() FL_NO_EXCEPT
Default constructor - zero duration.
static constexpr ToRep duration_cast_impl(FromRep count) FL_NO_EXCEPT
constexpr fl::i64 count() const FL_NO_EXCEPT
constexpr duration(const Rep &count) FL_NO_EXCEPT
Explicit constructor from tick count.
constexpr duration(const duration< Rep2, Period2 > &d) FL_NO_EXCEPT
Implicit conversion constructor from compatible duration types.
Represents a time duration.
constexpr bool operator>(const time_point &rhs) const FL_NO_EXCEPT
constexpr bool operator>=(const time_point &rhs) const FL_NO_EXCEPT
constexpr bool operator!=(const time_point &rhs) const FL_NO_EXCEPT
constexpr time_point(const Duration &d) FL_NO_EXCEPT
Construct from a duration since epoch.
constexpr Duration operator-(const time_point &rhs) const FL_NO_EXCEPT
Subtract two time_points to get a duration.
constexpr time_point operator-(const Duration &d) const FL_NO_EXCEPT
Subtract a duration from a time_point.
typename Duration::rep rep
constexpr bool operator<=(const time_point &rhs) const FL_NO_EXCEPT
constexpr time_point() FL_NO_EXCEPT
Default constructor - epoch time point.
constexpr time_point operator+(const Duration &d) const FL_NO_EXCEPT
Add a duration to a time_point.
typename steady_clock::duration mDuration
constexpr bool operator==(const time_point &rhs) const FL_NO_EXCEPT
constexpr bool operator<(const time_point &rhs) const FL_NO_EXCEPT
constexpr Duration time_since_epoch() const FL_NO_EXCEPT
Get the duration since epoch.
typename Duration::period period
Represents a point in time relative to a clock.
@ Clock
System Real Time - Timing Clock.
duration< fl::i64, fl::nano > nanoseconds
Nanoseconds - duration with period of 1/1,000,000,000 seconds.
duration< fl::i64, fl::micro > microseconds
Microseconds - duration with period of 1/1,000,000 seconds.
duration< fl::i32, fl::ratio< 3600 > > hours
Hours - duration with period of 3600 seconds.
constexpr ToDuration duration_cast(const duration< Rep, Period > &d) FL_NO_EXCEPT
Cast one duration type to another.
duration< fl::i64 > seconds
Seconds - duration with period of 1 second.
duration< fl::i32, fl::ratio< 60 > > minutes
Minutes - duration with period of 60 seconds.
duration< fl::i64, fl::milli > milliseconds
Milliseconds - duration with period of 1/1,000 seconds.
void millis64_reset() FL_NO_EXCEPT
u8 u8 fract8 blur_amount FL_NO_EXCEPT
fl::u32 millis() FL_NO_EXCEPT
Universal millisecond timer - returns milliseconds since system startup.
fl::u64 time() FL_NO_EXCEPT
Alias for millis64() - returns 64-bit millisecond time.
fl::u32 micros() FL_NO_EXCEPT
Universal microsecond timer - returns microseconds since system startup.
fl::u64 millis64() FL_NO_EXCEPT
64-bit millisecond timer - returns milliseconds since system startup without wraparound
ratio< R1::num *R2::den, R1::den *R2::num > ratio_divide
Divide two ratios at compile time.
fl::u64 micros64() FL_NO_EXCEPT
64-bit monotonic microsecond timer.
Base definition for an LED controller.
FastLED ratio implementation - compile-time rational arithmetic.
static time_point now() FL_NO_EXCEPT
Returns the current time point.
static constexpr bool is_steady
fl::chrono::time_point< steady_clock > time_point
Monotonic clock that never goes backwards.
static constexpr bool is_steady
fl::chrono::time_point< system_clock > time_point
Wall clock (may not be monotonic)
static constexpr fl::i64 den
static constexpr fl::i64 num
Compile-time rational arithmetic.