From 3cc3c8831326cc50619d6f4e99de11c54b7376c9 Mon Sep 17 00:00:00 2001 From: dakkar Date: Fri, 15 Feb 2019 14:59:32 +0000 Subject: start of the "color picker" toy --- Model01-Firmware.ino | 2 ++ color-picker.h | 26 ++++++++++++++++++++++++++ combos.h | 17 +++++++++++++++-- 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 color-picker.h diff --git a/Model01-Firmware.ino b/Model01-Firmware.ino index a3d6d95..5cda263 100644 --- a/Model01-Firmware.ino +++ b/Model01-Firmware.ino @@ -10,6 +10,7 @@ #include "keymap-wrapper.h" #include "color-themes.h" +#include "color-picker.h" /* plugins */ #include "kaleidoscope/plugin/EEPROM-Settings.h" @@ -31,6 +32,7 @@ KALEIDOSCOPE_INIT_PLUGINS( LEDControl, DakkarColorDark, DakkarColorBright, + theColorPicker, Macros, MouseKeys, diff --git a/color-picker.h b/color-picker.h new file mode 100644 index 0000000..9782ef7 --- /dev/null +++ b/color-picker.h @@ -0,0 +1,26 @@ +// -*- mode: c++ -*- +#pragma once + +#include + +class ColorPicker : public kaleidoscope::Plugin { +public: + ColorPicker(void) : is_active(false), current_index(0), colors{}, map{} { } + + void toggle(void) { is_active = !is_active; } + + kaleidoscope::EventHandlerResult onKeyswitchEvent(Key &mapped_key, byte row, byte col, uint8_t key_state) { + if (!Kaleidoscope.has_leds || !is_active) + return kaleidoscope::EventHandlerResult::OK; + + return kaleidoscope::EventHandlerResult::EVENT_CONSUMED; + } + +private: + bool is_active; + uint8_t current_index; + cRGB colors[16]; + uint8_t map[ROWS][COLS]; +}; + +ColorPicker theColorPicker; diff --git a/combos.h b/combos.h index 38d455c..242e274 100644 --- a/combos.h +++ b/combos.h @@ -3,18 +3,31 @@ #include "kaleidoscope/plugin/MagicCombo.h" #include "kaleidoscope/plugin/USB-Quirks.h" +#include "color-picker.h" enum { // Toggle between Boot (6-key rollover; for BIOSes and early boot) and NKRO // mode. - COMBO_TOGGLE_NKRO_MODE + COMBO_TOGGLE_NKRO_MODE, + COMBO_TOGGLE_COLOR_PICKER }; static void toggleKeyboardProtocol(uint8_t combo_index) { USBQuirks.toggleKeyboardProtocol(); } -USE_MAGIC_COMBOS({.action = toggleKeyboardProtocol, +static void toggleColorPicker(uint8_t combo_index) { + theColorPicker.toggle(); +} + +USE_MAGIC_COMBOS( + { + .action = toggleKeyboardProtocol, // Left Fn + Esc + Shift .keys = { R3C6, R2C6, R3C7 } + }, + { + .action = toggleColorPicker, + // Left Fn + Right Fn + .keys = { R3C6, R3C9 } }); -- cgit v1.2.3