aboutsummaryrefslogtreecommitdiff
path: root/jack/jack.c
diff options
context:
space:
mode:
Diffstat (limited to 'jack/jack.c')
-rw-r--r--jack/jack.c67
1 files changed, 28 insertions, 39 deletions
diff --git a/jack/jack.c b/jack/jack.c
index f41f50a..274a011 100644
--- a/jack/jack.c
+++ b/jack/jack.c
@@ -2,31 +2,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "jack.h"
-tap_dance_action_t tap_dance_actions[] = {
- [EM_DASH_MINS] = ACTION_TAP_DANCE_FN(em_dash_mins),
- [PLY_NXT_PRV] = ACTION_TAP_DANCE_FN(ply_nxt_prv),
- [PASTE_RAISE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, raise_paste, td_reset),
- [CBRACKET] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR),
- [SBRACKET] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
-};
-
-#define CMB(name, action, ...) name,
-enum combos {
-#include "combos.def"
-};
-#undef CMB
-
-#define CMB(name, action, ...) \
- uint16_t const name##_combo[] PROGMEM = {__VA_ARGS__, COMBO_END};
-#include "combos.def"
-#undef CMB
-
-#define CMB(name, action, ...) [name] = COMBO(name##_combo, action),
-combo_t key_combos[] = {
-#include "combos.def"
-};
-#undef CMB
-
#if defined(SPLIT_KEYBOARD) && defined(OLED_ENABLE)
#include "transactions.h"
extern char keylog_str[KEYLOG_LEN + 1];
@@ -37,25 +12,31 @@ void keylogger_sync(uint8_t initiator2target_buffer_size,
if (initiator2target_buffer_size == 5)
memcpy(&keylog_str, initiator2target_buffer, initiator2target_buffer_size);
}
+#endif
+__attribute__((weak)) void housekeeping_task_keymap(void) {}
void housekeeping_task_user(void) {
+#if defined(SPLIT_KEYBOARD) && defined(OLED_ENABLE)
if (is_keyboard_master()) {
static uint32_t last_sync;
bool needs_sync = false;
static char tmp_keylog[5] = {0};
- if (memcmp(&keylog_str, &tmp_keylog, 5)) {
+ if (memcmp(&keylog_str, &tmp_keylog, sizeof(tmp_keylog))) {
needs_sync = true;
- memcpy(&tmp_keylog, &keylog_str, 5);
+ memcpy(&tmp_keylog, &keylog_str, sizeof(tmp_keylog));
}
if (timer_elapsed32(last_sync) > 250)
needs_sync = true;
if (needs_sync)
- if (transaction_rpc_send(RPC_ID_USER_KEYLOG_STR, 5, &keylog_str))
+ if (transaction_rpc_send(RPC_ID_USER_KEYLOG_STR, sizeof(tmp_keylog),
+ &keylog_str))
last_sync = timer_read32();
}
-}
#endif
+ housekeeping_task_keymap();
+}
+__attribute__((weak)) void keyboard_post_init_keymap(void) {}
void keyboard_post_init_user(void) {
#if defined(SPLIT_KEYBOARD) && defined(OLED_ENABLE)
transaction_register_rpc(RPC_ID_USER_KEYLOG_STR, keylogger_sync);
@@ -67,7 +48,8 @@ void keyboard_post_init_user(void) {
rgblight_enable_noeeprom();
rgblight_sethsv_noeeprom(HSV_CYAN);
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
-#elif RGB_MATRIX_ENABLE
+#endif
+#ifdef RGB_MATRIX_ENABLE
rgb_matrix_enable_noeeprom();
rgb_matrix_sethsv_noeeprom(HSV_CYAN);
rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
@@ -76,6 +58,7 @@ void keyboard_post_init_user(void) {
if (!autocorrect_is_enabled())
autocorrect_enable();
#endif
+ keyboard_post_init_keymap();
}
void matrix_scan_user(void) {
@@ -84,17 +67,23 @@ void matrix_scan_user(void) {
#endif
}
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_BASE] = {{KC_VOLU, KC_VOLD}, {KC_MNXT, KC_MPRV}},
- [_LOWER] = {{RGB_SAI, RGB_SAD}, {RGB_HUI, RGB_HUD}},
- [_RAISE] = {{C(KC_LEFT), C(KC_RGHT)}, {C(S(KC_TAB)), C(KC_TAB)}}};
-#endif
-
#ifndef MAGIC_ENABLE
uint16_t keycode_config(uint16_t keycode) { return keycode; }
+uint8_t mod_config(uint8_t mod) { return mod; }
#endif
-#ifndef MAGIC_ENABLE
-uint8_t mod_config(uint8_t mod) { return mod; }
+#ifdef RP2040_MATH_IN_ROM
+typedef void (*init_fn)(void);
+extern init_fn __preinit_array_base__;
+extern init_fn __preinit_array_end__;
+#endif
+
+__attribute__((weak)) void keyboard_pre_init_keymap(void) {}
+void keyboard_pre_init_user(void) {
+#ifdef RP2040_MATH_IN_ROM
+ for (init_fn *func = &__preinit_array_base__; func < &__preinit_array_end__;
+ func++)
+ (*func)();
#endif
+ keyboard_pre_init_keymap();
+}