diff options
Diffstat (limited to 'jack/jack.c')
-rw-r--r-- | jack/jack.c | 67 |
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(); +} |