diff options
author | Drashna Jaelre <drashna@live.com> | 2022-01-30 13:29:43 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-30 13:29:43 -0800 |
commit | d1cf218b9dad0d35413349e7b78ff21612958579 (patch) | |
tree | e976b14472e3c2099381013920bd56cb0c015905 /keyboards/handwired/tractyl_manuform/tractyl_manuform.h | |
parent | b57f8a8b9fd50bdb39473e7730400e14b879da72 (diff) |
[Keyboard] Overhaul Tractyl Manuform (#16134)
Diffstat (limited to 'keyboards/handwired/tractyl_manuform/tractyl_manuform.h')
-rw-r--r-- | keyboards/handwired/tractyl_manuform/tractyl_manuform.h | 118 |
1 files changed, 92 insertions, 26 deletions
diff --git a/keyboards/handwired/tractyl_manuform/tractyl_manuform.h b/keyboards/handwired/tractyl_manuform/tractyl_manuform.h index 3f8aca4551..197aee985e 100644 --- a/keyboards/handwired/tractyl_manuform/tractyl_manuform.h +++ b/keyboards/handwired/tractyl_manuform/tractyl_manuform.h @@ -17,7 +17,6 @@ #pragma once #include "quantum.h" -#include "pointing_device.h" #if defined(KEYBOARD_handwired_tractyl_manuform_5x6_right) # include "5x6_right.h" @@ -25,33 +24,100 @@ # include "4x6_right.h" #endif -typedef union { - uint32_t raw; - struct { - uint8_t dpi_config; - }; -} keyboard_config_t; - -typedef union { - uint32_t raw; - struct { - uint16_t device_cpi; - }; -} kb_config_data_t; - -extern keyboard_config_t keyboard_config; -extern kb_config_data_t kb_config_data; - -enum ploopy_keycodes { - DPI_CONFIG = SAFE_RANGE, +#ifdef POINTING_DEVICE_ENABLE +# ifndef NO_CHARYBDIS_KEYCODES +enum charybdis_keycodes { +# ifdef VIA_ENABLE + POINTER_DEFAULT_DPI_FORWARD = USER00, +# else + POINTER_DEFAULT_DPI_FORWARD = SAFE_RANGE, +# endif // VIA_ENABLE + POINTER_DEFAULT_DPI_REVERSE, + POINTER_SNIPING_DPI_FORWARD, + POINTER_SNIPING_DPI_REVERSE, + SNIPING_MODE, + SNIPING_MODE_TOGGLE, + DRAGSCROLL_MODE, + DRAGSCROLL_MODE_TOGGLE, KEYMAP_SAFE_RANGE, }; +# define CHARYBDIS_SAFE_RANGE KEYMAP_SAFE_RANGE +# define DPI_MOD POINTER_DEFAULT_DPI_FORWARD +# define DPI_RMOD POINTER_DEFAULT_DPI_REVERSE +# define S_D_MOD POINTER_SNIPING_DPI_FORWARD +# define S_D_RMOD POINTER_SNIPING_DPI_REVERSE +# define SNIPING SNIPING_MODE +# define SNP_TOG SNIPING_MODE_TOGGLE +# define DRGSCRL DRAGSCROLL_MODE +# define DRG_TOG DRAGSCROLL_MODE_TOGGLE +# endif // !NO_CHARYBDIS_KEYCODES -void matrix_init_sub_kb(void); -void matrix_scan_sub_kb(void); +/** \brief Return the current DPI value for the pointer's default mode. */ +uint16_t charybdis_get_pointer_default_dpi(void); + +/** + * \brief Update the pointer's default DPI to the next or previous step. + * + * Increases the DPI value if `forward` is `true`, decreases it otherwise. + * The increment/decrement steps are equal to CHARYBDIS_DEFAULT_DPI_CONFIG_STEP. + * + * The new value is persisted in EEPROM. + */ +void charybdis_cycle_pointer_default_dpi(bool forward); + +/** + * \brief Same as `charybdis_cycle_pointer_default_dpi`, but do not write to + * EEPROM. + * + * This means that reseting the board will revert the value to the last + * persisted one. + */ +void charybdis_cycle_pointer_default_dpi_noeeprom(bool forward); + +/** \brief Return the current DPI value for the pointer's sniper-mode. */ +uint16_t charybdis_get_pointer_sniping_dpi(void); + +/** + * \brief Update the pointer's sniper-mode DPI to the next or previous step. + * + * Increases the DPI value if `forward` is `true`, decreases it otherwise. + * The increment/decrement steps are equal to CHARYBDIS_SNIPING_DPI_CONFIG_STEP. + * + * The new value is persisted in EEPROM. + */ +void charybdis_cycle_pointer_sniping_dpi(bool forward); + +/** + * \brief Same as `charybdis_cycle_pointer_sniping_dpi`, but do not write to + * EEPROM. + * + * This means that reseting the board will revert the value to the last + * persisted one. + */ +void charybdis_cycle_pointer_sniping_dpi_noeeprom(bool forward); -void keyboard_pre_init_sync(void); -void keyboard_post_init_sync(void); -void housekeeping_task_sync(void); +/** \brief Whether sniper-mode is enabled. */ +bool charybdis_get_pointer_sniping_enabled(void); + +/** + * \brief Enable/disable sniper mode. + * + * When sniper mode is enabled the dpi is reduced to slow down the pointer for + * more accurate movements. + */ +void charybdis_set_pointer_sniping_enabled(bool enable); -void kb_config_sync_handler(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer); +/** \brief Whether drag-scroll is enabled. */ +bool charybdis_get_pointer_dragscroll_enabled(void); + +/** + * \brief Enable/disable drag-scroll mode. + * + * When drag-scroll mode is enabled, horizontal and vertical pointer movements + * are translated into horizontal and vertical scroll movements. + */ +void charybdis_set_pointer_dragscroll_enabled(bool enable); +#endif // POINTING_DEVICE_ENABLE + +void matrix_init_sub_kb(void); +void matrix_scan_sub_kb(void); |