The new `.setBrightness()` and `.getBrightness()` methods control the brightness of the LEDs, by dispatching them to the LED drivers. We dispatch to the drivers so that nothing else needs to be aware of brightness control. Plugins will always set the unadjusted colors, and anything and anyone who reads colors, will also get the unadjusted values. Pushing the adjustment down to the driver level makes everything smooth, and since we do gamma correction there anyway, it makes sense to do brightness adjustment at the same place, too. Fixes #775. Signed-off-by: Gergely Nagy <algernon@keyboard.io>pull/785/head
parent
bea45d696a
commit
5024ff4066
@ -0,0 +1,77 @@
|
||||
/* -*- mode: c++ -*-
|
||||
* LED-Brightness.ino -- Example to show LED brightness control
|
||||
* Copyright (C) 2020 Keyboard.io, Inc
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <Kaleidoscope.h>
|
||||
#include <Kaleidoscope-LEDEffect-Rainbow.h>
|
||||
#include <Kaleidoscope-Macros.h>
|
||||
|
||||
// *INDENT-OFF*
|
||||
KEYMAPS(
|
||||
[0] = KEYMAP_STACKED
|
||||
(
|
||||
Key_LEDEffectNext, Key_1, Key_2, Key_3, Key_4, Key_5, Key_LEDEffectNext,
|
||||
Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab,
|
||||
Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G,
|
||||
Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape,
|
||||
|
||||
Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift,
|
||||
M(0),
|
||||
|
||||
Key_skip, Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip,
|
||||
Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals,
|
||||
Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote,
|
||||
Key_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus,
|
||||
|
||||
Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl,
|
||||
M(1)),
|
||||
)
|
||||
// *INDENT-ON*
|
||||
|
||||
KALEIDOSCOPE_INIT_PLUGINS(LEDControl,
|
||||
Macros,
|
||||
LEDRainbowWaveEffect);
|
||||
|
||||
const macro_t *macroAction(uint8_t macroIndex, uint8_t keyState) {
|
||||
if (keyToggledOn(keyState)) {
|
||||
uint8_t brightness = LEDControl.getBrightness();
|
||||
|
||||
if (macroIndex == 0) {
|
||||
if (brightness > 10)
|
||||
brightness -= 10;
|
||||
else
|
||||
brightness = 0;
|
||||
} else if (macroIndex == 1) {
|
||||
if (brightness < 245)
|
||||
brightness += 10;
|
||||
else
|
||||
brightness = 255;
|
||||
}
|
||||
|
||||
LEDControl.setBrightness(brightness);
|
||||
}
|
||||
|
||||
return MACRO_NONE;
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Kaleidoscope.setup();
|
||||
LEDRainbowWaveEffect.brightness(255);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
Kaleidoscope.loop();
|
||||
}
|
Loading…
Reference in new issue