From 42245651e7515c0d323761c97e0f0d35ee6ff35a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 8 Dec 2023 15:57:34 +0000 Subject: Align Dip Switch feature (#22625) --- quantum/dip_switch.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'quantum/dip_switch.h') diff --git a/quantum/dip_switch.h b/quantum/dip_switch.h index 6e79dcb0bf..ee5b550ada 100644 --- a/quantum/dip_switch.h +++ b/quantum/dip_switch.h @@ -20,11 +20,29 @@ #include #include +#include "gpio.h" +#include "util.h" + +#if defined(DIP_SWITCH_PINS) +# define NUM_DIP_SWITCHES ARRAY_SIZE(((pin_t[])DIP_SWITCH_PINS)) +#elif defined(DIP_SWITCH_MATRIX_GRID) +typedef struct matrix_intersection_t { + uint8_t row; + uint8_t col; +} matrix_intersection_t; +# define NUM_DIP_SWITCHES ARRAY_SIZE(((matrix_intersection_t[])DIP_SWITCH_MATRIX_GRID)) +#endif + +#ifndef NUM_DIP_SWITCHES +# define NUM_DIP_SWITCHES 0 +#endif bool dip_switch_update_kb(uint8_t index, bool active); bool dip_switch_update_user(uint8_t index, bool active); bool dip_switch_update_mask_user(uint32_t state); bool dip_switch_update_mask_kb(uint32_t state); -void dip_switch_init(void); void dip_switch_read(bool forced); + +void dip_switch_init(void); +void dip_switch_task(void); -- cgit v1.2.3 From 4682226e20d17437c0a6f67f5d6160432074d948 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 11 Dec 2023 23:06:18 +0000 Subject: Keymap introspection for Dip Switches (#22543) --- quantum/dip_switch.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'quantum/dip_switch.h') diff --git a/quantum/dip_switch.h b/quantum/dip_switch.h index ee5b550ada..7629859359 100644 --- a/quantum/dip_switch.h +++ b/quantum/dip_switch.h @@ -46,3 +46,10 @@ void dip_switch_read(bool forced); void dip_switch_init(void); void dip_switch_task(void); + +#ifdef DIP_SWITCH_MAP_ENABLE +# define NUM_DIP_STATES 2 +# define DIP_SWITCH_OFF_ON(off, on) \ + { (off), (on) } +extern const uint16_t dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES]; +#endif // DIP_SWITCH_MAP_ENABLE -- cgit v1.2.3