commit
9d358492e1
@ -0,0 +1,39 @@
|
|||||||
|
# Kaleidoscope-LEDEffect-Breathe
|
||||||
|
|
||||||
|
Provides a breathing effect for the keyboard. Breathe in, breathe out.
|
||||||
|
|
||||||
|
## Using the extension
|
||||||
|
|
||||||
|
To use the plugin, include the header, and tell the firmware to use it:
|
||||||
|
|
||||||
|
```c++
|
||||||
|
#include <Kaleidoscope-LEDControl.h>
|
||||||
|
#include <Kaleidoscope-LEDEffect-Breathe.h>
|
||||||
|
|
||||||
|
KALEIDOSCOPE_INIT_PLUGINS(LEDControl,
|
||||||
|
LEDBreatheEffect);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Kaleidoscope.setup();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Plugin properties
|
||||||
|
|
||||||
|
The plugin provides the `LEDBreatheEffect` object, which has a single property:
|
||||||
|
|
||||||
|
### `.hue`
|
||||||
|
|
||||||
|
> The hue of the breathe effect.
|
||||||
|
>
|
||||||
|
> Defaults to 170, a blue hue.
|
||||||
|
|
||||||
|
### `.saturation`
|
||||||
|
|
||||||
|
> The color saturation of the breathe effect.
|
||||||
|
>
|
||||||
|
> Defaults to 255, the maximum.
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
* [Kaleidoscope-LEDControl](LEDControl.md)
|
@ -0,0 +1,19 @@
|
|||||||
|
/* Kaleidoscope-LEDEffect-Breathe - A breathing effect on the LEDs, for Kaleidoscope.
|
||||||
|
* Copyright (C) 2017-2018 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "kaleidoscope/plugin/LEDEffect-Breathe.h"
|
@ -0,0 +1,35 @@
|
|||||||
|
/* Kaleidoscope-LEDEffect-Breathe - A breathing effect on the LEDs, for Kaleidoscope.
|
||||||
|
* Copyright (C) 2017-2018 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-LEDEffect-Breathe.h"
|
||||||
|
|
||||||
|
#define UPDATE_INTERVAL 50 // milliseconds between two LED updates to avoid overloading; 20 fps
|
||||||
|
|
||||||
|
namespace kaleidoscope {
|
||||||
|
namespace plugin {
|
||||||
|
void LEDBreatheEffect::update(void) {
|
||||||
|
uint16_t now = Kaleidoscope.millisAtCycleStart();
|
||||||
|
if ((now - last_update_) < UPDATE_INTERVAL)
|
||||||
|
return;
|
||||||
|
last_update_ = now;
|
||||||
|
|
||||||
|
cRGB color = breath_compute(hue, saturation);
|
||||||
|
::LEDControl.set_all_leds_to(color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
kaleidoscope::plugin::LEDBreatheEffect LEDBreatheEffect;
|
@ -0,0 +1,39 @@
|
|||||||
|
/* Kaleidoscope-LEDEffect-Breathe - A breathing effect on the LEDs, for Kaleidoscope.
|
||||||
|
* Copyright (C) 2017-2018 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Kaleidoscope-LEDControl.h"
|
||||||
|
|
||||||
|
namespace kaleidoscope {
|
||||||
|
namespace plugin {
|
||||||
|
class LEDBreatheEffect : public LEDMode {
|
||||||
|
public:
|
||||||
|
LEDBreatheEffect(void) {}
|
||||||
|
|
||||||
|
uint8_t hue = 170;
|
||||||
|
uint8_t saturation = 255;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void update(void) final;
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint16_t last_update_ = 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extern kaleidoscope::plugin::LEDBreatheEffect LEDBreatheEffect;
|
Loading…
Reference in new issue