added lighting settings to UI and prefs
This commit is contained in:
@@ -96,6 +96,24 @@ void calOverrideSwitchCallback(Control *sender, int type) {
|
||||
}
|
||||
}
|
||||
}
|
||||
void lightingSaveCallback(Control *sender, int type) {
|
||||
if (type != B_UP) return; // avoid double-trigger
|
||||
|
||||
prefs.putUChar("light_hue", lightingHue);
|
||||
prefs.putUChar("light_sat", lightingSaturation);
|
||||
prefs.putUChar("light_bright", lightingBrightness);
|
||||
|
||||
Serial.printf("Lighting saved (0–255): H=%d S=%d B=%d\n",
|
||||
lightingHue, lightingSaturation, lightingBrightness);
|
||||
}
|
||||
|
||||
static int toSlider(uint8_t v) {
|
||||
return (int)((v / 255.0f) * 100.0f);
|
||||
}
|
||||
|
||||
static uint8_t fromSlider(int v) {
|
||||
return (uint8_t)((v / 100.0f) * 255.0f);
|
||||
}
|
||||
|
||||
// -------------------------------
|
||||
// UI init
|
||||
@@ -213,13 +231,58 @@ void uiInit(uint16_t& tabSettings, uint16_t& tabLighting, uint16_t& tabCalibrati
|
||||
restartCallback
|
||||
);
|
||||
|
||||
// Lighting tab placeholder
|
||||
// -------------------------------
|
||||
// Lighting Controls
|
||||
// -------------------------------
|
||||
|
||||
// Hue slider (0–360)
|
||||
ESPUI.addControl(
|
||||
ControlType::Label,
|
||||
"Lighting Placeholder",
|
||||
"Coming soon...",
|
||||
ControlType::Slider,
|
||||
"Hue",
|
||||
String(toSlider(lightingHue)),
|
||||
ControlColor::Sunflower,
|
||||
tabLighting,
|
||||
[](Control *sender, int type) {
|
||||
int sliderVal = sender->value.toInt(); // 0–100
|
||||
lightingHue = fromSlider(sliderVal); // convert to 0–255
|
||||
Serial.printf("Lighting Hue changed (RAM only): %d\n", lightingHue);
|
||||
}
|
||||
);
|
||||
|
||||
// Saturation slider (0–100)
|
||||
ESPUI.addControl(
|
||||
ControlType::Slider,
|
||||
"Saturation",
|
||||
String(toSlider(lightingSaturation)),
|
||||
ControlColor::Carrot,
|
||||
tabLighting,
|
||||
[](Control *sender, int type) {
|
||||
int sliderVal = sender->value.toInt(); // 0–100
|
||||
lightingSaturation = fromSlider(sliderVal);
|
||||
Serial.printf("Lighting Saturation updated (RAM only): %d\n", lightingSaturation);
|
||||
}
|
||||
);
|
||||
|
||||
// Brightness slider (0–100)
|
||||
ESPUI.addControl(
|
||||
ControlType::Slider,
|
||||
"Brightness",
|
||||
String(toSlider(lightingBrightness)),
|
||||
ControlColor::Emerald,
|
||||
tabLighting
|
||||
tabLighting,
|
||||
[](Control *sender, int type) {
|
||||
int sliderVal = sender->value.toInt(); // 0–100
|
||||
lightingBrightness = fromSlider(sliderVal);
|
||||
Serial.printf("Lighting Brightness updated (RAM only): %d\n", lightingBrightness);
|
||||
}
|
||||
);
|
||||
ESPUI.addControl(
|
||||
ControlType::Button,
|
||||
"Save Lighting Settings",
|
||||
"Save",
|
||||
ControlColor::Emerald,
|
||||
tabLighting,
|
||||
lightingSaveCallback
|
||||
);
|
||||
|
||||
// -------------------------------
|
||||
|
||||
Reference in New Issue
Block a user