summaryrefslogtreecommitdiff
path: root/tmk_core/common/action_util.c
diff options
context:
space:
mode:
authorWojciech Siewierski <wojciech.siewierski@onet.pl>2016-04-03 11:14:08 +0200
committerWojciech Siewierski <wojciech.siewierski@onet.pl>2016-04-03 11:23:00 +0200
commit47dd29513eeec7b7f639bef6df441a905ce8bacb (patch)
tree29170847273e786384bd3d7c7781e67dc4335bbb /tmk_core/common/action_util.c
parent8ef14d09b8451b3f2a77e6f019922eae0ac43642 (diff)
parent8d39263d2444f0273327902684c802b218efb7b6 (diff)
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware into modifier-release-fix
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 f81877dd9f..a2d6577b24 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);
static uint8_t real_mods = 0;
static uint8_t weak_mods = 0;
+static uint8_t macro_mods = 0;
#ifdef USB_6KRO_ENABLE
#define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS)
@@ -55,6 +56,7 @@ static int16_t oneshot_time = 0;
void send_keyboard_report(void) {
keyboard_report->mods = real_mods;
keyboard_report->mods |= weak_mods;
+ keyboard_report->mods |= macro_mods;
#ifndef NO_ACTION_ONESHOT
if (oneshot_mods) {
#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
@@ -118,6 +120,13 @@ void del_weak_mods(uint8_t mods) { weak_mods &= ~mods; }
void set_weak_mods(uint8_t mods) { weak_mods = mods; }
void clear_weak_mods(void) { weak_mods = 0; }
+/* macro modifier */
+uint8_t get_macro_mods(void) { return macro_mods; }
+void add_macro_mods(uint8_t mods) { macro_mods |= mods; }
+void del_macro_mods(uint8_t mods) { macro_mods &= ~mods; }
+void set_macro_mods(uint8_t mods) { macro_mods = mods; }
+void clear_macro_mods(void) { macro_mods = 0; }
+
/* Oneshot modifier */
#ifndef NO_ACTION_ONESHOT
void set_oneshot_mods(uint8_t mods)