2#include "platforms/is_platform.h"
65 return static_cast<float>(
offset) /
static_cast<float>(range);
88 u32 scaled = (
offset * 65535U) / range;
89 return static_cast<u16
>(scaled);
94 if (percent < 0.0f) percent = 0.0f;
95 if (percent > 100.0f) percent = 100.0f;
99 mHysteresis =
static_cast<u16
>((percent / 100.0f) * range);
114#if defined(FL_IS_AVR) || defined(STUB_PLATFORM) || defined(FASTLED_USE_STUB_ARDUINO)
124 u16 one_percent = range / 100;
125 return (one_percent > 10) ? one_percent : 10;
130 u16 new_value =
mOwner->mPot.read();
131 mOwner->mCurrentValue = new_value;
135 if (new_value >
mOwner->mLastValue) {
136 diff = new_value -
mOwner->mLastValue;
138 diff =
mOwner->mLastValue - new_value;
142 const bool changed_beyond_hysteresis = (diff >=
mOwner->mHysteresis);
144 mOwner->mChangedThisFrame = changed_beyond_hysteresis;
146 if (changed_beyond_hysteresis) {
147 mOwner->mLastValue = new_value;
153 float normalized_value =
mOwner->normalized();
154 mOwner->mOnChangeNormalizedCallbacks.invoke(normalized_value);
157 mOwner->mChangedThisFrame =
false;
static void removeListener(Listener *listener) FL_NOEXCEPT
static void addListener(Listener *listener, int priority=0) FL_NOEXCEPT
u16 getAdcMaxValue() const
Potentiometer(int pin, u16 hysteresis=0)
u16 calculateDefaultHysteresis() const
void setHysteresisPercent(float percent)
void setRange(u16 min, u16 max)
int onChange(fl::function< void(Potentiometer &)> callback)
fl::function_list< void(float)> mOnChangeNormalizedCallbacks
fl::function_list< void(Potentiometer &)> mOnChangeCallbacks
PotentiometerLowLevel mPot
~PotentiometerLowLevel() FL_NOEXCEPT
PotentiometerLowLevel(int pin)
fl::UISlider offset("Offset", 0.0f, 0.0f, 1.0f, 0.01f)
FL_DISABLE_WARNING_PUSH U constexpr common_type_t< T, U > min(T a, U b) FL_NOEXCEPT
constexpr common_type_t< T, U > max(T a, U b) FL_NOEXCEPT
u16 analogRead(int pin)
Read analog value from pin.
Base definition for an LED controller.
void addToEngineEventsOnce()
void onEndFrame() override
Aggregator header for the fl/ui/ family of per-element UI types.