diff options
| author | tmk <nobody@nowhere> | 2013-03-20 00:28:13 +0900 | 
|---|---|---|
| committer | tmk <nobody@nowhere> | 2013-03-20 00:28:13 +0900 | 
| commit | 9757f960f9f50841df6651a1a52f63eb9aae242b (patch) | |
| tree | 1708fcb5becaff6b7eb007c826408cf63dbf3bf2 | |
| parent | b057511f45de020c43021f2991569a53c2b929c9 (diff) | |
| download | firmware-9757f960f9f50841df6651a1a52f63eb9aae242b.tar.gz firmware-9757f960f9f50841df6651a1a52f63eb9aae242b.tar.bz2 firmware-9757f960f9f50841df6651a1a52f63eb9aae242b.zip | |
Add NO_ACTION_TAPPING and NO_ACTION_MACRO config options
| -rw-r--r-- | common/action.c | 33 | ||||
| -rw-r--r-- | common/action_macro.c | 3 | ||||
| -rw-r--r-- | common/action_macro.h | 4 | ||||
| -rw-r--r-- | keyboard/gh60/config.h | 2 | 
4 files changed, 36 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 diff --git a/keyboard/gh60/config.h b/keyboard/gh60/config.h index bb4277ae6..bf5807644 100644 --- a/keyboard/gh60/config.h +++ b/keyboard/gh60/config.h @@ -62,5 +62,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  //#define NO_PRINT  #define NO_ACTION_OVERLAY +#define NO_ACTION_TAPPING +#define NO_ACTION_MACRO  #endif | 
