summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-03-19 16:28:13 +0100
committertmk <nobody@nowhere>2013-03-19 16:28:13 +0100
commit9757f960f9f50841df6651a1a52f63eb9aae242b (patch)
tree1708fcb5becaff6b7eb007c826408cf63dbf3bf2 /common
parentb057511f45de020c43021f2991569a53c2b929c9 (diff)
downloadqmk_firmware-9757f960f9f50841df6651a1a52f63eb9aae242b.tar.gz
qmk_firmware-9757f960f9f50841df6651a1a52f63eb9aae242b.tar.xz
Add NO_ACTION_TAPPING and NO_ACTION_MACRO config options
Diffstat (limited to 'common')
-rw-r--r--common/action.c33
-rw-r--r--common/action_macro.c3
-rw-r--r--common/action_macro.h4
3 files changed, 34 insertions, 6 deletions
diff --git a/common/action.c b/common/action.c
index 1b84d1e88..eda3a6d32 100644
--- a/common/action.c
+++ b/common/action.c
@@ -30,14 +30,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
static void process_action(keyrecord_t *record);
+#ifndef NO_ACTION_TAPPING
static bool process_tapping(keyrecord_t *record);
static void waiting_buffer_scan_tap(void);
+#endif
static void debug_event(keyevent_t event);
static void debug_record(keyrecord_t record);
static void debug_action(action_t action);
+#ifndef NO_ACTION_TAPPING
static void debug_tapping_key(void);
static void debug_waiting_buffer(void);
+#endif
/*
@@ -53,6 +57,7 @@ static void debug_waiting_buffer(void);
#define TAPPING_TOGGLE 5
#endif
+#ifndef NO_ACTION_TAPPING
/* stores a key event of current tap. */
static keyrecord_t tapping_key = {};
@@ -158,7 +163,7 @@ static void oneshot_toggle(void)
{
oneshot_state.disabled = !oneshot_state.disabled;
}
-
+#endif
void action_exec(keyevent_t event)
@@ -170,6 +175,7 @@ void action_exec(keyevent_t event)
keyrecord_t record = { .event = event };
+#ifndef NO_ACTION_TAPPING
// pre-process on tapping
if (process_tapping(&record)) {
if (!IS_NOEVENT(record.event)) {
@@ -202,6 +208,12 @@ void action_exec(keyevent_t event)
if (!IS_NOEVENT(event)) {
debug("\n");
}
+#else
+ process_action(&record);
+ if (!IS_NOEVENT(record.event)) {
+ debug("processed: "); debug_record(record); debug("\n");
+ }
+#endif
}
static void process_action(keyrecord_t *record)
@@ -244,6 +256,7 @@ static void process_action(keyrecord_t *record)
}
}
break;
+#ifndef NO_ACTION_TAPPING
case ACT_LMODS_TAP:
case ACT_RMODS_TAP:
{
@@ -319,10 +332,11 @@ static void process_action(keyrecord_t *record)
}
}
break;
+#endif
+#ifdef EXTRAKEY_ENABLE
/* other HID usage */
case ACT_USAGE:
-#ifdef EXTRAKEY_ENABLE
switch (action.usage.page) {
case PAGE_SYSTEM:
if (event.pressed) {
@@ -339,12 +353,12 @@ static void process_action(keyrecord_t *record)
}
break;
}
-#endif
break;
+#endif
+#ifdef MOUSEKEY_ENABLE
/* Mouse key */
case ACT_MOUSEKEY:
-#ifdef MOUSEKEY_ENABLE
if (event.pressed) {
mousekey_on(action.key.code);
mousekey_send();
@@ -352,8 +366,8 @@ static void process_action(keyrecord_t *record)
mousekey_off(action.key.code);
mousekey_send();
}
-#endif
break;
+#endif
case ACT_KEYMAP:
switch (action.layer.code) {
@@ -687,6 +701,7 @@ static void process_action(keyrecord_t *record)
}
}
+#ifndef NO_ACTION_TAPPING
/* Tapping
*
* Rule: Tap key is typed(pressed and released) within TAPPING_TERM.
@@ -881,6 +896,7 @@ static void waiting_buffer_scan_tap(void)
}
}
}
+#endif
@@ -908,6 +924,7 @@ void register_code(uint8_t code)
// TODO: should push command_proc out of this block?
if (command_proc(code)) return;
+#ifndef NO_ACTION_TAPPING
if (oneshot_state.mods && oneshot_state.ready && !oneshot_state.disabled) {
uint8_t tmp_mods = host_get_mods();
host_add_mods(oneshot_state.mods);
@@ -916,7 +933,9 @@ void register_code(uint8_t code)
host_set_mods(tmp_mods);
oneshot_state.ready = false;
- } else {
+ } else
+#endif
+ {
host_add_key(code);
host_send_keyboard_report();
}
@@ -1064,6 +1083,7 @@ static void debug_action(action_t action)
debug_hex8(action.kind.param & 0xff);
debug("]");
}
+#ifndef NO_ACTION_TAPPING
static void debug_tapping_key(void)
{
debug("TAPPING_KEY="); debug_record(tapping_key); debug("\n");
@@ -1076,3 +1096,4 @@ static void debug_waiting_buffer(void)
}
debug("}\n");
}
+#endif
diff --git a/common/action_macro.c b/common/action_macro.c
index ca7ffa822..6d81a1efb 100644
--- a/common/action_macro.c
+++ b/common/action_macro.c
@@ -20,6 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "action_macro.h"
+#ifndef NO_ACTION_MACRO
+
#define MACRO_READ() (macro = pgm_read_byte(macro_p++))
void action_macro_play(const prog_macro_t *macro_p)
{
@@ -64,3 +66,4 @@ void action_macro_play(const prog_macro_t *macro_p)
{ uint8_t ms = interval; while (ms--) _delay_ms(1); }
}
}
+#endif
diff --git a/common/action_macro.h b/common/action_macro.h
index db6577959..ee5c7c426 100644
--- a/common/action_macro.h
+++ b/common/action_macro.h
@@ -28,7 +28,11 @@ typedef uint8_t macro_t;
typedef macro_t prog_macro_t PROGMEM;
+#ifndef NO_ACTION_MACRO
void action_macro_play(const prog_macro_t *macro);
+#else
+#define action_macro_play(macro)
+#endif