FastLED 3.9.15
Loading...
Searching...
No Matches
client.cpp.hpp
Go to the documentation of this file.
1// ok no header
2#include "fl/fx/wled/client.h"
3#include "fl/log/log.h"
4#include "fl/log/log.h"
5
6namespace fl {
7
8// WLEDClient implementation
9
11 : mController(controller), mBrightness(255), mOn(false) {
12 if (!mController) {
13 FL_WARN("WLEDClient: constructed with null controller");
14 }
15}
16
19 FL_DBG("WLEDClient: setBrightness(" << static_cast<int>(mBrightness) << ")");
20
21 // Apply brightness to controller if we're on
22 if (mOn && mController) {
23 mController->setBrightness(mBrightness);
24 }
25}
26
27void WLEDClient::setOn(bool on) {
28 mOn = on;
29 FL_DBG("WLEDClient: setOn(" << (mOn ? "true" : "false") << ")");
30
31 if (!mController) {
32 return;
33 }
34
35 if (mOn) {
36 // Turning on: apply current brightness
37 mController->setBrightness(mBrightness);
38 } else {
39 // Turning off: set brightness to 0 (but preserve internal brightness)
40 mController->setBrightness(0);
41 }
42}
43
44void WLEDClient::clear(bool writeToStrip) {
45 FL_DBG("WLEDClient: clear(writeToStrip=" << (writeToStrip ? "true" : "false") << ")");
46
47 if (!mController) {
48 return;
49 }
50
51 mController->clear(writeToStrip);
52}
53
55 FL_DBG("WLEDClient: update()");
56
57 if (!mController) {
58 return;
59 }
60
61 mController->show();
62}
63
65 if (!mController) {
66 return fl::span<CRGB>();
67 }
68
69 return mController->getLEDs();
70}
71
72size_t WLEDClient::getNumLEDs() const {
73 if (!mController) {
74 return 0;
75 }
76
77 return mController->getNumLEDs();
78}
79
80void WLEDClient::setSegment(size_t start, size_t end) {
81 FL_DBG("WLEDClient: setSegment(" << start << ", " << end << ")");
82
83 if (!mController) {
84 return;
85 }
86
87 mController->setSegment(start, end);
88}
89
91 FL_DBG("WLEDClient: clearSegment()");
92
93 if (!mController) {
94 return;
95 }
96
97 mController->clearSegment();
98}
99
101 FL_DBG("WLEDClient: setCorrection(r=" << static_cast<int>(correction.r)
102 << ", g=" << static_cast<int>(correction.g)
103 << ", b=" << static_cast<int>(correction.b) << ")");
104
105 if (!mController) {
106 return;
107 }
108
109 mController->setCorrection(correction);
110}
111
113 FL_DBG("WLEDClient: setTemperature(r=" << static_cast<int>(temperature.r)
114 << ", g=" << static_cast<int>(temperature.g)
115 << ", b=" << static_cast<int>(temperature.b) << ")");
116
117 if (!mController) {
118 return;
119 }
120
121 mController->setTemperature(temperature);
122}
123
125 FL_DBG("WLEDClient: setMaxRefreshRate(" << fps << ")");
126
127 if (!mController) {
128 return;
129 }
130
131 mController->setMaxRefreshRate(fps);
132}
133
135 if (!mController) {
136 return 0;
137 }
138
139 return mController->getMaxRefreshRate();
140}
141
142} // namespace fl
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
CLEDController * controller
void setOn(bool on)
Set on/off state.
size_t getNumLEDs() const
Get number of LEDs.
WLEDClient(fl::shared_ptr< IFastLED > controller)
Construct WLEDClient with FastLED controller.
void clear(bool writeToStrip=false)
Clear all LEDs.
void clearSegment()
Clear the segment range (operate on full LED array)
void setSegment(size_t start, size_t end)
Set a segment range for subsequent operations.
void setTemperature(CRGB temperature)
Set color temperature.
void setCorrection(CRGB correction)
Set color correction.
void setMaxRefreshRate(u16 fps)
Set maximum refresh rate.
u16 getMaxRefreshRate() const
Get maximum refresh rate.
fl::shared_ptr< IFastLED > mController
Definition client.h:148
void setBrightness(u8 brightness)
Set brightness level.
fl::span< CRGB > getLEDs()
Get access to LED array.
void update()
Update physical LED strip.
#define FL_WARN(X)
Definition log.h:276
#define FL_DBG
Definition log.h:388
Centralized logging categories for FastLED hardware interfaces and subsystems.
unsigned char u8
Definition stdint.h:131
constexpr T * end(T(&array)[N]) FL_NOEXCEPT
Base definition for an LED controller.
Definition crgb.hpp:179
Representation of an 8-bit RGB pixel (Red, Green, Blue)
Definition crgb.h:38