aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common/action_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/common/action_util.c')
-rw-r--r--tmk_core/common/action_util.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c
index f81877dd9..a2d6577b2 100644
--- a/tmk_core/common/action_util.c
+++ b/tmk_core/common/action_util.c
@@ -29,6 +29,7 @@ static inline void del_key_bit(uint8_t code);
29 29
30static uint8_t real_mods = 0; 30static uint8_t real_mods = 0;
31static uint8_t weak_mods = 0; 31static uint8_t weak_mods = 0;
32static uint8_t macro_mods = 0;
32 33
33#ifdef USB_6KRO_ENABLE 34#ifdef USB_6KRO_ENABLE
34#define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS) 35#define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS)
@@ -55,6 +56,7 @@ static int16_t oneshot_time = 0;
55void send_keyboard_report(void) { 56void send_keyboard_report(void) {
56 keyboard_report->mods = real_mods; 57 keyboard_report->mods = real_mods;
57 keyboard_report->mods |= weak_mods; 58 keyboard_report->mods |= weak_mods;
59 keyboard_report->mods |= macro_mods;
58#ifndef NO_ACTION_ONESHOT 60#ifndef NO_ACTION_ONESHOT
59 if (oneshot_mods) { 61 if (oneshot_mods) {
60#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) 62#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
@@ -118,6 +120,13 @@ void del_weak_mods(uint8_t mods) { weak_mods &= ~mods; }
118void set_weak_mods(uint8_t mods) { weak_mods = mods; } 120void set_weak_mods(uint8_t mods) { weak_mods = mods; }
119void clear_weak_mods(void) { weak_mods = 0; } 121void clear_weak_mods(void) { weak_mods = 0; }
120 122
123/* macro modifier */
124uint8_t get_macro_mods(void) { return macro_mods; }
125void add_macro_mods(uint8_t mods) { macro_mods |= mods; }
126void del_macro_mods(uint8_t mods) { macro_mods &= ~mods; }
127void set_macro_mods(uint8_t mods) { macro_mods = mods; }
128void clear_macro_mods(void) { macro_mods = 0; }
129
121/* Oneshot modifier */ 130/* Oneshot modifier */
122#ifndef NO_ACTION_ONESHOT 131#ifndef NO_ACTION_ONESHOT
123void set_oneshot_mods(uint8_t mods) 132void set_oneshot_mods(uint8_t mods)