Kaleidoscope
Heatmap.h
Go to the documentation of this file.
1 /* -*- mode: c++ -*-
2  * Kaleidoscope-Heatmap -- Heatmap LED effect for Kaleidoscope.
3  * Copyright (C) 2016, 2017 Gergely Nagy
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #pragma once
20 
21 #include <Kaleidoscope.h>
23 
24 namespace kaleidoscope {
25 class Heatmap : public LEDMode {
26  public:
27  Heatmap(void);
28 
29  static uint16_t update_delay;
30 
31  void begin(void) final;
32  void update(void) final;
33  private:
34  static uint8_t heatmap_[ROWS][COLS];
35  static uint16_t total_keys_;
36  static uint8_t highest_count_;
37  static uint32_t end_time_;
38 
39  static const float heat_colors_[][3];
40 
41  static void shiftStats(void);
42  static cRGB computeColor(float v);
43 
44  static Key eventHook(Key mapped_key, byte row, byte col, uint8_t key_state);
45  static void loopHook(bool is_post_clear);
46 };
47 }
48 
#define ROWS
Definition: Kaleidoscope-Hardware-Model01.h:9
Definition: hid.cpp:4
byte byte col
Definition: TapDance.cpp:229
Definition: Heatmap.h:25
kaleidoscope::Heatmap HeatmapEffect
Definition: Heatmap.cpp:116
Definition: key_defs.h:13
Definition: Kaleidoscope-LEDControl.h:11
Heatmap(void)
Definition: Heatmap.cpp:66
static uint16_t update_delay
Definition: Heatmap.h:29
void update(void) final
Definition: Heatmap.cpp:99
Definition: Kaleidoscope-Hardware-Shortcut.h:29
#define COLS
Definition: Kaleidoscope-Hardware-Model01.h:8
byte row
Definition: TapDance.cpp:229
void begin(void) final
Definition: Heatmap.cpp:69