35template<
typename Rep,
typename Period = fl::ratio<1>>
51 template<
typename Rep2,
typename Period2>
63 template<
typename ToRep,
typename ToPeriod,
typename FromRep,
typename FromPeriod>
69 return static_cast<ToRep
>(
88template<
typename ToDuration,
typename Rep,
typename Period>
122template<
typename Clock,
typename Duration =
typename Clock::duration>
127 using rep =
typename Duration::rep;
128 using period =
typename Duration::period;
141 return mDuration.count() <= rhs.mDuration.count();
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();
161 return Duration(
mDuration.count() - rhs.mDuration.count());
350#ifdef FASTLED_TESTING
377void inject_time_provider(
const time_provider_t& provider)
FL_NOEXCEPT;
420class MockTimeProvider {
424 explicit MockTimeProvider(fl::u32 initial_time = 0)
FL_NOEXCEPT;
443 fl::u32 mCurrentTime;
static constexpr ToRep duration_cast_impl(FromRep count) FL_NOEXCEPT
constexpr duration(const duration< Rep2, Period2 > &d) FL_NOEXCEPT
Implicit conversion constructor from compatible duration types.
constexpr duration(const Rep &count) FL_NOEXCEPT
Explicit constructor from tick count.
constexpr duration() FL_NOEXCEPT
Default constructor - zero duration.
constexpr fl::i64 count() const FL_NOEXCEPT
Represents a time duration.
constexpr bool operator>=(const time_point &rhs) const FL_NOEXCEPT
constexpr bool operator==(const time_point &rhs) const FL_NOEXCEPT
constexpr bool operator<(const time_point &rhs) const FL_NOEXCEPT
constexpr bool operator>(const time_point &rhs) const FL_NOEXCEPT
constexpr time_point(const Duration &d) FL_NOEXCEPT
Construct from a duration since epoch.
constexpr time_point operator-(const Duration &d) const FL_NOEXCEPT
Subtract a duration from a time_point.
typename Duration::rep rep
constexpr bool operator!=(const time_point &rhs) const FL_NOEXCEPT
constexpr Duration operator-(const time_point &rhs) const FL_NOEXCEPT
Subtract two time_points to get a duration.
typename steady_clock::duration mDuration
constexpr Duration time_since_epoch() const FL_NOEXCEPT
Get the duration since epoch.
constexpr time_point() FL_NOEXCEPT
Default constructor - epoch time point.
constexpr bool operator<=(const time_point &rhs) const FL_NOEXCEPT
constexpr time_point operator+(const Duration &d) const FL_NOEXCEPT
Add a duration to a time_point.
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.
constexpr ToDuration duration_cast(const duration< Rep, Period > &d) FL_NOEXCEPT
Cast one duration type to another.
duration< fl::i32, fl::ratio< 3600 > > hours
Hours - duration with period of 3600 seconds.
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.
fl::u64 time() FL_NOEXCEPT
Alias for millis64() - returns 64-bit millisecond time.
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.
fl::u32 micros()
Universal microsecond timer - returns microseconds since system startup.
ratio< R1::num *R2::den, R1::den *R2::num > ratio_divide
Divide two ratios at compile time.
fl::u64 millis64()
64-bit millisecond timer - returns milliseconds since system startup without wraparound
Base definition for an LED controller.
FastLED ratio implementation - compile-time rational arithmetic.
static time_point now() FL_NOEXCEPT
Returns the current time point (implemented after fl::micros() declaration)
static constexpr bool is_steady
fl::chrono::time_point< steady_clock > time_point
Monotonic clock that never goes backwards.
static time_point now() FL_NOEXCEPT
Returns the current time point (implemented after fl::micros() declaration)
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.