summaryrefslogtreecommitdiffstats
path: root/quantum
diff options
context:
space:
mode:
Diffstat (limited to 'quantum')
-rw-r--r--quantum/action.c95
-rw-r--r--quantum/action_layer.c76
-rw-r--r--quantum/action_tapping.c34
-rw-r--r--quantum/action_tapping.h8
-rw-r--r--quantum/action_util.c14
-rw-r--r--quantum/backlight/backlight_avr.c8
-rw-r--r--quantum/caps_word.c80
-rw-r--r--quantum/caps_word.h43
-rw-r--r--quantum/dynamic_keymap.c69
-rw-r--r--quantum/dynamic_keymap.h6
-rw-r--r--quantum/eeconfig.c2
-rw-r--r--quantum/eeconfig.h2
-rw-r--r--quantum/encoder.c142
-rw-r--r--quantum/encoder.h34
-rw-r--r--quantum/encoder/tests/config_mock.h22
-rw-r--r--quantum/encoder/tests/config_mock_split_left_eq_right.h26
-rw-r--r--quantum/encoder/tests/config_mock_split_left_gt_right.h26
-rw-r--r--quantum/encoder/tests/config_mock_split_left_lt_right.h26
-rw-r--r--quantum/encoder/tests/config_mock_split_no_left.h26
-rw-r--r--quantum/encoder/tests/config_mock_split_no_right.h26
-rw-r--r--quantum/encoder/tests/encoder_tests.cpp36
-rw-r--r--quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp135
-rw-r--r--quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp139
-rw-r--r--quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp139
-rw-r--r--quantum/encoder/tests/encoder_tests_split_no_left.cpp (renamed from quantum/encoder/tests/encoder_tests_split.cpp)68
-rw-r--r--quantum/encoder/tests/encoder_tests_split_no_right.cpp118
-rw-r--r--quantum/encoder/tests/mock.h6
-rw-r--r--quantum/encoder/tests/mock_split.h16
-rw-r--r--quantum/encoder/tests/rules.mk53
-rw-r--r--quantum/encoder/tests/testlist.mk6
-rw-r--r--quantum/haptic.c2
-rw-r--r--quantum/joystick.c37
-rw-r--r--quantum/joystick.h17
-rw-r--r--quantum/keyboard.c27
-rw-r--r--quantum/keyboard.h36
-rw-r--r--quantum/keycode_config.h2
-rw-r--r--quantum/keymap.h6
-rw-r--r--quantum/keymap_common.c13
-rw-r--r--quantum/keymap_extras/keymap_brazilian_abnt2.h (renamed from quantum/keymap_extras/keymap_br_abnt2.h)0
-rw-r--r--quantum/keymap_extras/keymap_dvorak_programmer.h (renamed from quantum/keymap_extras/keymap_dvp.h)0
-rw-r--r--quantum/keymap_extras/keymap_french_mac_iso.h (renamed from quantum/keymap_extras/keymap_french_osx.h)0
-rw-r--r--quantum/keymap_extras/keymap_german_mac_iso.h (renamed from quantum/keymap_extras/keymap_german_osx.h)0
-rw-r--r--quantum/keymap_extras/keymap_italian_mac_ansi.h (renamed from quantum/keymap_extras/keymap_italian_osx_ansi.h)0
-rw-r--r--quantum/keymap_extras/keymap_italian_mac_iso.h (renamed from quantum/keymap_extras/keymap_italian_osx_iso.h)0
-rw-r--r--quantum/keymap_extras/keymap_japanese.h (renamed from quantum/keymap_extras/keymap_jp.h)0
-rw-r--r--quantum/keymap_extras/keymap_portuguese_mac_iso.h (renamed from quantum/keymap_extras/keymap_portuguese_osx_iso.h)0
-rw-r--r--quantum/keymap_extras/keymap_swedish_mac_ansi.h (renamed from quantum/keymap_extras/keymap_swedish_osx_ansi.h)0
-rw-r--r--quantum/keymap_extras/keymap_swedish_mac_iso.h (renamed from quantum/keymap_extras/keymap_swedish_osx_iso.h)0
-rw-r--r--quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h (renamed from quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h)0
-rw-r--r--quantum/keymap_extras/keymap_swedish_pro_mac_iso.h (renamed from quantum/keymap_extras/keymap_swedish_pro_osx_iso.h)0
-rw-r--r--quantum/keymap_extras/keymap_swiss_de.h (renamed from quantum/keymap_extras/keymap_german_ch.h)0
-rw-r--r--quantum/keymap_extras/keymap_swiss_fr.h (renamed from quantum/keymap_extras/keymap_fr_ch.h)0
-rw-r--r--quantum/keymap_extras/sendstring_brazilian_abnt2.h (renamed from quantum/keymap_extras/sendstring_br_abnt2.h)2
-rw-r--r--quantum/keymap_extras/sendstring_dvorak_programmer.h (renamed from quantum/keymap_extras/sendstring_dvp.h)2
-rw-r--r--quantum/keymap_extras/sendstring_french_mac_iso.h (renamed from quantum/keymap_extras/sendstring_french_osx.h)2
-rw-r--r--quantum/keymap_extras/sendstring_german_mac_iso.h (renamed from quantum/keymap_extras/sendstring_german_osx.h)2
-rw-r--r--quantum/keymap_extras/sendstring_italian_mac_ansi.h (renamed from quantum/keymap_extras/sendstring_italian_osx_ansi.h)2
-rw-r--r--quantum/keymap_extras/sendstring_italian_mac_iso.h (renamed from quantum/keymap_extras/sendstring_italian_osx_iso.h)2
-rw-r--r--quantum/keymap_extras/sendstring_japanese.h (renamed from quantum/keymap_extras/sendstring_jis.h)2
-rw-r--r--quantum/keymap_extras/sendstring_portuguese_mac_iso.h (renamed from quantum/keymap_extras/sendstring_portuguese_osx_iso.h)2
-rw-r--r--quantum/keymap_extras/sendstring_swiss_de.h (renamed from quantum/keymap_extras/sendstring_german_ch.h)2
-rw-r--r--quantum/keymap_extras/sendstring_swiss_fr.h (renamed from quantum/keymap_extras/sendstring_fr_ch.h)2
-rw-r--r--quantum/main.c11
-rw-r--r--quantum/mousekey.c25
-rw-r--r--quantum/painter/qff.c137
-rw-r--r--quantum/painter/qff.h88
-rw-r--r--quantum/painter/qgf.c292
-rw-r--r--quantum/painter/qgf.h136
-rw-r--r--quantum/painter/qp.c228
-rw-r--r--quantum/painter/qp.h453
-rw-r--r--quantum/painter/qp_comms.c72
-rw-r--r--quantum/painter/qp_comms.h25
-rw-r--r--quantum/painter/qp_draw.h85
-rw-r--r--quantum/painter/qp_draw_circle.c172
-rw-r--r--quantum/painter/qp_draw_codec.c142
-rw-r--r--quantum/painter/qp_draw_core.c294
-rw-r--r--quantum/painter/qp_draw_ellipse.c116
-rw-r--r--quantum/painter/qp_draw_image.c382
-rw-r--r--quantum/painter/qp_draw_text.c444
-rw-r--r--quantum/painter/qp_internal.h33
-rw-r--r--quantum/painter/qp_internal_driver.h82
-rw-r--r--quantum/painter/qp_internal_formats.h49
-rw-r--r--quantum/painter/qp_stream.c171
-rw-r--r--quantum/painter/qp_stream.h82
-rw-r--r--quantum/painter/rules.mk116
-rw-r--r--quantum/pointing_device.c13
-rw-r--r--quantum/pointing_device.h1
-rw-r--r--quantum/pointing_device_drivers.c18
-rw-r--r--quantum/process_keycode/process_auto_shift.c7
-rw-r--r--quantum/process_keycode/process_caps_word.c163
-rw-r--r--quantum/process_keycode/process_caps_word.h37
-rw-r--r--quantum/process_keycode/process_combo.c11
-rw-r--r--quantum/process_keycode/process_joystick.c36
-rw-r--r--quantum/process_keycode/process_secure.c45
-rw-r--r--quantum/process_keycode/process_secure.h15
-rw-r--r--quantum/process_keycode/process_space_cadet.c7
-rw-r--r--quantum/process_keycode/process_tap_dance.c6
-rw-r--r--quantum/process_keycode/process_unicode_common.c63
-rw-r--r--quantum/process_keycode/process_unicode_common.h1
-rw-r--r--quantum/quantum.c62
-rw-r--r--quantum/quantum.h19
-rw-r--r--quantum/quantum_keycodes.h12
-rw-r--r--quantum/rgb_matrix/animations/digital_rain_anim.h22
-rw-r--r--quantum/rgb_matrix/animations/typing_heatmap_anim.h5
-rw-r--r--quantum/rgblight/rgblight.c31
-rw-r--r--quantum/rgblight/rgblight.h26
-rw-r--r--quantum/secure.c102
-rw-r--r--quantum/secure.h79
-rw-r--r--quantum/send_string_keycodes.h463
-rw-r--r--quantum/split_common/transactions.c21
-rw-r--r--quantum/split_common/transport.h3
-rw-r--r--quantum/utf8.c46
-rw-r--r--quantum/utf8.h21
-rw-r--r--quantum/util.h8
-rw-r--r--quantum/via.c108
115 files changed, 6084 insertions, 643 deletions
diff --git a/quantum/action.c b/quantum/action.c
index 3efed443a3..4e81a5466f 100644
--- a/quantum/action.c
+++ b/quantum/action.c
@@ -14,9 +14,18 @@ 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/>.
*/
+#include <limits.h>
+
+#ifdef DEBUG_ACTION
+# include "debug.h"
+#else
+# include "nodebug.h"
+#endif
+
#include "host.h"
#include "keycode.h"
#include "keyboard.h"
+#include "keymap.h"
#include "mousekey.h"
#include "programmable_button.h"
#include "command.h"
@@ -32,12 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "backlight.h"
#endif
-#ifdef DEBUG_ACTION
-# include "debug.h"
-#else
-# include "nodebug.h"
-#endif
-
#ifdef POINTING_DEVICE_ENABLE
# include "pointing_device.h"
#endif
@@ -89,6 +92,7 @@ void action_exec(keyevent_t event) {
}
#ifdef SWAP_HANDS_ENABLE
+ // Swap hands handles both keys and encoders, if ENCODER_MAP_ENABLE is defined.
if (!IS_NOEVENT(event)) {
process_hand_swap(&event);
}
@@ -97,7 +101,7 @@ void action_exec(keyevent_t event) {
keyrecord_t record = {.event = event};
#ifndef NO_ACTION_ONESHOT
- if (!keymap_config.oneshot_disable) {
+ if (keymap_config.oneshot_enable) {
# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
if (has_oneshot_layer_timed_out()) {
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
@@ -136,27 +140,65 @@ void action_exec(keyevent_t event) {
}
#ifdef SWAP_HANDS_ENABLE
+extern const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS];
+# ifdef ENCODER_MAP_ENABLE
+extern const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS];
+# endif // ENCODER_MAP_ENABLE
+
bool swap_hands = false;
bool swap_held = false;
+bool should_swap_hands(size_t index, uint8_t *swap_state, bool pressed) {
+ size_t array_index = index / (CHAR_BIT);
+ size_t bit_index = index % (CHAR_BIT);
+ uint8_t bit_val = 1 << bit_index;
+ bool do_swap = pressed ? swap_hands : swap_