summaryrefslogtreecommitdiff
path: root/quantum/via.h
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/via.h')
-rw-r--r--quantum/via.h113
1 files changed, 61 insertions, 52 deletions
diff --git a/quantum/via.h b/quantum/via.h
index f9a8017b24..012547e055 100644
--- a/quantum/via.h
+++ b/quantum/via.h
@@ -16,7 +16,7 @@
#pragma once
-#include <tmk_core/common/eeconfig.h> // for EECONFIG_SIZE
+#include <tmk_core/common/eeconfig.h> // for EECONFIG_SIZE
// Keyboard level code can change where VIA stores the magic.
// The magic is the build date YYMMDD encoded as BCD in 3 bytes,
@@ -25,60 +25,70 @@
// The only reason this is important is in case EEPROM usage changes
// and the EEPROM was not explicitly reset by bootmagic lite.
#ifndef VIA_EEPROM_MAGIC_ADDR
-# define VIA_EEPROM_MAGIC_ADDR (EECONFIG_SIZE)
+# define VIA_EEPROM_MAGIC_ADDR (EECONFIG_SIZE)
#endif
-#define VIA_EEPROM_LAYOUT_OPTIONS_ADDR (VIA_EEPROM_MAGIC_ADDR+3)
+#define VIA_EEPROM_LAYOUT_OPTIONS_ADDR (VIA_EEPROM_MAGIC_ADDR + 3)
// Changing the layout options size after release will invalidate EEPROM,
// but this is something that should be set correctly on initial implementation.
// 1 byte is enough for most uses (i.e. 8 binary states, or 6 binary + 1 ternary/quaternary )
#ifndef VIA_EEPROM_LAYOUT_OPTIONS_SIZE
-# define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 1
+# define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 1
#endif
// The end of the EEPROM memory used by VIA
// By default, dynamic keymaps will start at this if there is no
// custom config
-#define VIA_EEPROM_CUSTOM_CONFIG_ADDR (VIA_EEPROM_LAYOUT_OPTIONS_ADDR+VIA_EEPROM_LAYOUT_OPTIONS_SIZE)
+#define VIA_EEPROM_CUSTOM_CONFIG_ADDR (VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE)
#ifndef VIA_EEPROM_CUSTOM_CONFIG_SIZE
-# define VIA_EEPROM_CUSTOM_CONFIG_SIZE 0
+# define VIA_EEPROM_CUSTOM_CONFIG_SIZE 0
#endif
// This is changed only when the command IDs change,
-// so VIA Configurator can detect compatible firmware.
+// so VIA Configurator can detect compatible firmware.
#define VIA_PROTOCOL_VERSION 0x0009
-enum via_command_id
-{
- id_get_protocol_version = 0x01, // always 0x01
- id_get_keyboard_value,
- id_set_keyboard_value,
- id_dynamic_keymap_get_keycode,
- id_dynamic_keymap_set_keycode,
- id_dynamic_keymap_reset,
- id_backlight_config_set_value,
- id_backlight_config_get_value,
- id_backlight_config_save,
- id_eeprom_reset,
- id_bootloader_jump,
- id_dynamic_keymap_macro_get_count,
- id_dynamic_keymap_macro_get_buffer_size,
- id_dynamic_keymap_macro_get_buffer,
- id_dynamic_keymap_macro_set_buffer,
- id_dynamic_keymap_macro_reset,
- id_dynamic_keymap_get_layer_count,
- id_dynamic_keymap_get_buffer,
- id_dynamic_keymap_set_buffer,
- id_unhandled = 0xFF,
+enum via_command_id {
+ id_get_protocol_version = 0x01, // always 0x01
+ id_get_keyboard_value = 0x02,
+ id_set_keyboard_value = 0x03,
+ id_dynamic_keymap_get_keycode = 0x04,
+ id_dynamic_keymap_set_keycode = 0x05,
+ id_dynamic_keymap_reset = 0x06,
+ id_lighting_set_value = 0x07,
+ id_lighting_get_value = 0x08,
+ id_lighting_save = 0x09,
+ id_eeprom_reset = 0x0A,
+ id_bootloader_jump = 0x0B,
+ id_dynamic_keymap_macro_get_count = 0x0C,
+ id_dynamic_keymap_macro_get_buffer_size = 0x0D,
+ id_dynamic_keymap_macro_get_buffer = 0x0E,
+ id_dynamic_keymap_macro_set_buffer = 0x0F,
+ id_dynamic_keymap_macro_reset = 0x10,
+ id_dynamic_keymap_get_layer_count = 0x11,
+ id_dynamic_keymap_get_buffer = 0x12,
+ id_dynamic_keymap_set_buffer = 0x13,
+ id_unhandled = 0xFF,
};
-enum via_keyboard_value_id
-{
- id_uptime = 0x01,
- id_layout_options,
- id_switch_matrix_state
+enum via_keyboard_value_id {
+ id_uptime = 0x01, //
+ id_layout_options = 0x02,
+ id_switch_matrix_state = 0x03
+};
+
+enum via_lighting_value {
+ // QMK BACKLIGHT
+ id_qmk_backlight_brightness = 0x09,
+ id_qmk_backlight_effect = 0x0A,
+
+ // QMK RGBLIGHT
+ id_qmk_rgblight_brightness = 0x80,
+ id_qmk_rgblight_effect = 0x81,
+ id_qmk_rgblight_effect_speed = 0x82,
+ id_qmk_rgblight_color = 0x83,
};
// Can't use SAFE_RANGE here, it might change if someone adds
@@ -108,22 +118,22 @@ enum via_keycodes {
};
enum user_keycodes {
- USER00 = 0x5F80,
- USER01,
- USER02,
- USER03,
- USER04,
- USER05,
- USER06,
- USER07,
- USER08,
- USER09,
- USER10,
- USER11,
- USER12,
- USER13,
- USER14,
- USER15,
+ USER00 = 0x5F80,
+ USER01,
+ USER02,
+ USER03,
+ USER04,
+ USER05,
+ USER06,
+ USER07,
+ USER08,
+ USER09,
+ USER10,
+ USER11,
+ USER12,
+ USER13,
+ USER14,
+ USER15,
};
// Can be called in an overriding via_init_kb() to test if keyboard level code usage of
@@ -144,8 +154,7 @@ void via_init(void);
// Used by VIA to store and retrieve the layout options.
uint32_t via_get_layout_options(void);
-void via_set_layout_options(uint32_t value);
+void via_set_layout_options(uint32_t value);
// Called by QMK core to process VIA-specific keycodes.
bool process_record_via(uint16_t keycode, keyrecord_t *record);
-