summaryrefslogtreecommitdiffstats
path: root/common/action_util.h
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-10-04 03:30:09 +0900
committertmk <nobody@nowhere>2013-10-04 16:04:31 +0900
commitd52d554360d3bf06189bfd4f386fa99348d8a0a8 (patch)
treeb05d27552402f371e61aa0f29906a60c87e213ad /common/action_util.h
parentcb434cfebc607db15b52a42adae6423bd40f1f98 (diff)
Fix mod stuck of MODS_KEY when leaving layer #62
- Add action_util.c and remove action_oneshot.c - Add oneshot_mods for MODS_ONESHOT - Add weak_mods for MODS_KEY and MACRO - weak_mods is cleared when layer switching
Diffstat (limited to 'common/action_util.h')
-rw-r--r--common/action_util.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/common/action_util.h b/common/action_util.h
new file mode 100644
index 0000000000..939bc2b662
--- /dev/null
+++ b/common/action_util.h
@@ -0,0 +1,56 @@
+/*
+Copyright 2013 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef ACTION_UTIL_H
+#define ACTION_UTIL_H
+
+#include <stdint.h>
+
+extern report_keyboard_t *keyboard_report;
+
+void send_keyboard_report(void);
+
+/* key */
+void add_key(uint8_t key);
+void del_key(uint8_t key);
+void clear_keys(void);
+
+/* modifier */
+uint8_t get_mods(void);
+void add_mods(uint8_t mods);
+void del_mods(uint8_t mods);
+void set_mods(uint8_t mods);
+void clear_mods(void);
+
+/* weak modifier */
+uint8_t get_weak_mods(void);
+void add_weak_mods(uint8_t mods);
+void del_weak_mods(uint8_t mods);
+void set_weak_mods(uint8_t mods);
+void clear_weak_mods(void);
+
+/* oneshot modifier */
+void set_oneshot_mods(uint8_t mods);
+void clear_oneshot_mods(void);
+void oneshot_toggle(void);
+void oneshot_enable(void);
+void oneshot_disable(void);
+
+/* inspect */
+uint8_t has_anykey(void);
+uint8_t has_anymod(void);
+uint8_t get_first_key(void);
+#endif