Commit 20ad969
committed
feat: Add RGBW support to LedDeviceUdpE131
This commit introduces RGBW (Red, Green, Blue, White) data handling
for the E1.31 UDP LED device.
Key changes:
1. **LedDeviceUdpE131.h modifications:**
* Included `utils/ColorRgbw.h` and `utils/RgbToRgbw.h`.
* Added private member variables:
* `_whiteAlgorithm` (RGBW::WhiteAlgorithm) to store the selected white calibration mode.
* `_ledRGBWCount` (int) to store the total number of channels (3 for RGB, 4 for RGBW).
* `_temp_rgbw` (ColorRgbw) as a temporary variable for color conversion.
2. **LedDeviceUdpE131.cpp modifications:**
* Constructor now initializes `_whiteAlgorithm` to `INVALID` and `_ledRGBWCount` to 0.
* `init()` method:
* Reads `whiteAlgorithm` from the device configuration (defaults to "white_off").
* Converts the string to `RGBW::WhiteAlgorithm`.
* Sets `_ledRGBWCount` based on `_ledCount` and whether a white channel is active (3 * _ledCount for RGB, 4 * _ledCount for RGBW).
* `write()` method:
* Uses `_ledRGBWCount` for `dmxChannelCount`.
* Creates a temporary buffer for pixel data.
* If `_whiteAlgorithm` is `WHITE_OFF`, copies RGB data directly.
* Otherwise, converts RGB to RGBW using `RGBW::Rgb_to_Rgbw` and copies R,G,B,W data.
* Populates E1.31 packet properties using the new (potentially RGBW) data buffer.
3. **JSON Schema Update (libsrc/leddevice/schemas/schema-e131.json):**
* Added a `whiteAlgorithm` property to the E1.31 device schema.
* This allows users to select the white channel calibration method ("white_off", "subtractive", "additive").
* Includes a default value of "white_off".
**Compilation Status:**
The project successfully configures with CMake after installing numerous dependencies (Qt6, libudev, XCB libs, ALSA, CEC, libp8-platform, libusb).
However, the `make` process consistently times out after approximately 6 minutes and 40 seconds, regardless of the number of parallel jobs (`-j nproc`, `-j 2`, `-j 1`) or if a specific target (`hyperiond`) is built.
This suggests a potential hang or an extremely long compilation step for a particular file/module within the project, which could not be identified due to lack of verbose output during the timeout.
Further investigation or environment adjustments are needed to complete the full build.1 parent 26fd6d8 commit 20ad969
File tree
3 files changed
+78
-7
lines changed- libsrc/leddevice
- dev_net
- schemas
3 files changed
+78
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
| 43 | + | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
| |||
61 | 63 | | |
62 | 64 | | |
63 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
64 | 88 | | |
65 | 89 | | |
66 | 90 | | |
| |||
138 | 162 | | |
139 | 163 | | |
140 | 164 | | |
141 | | - | |
| 165 | + | |
142 | 166 | | |
143 | | - | |
144 | | - | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
145 | 191 | | |
146 | 192 | | |
147 | 193 | | |
| |||
150 | 196 | | |
151 | 197 | | |
152 | 198 | | |
153 | | - | |
| 199 | + | |
154 | 200 | | |
155 | 201 | | |
156 | 202 | | |
157 | 203 | | |
158 | 204 | | |
159 | | - | |
| 205 | + | |
160 | 206 | | |
161 | | - | |
162 | | - | |
| 207 | + | |
| 208 | + | |
163 | 209 | | |
164 | 210 | | |
165 | 211 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
142 | 144 | | |
143 | 145 | | |
144 | 146 | | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
145 | 152 | | |
146 | 153 | | |
147 | 154 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
39 | 57 | | |
40 | 58 | | |
41 | 59 | | |
| |||
0 commit comments