Merge remote-tracking branch 'plugin/LEDEffect-Breathe/f/monorepo' into f/monorepo

pull/365/head
Gergely Nagy 6 years ago
commit 9d358492e1
No known key found for this signature in database
GPG Key ID: AC1E90BAC433F68F

@ -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…
Cancel
Save