summaryrefslogtreecommitdiffstats
path: root/users/drashna
diff options
context:
space:
mode:
Diffstat (limited to 'users/drashna')
-rw-r--r--users/drashna/config.h172
-rw-r--r--users/drashna/drashna.c13
-rw-r--r--users/drashna/drashna.h42
-rw-r--r--users/drashna/drashna_font.h164
-rw-r--r--users/drashna/drashna_transport.c603
-rw-r--r--users/drashna/oled_stuff.c91
-rw-r--r--users/drashna/oled_stuff.h167
-rw-r--r--users/drashna/pimoroni_trackball.c151
-rw-r--r--users/drashna/process_records.c21
-rw-r--r--users/drashna/process_records.h101
-rw-r--r--users/drashna/rgb_matrix_stuff.c32
-rw-r--r--users/drashna/rgb_stuff.c34
-rw-r--r--users/drashna/rules.mk31
-rw-r--r--users/drashna/tap_dances.h4
-rw-r--r--users/drashna/transport_sync.c188
-rw-r--r--users/drashna/transport_sync.h (renamed from users/drashna/pimoroni_trackball.h)19
-rw-r--r--users/drashna/wrappers.h194
17 files changed, 730 insertions, 1297 deletions
diff --git a/users/drashna/config.h b/users/drashna/config.h
index 5f7c32ff35..ab0080234d 100644
--- a/users/drashna/config.h
+++ b/users/drashna/config.h
@@ -17,57 +17,81 @@
#pragma once
// Use custom magic number so that when switching branches, EEPROM always gets reset
-#define EECONFIG_MAGIC_NUMBER (uint16_t)0x1339
+#define EECONFIG_MAGIC_NUMBER (uint16_t)0x1339
/* Set Polling rate to 1000Hz */
#define USB_POLLING_INTERVAL_MS 1
#if defined(SPLIT_KEYBOARD)
+// # define SPLIT_TRANSPORT_MIRROR
+# define SPLIT_LAYER_STATE_ENABLE
+# define SPLIT_LED_STATE_ENABLE
# define SPLIT_MODS_ENABLE
-# define SPLIT_TRANSPORT_MIRROR
-# define SERIAL_USE_MULTI_TRANSACTION
-// # define SPLIT_NUM_TRANSACTIONS_KB 2
+# ifdef WPM_ENABLE
+# define SPLIT_WPM_ENABLE
+# endif
+# define SELECT_SOFT_SERIAL_SPEED 1
+# define SPLIT_TRANSACTION_IDS_USER RPC_ID_USER_STATE_SYNC, RPC_ID_USER_KEYMAP_SYNC, RPC_ID_USER_CONFIG_SYNC
#endif
#ifdef AUDIO_ENABLE
-
# define AUDIO_CLICKY
-# define STARTUP_SONG SONG(RICK_ROLL)
-# define GOODBYE_SONG SONG(SONIC_RING)
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(OVERWATCH_THEME) }
-
# define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
-# define UNICODE_SONG_MAC SONG(RICK_ROLL)
-# define UNICODE_SONG_LNX SONG(RICK_ROLL)
-# define UNICODE_SONG_WIN SONG(RICK_ROLL)
-# define UNICODE_SONG_BSD SONG(RICK_ROLL)
-# define UNICODE_SONG_WINC SONG(RICK_ROLL)
+# ifdef USER_SONG_LIST
+# define STARTUP_SONG SONG(RICK_ROLL)
+# define GOODBYE_SONG SONG(SONIC_RING)
+# define DEFAULT_LAYER_SONGS \
+ { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(OVERWATCH_THEME) }
+# define UNICODE_SONG_MAC SONG(MARIO_THEME)
+# define UNICODE_SONG_LNX SONG(MARIO_POWERUP)
+# define UNICODE_SONG_WIN SONG(MARIO_ONEUP)
+# define UNICODE_SONG_BSD SONG(RICK_ROLL)
+# define UNICODE_SONG_WINC SONG(RICK_ROLL)
+# else
+# define STARTUP_SONG SONG(STARTUP_SOUND)
+# define GOODBYE_SONG SONG(GOODBYE_SOUND)
+# define DEFAULT_LAYER_SONGS \
+ { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(WORKMAN_SOUND) }
+# define UNICODE_SONG_MAC SONG(QWERTY_SOUND)
+# define UNICODE_SONG_LNX SONG(COLEMAK_SOUND)
+# define UNICODE_SONG_WIN SONG(DVORAK_SOUND)
+# define UNICODE_SONG_BSD SONG(WORKMAN_SOUND)
+# define UNICODE_SONG_WINC SONG(PLOVER_GOODBYE_SOUND)
+# endif
#endif // !AUDIO_ENABLE
+#define UNICODE_SELECTED_MODES UC_WIN, UC_MAC
+
#ifdef RGBLIGHT_ENABLE
# define RGBLIGHT_SLEEP
+# undef RGBLIGHT_ANIMATIONS
# if defined(__AVR__) && !defined(__AVR_AT90USB1286__)
-# undef RGBLIGHT_ANIMATIONS
# define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_SNAKE
# define RGBLIGHT_EFFECT_KNIGHT
# else
-# define RGBLIGHT_ANIMATIONS
+# define RGBLIGHT_EFFECT_BREATHING
+# define RGBLIGHT_EFFECT_RAINBOW_MOOD
+# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+# define RGBLIGHT_EFFECT_SNAKE
+# define RGBLIGHT_EFFECT_KNIGHT
+// # define RGBLIGHT_EFFECT_CHRISTMAS
+// # define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// # define RGBLIGHT_EFFECT_RGB_TEST
+// # define RGBLIGHT_EFFECT_ALTERNATING
+# define RGBLIGHT_EFFECT_TWINKLE
# endif
-# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250
-# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1/24
+# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250
+# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24
#endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
-# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
-// # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
-// # define EECONFIG_RGB_MATRIX (uint32_t *)16
+// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+// # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
# if defined(__AVR__) && !defined(__AVR_AT90USB1286__) && !defined(KEYBOARD_launchpad)
# define DISABLE_RGB_MATRIX_ALPHAS_MODS
@@ -120,7 +144,7 @@
# ifdef OLED_FONT_H
# undef OLED_FONT_H
# endif
-# define OLED_FONT_H "drashna_font.h"
+# define OLED_FONT_H "drashna_font.h"
# define OLED_FONT_END 255
// # define OLED_FONT_5X5
// # define OLED_FONT_AZTECH
@@ -143,8 +167,8 @@
#ifdef QMK_KEYS_PER_SCAN
# undef QMK_KEYS_PER_SCAN
-# define QMK_KEYS_PER_SCAN 2
-#endif // !QMK_KEYS_PER_SCAN
+#endif
+#define QMK_KEYS_PER_SCAN 4
// this makes it possible to do rolling combos (zx) with keys that
// convert to other keys on hold (z becomes ctrl when you hold it,
@@ -152,9 +176,9 @@
// actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
-//#define TAPPING_FORCE_HOLD
-//#define RETRO_TAPPING
-#ifndef KEYBOARD_kyria_rev1
+//#define TAPPING_FORCE_HOLD_PER_KEY
+//#define RETRO_TAPPING_PER_KEY
+#if !defined(KEYBOARD_kyria) && !defined(KEYBOARD_splitkb_kyria)
# define TAPPING_TERM_PER_KEY
#endif
@@ -185,14 +209,16 @@
# undef LOCKING_RESYNC_ENABLE
#endif
+#define LAYER_STATE_16BIT
+
#ifdef CONVERT_TO_PROTON_C
// pins that are available but not present on Pro Micro
-# define A3 PAL_LINE(GPIOA, 3)
-# define A4 PAL_LINE(GPIOA, 4)
-# define A5 PAL_LINE(GPIOA, 5)
-# define A6 PAL_LINE(GPIOA, 6)
-# define A7 PAL_LINE(GPIOA, 7)
-# define A8 PAL_LINE(GPIOA, 8)
+# define A3 PAL_LINE(GPIOA, 3)
+# define A4 PAL_LINE(GPIOA, 4)
+# define A5 PAL_LINE(GPIOA, 5)
+# define A6 PAL_LINE(GPIOA, 6)
+# define A7 PAL_LINE(GPIOA, 7)
+# define A8 PAL_LINE(GPIOA, 8)
# define A13 PAL_LINE(GPIOA, 13)
# define A14 PAL_LINE(GPIOA, 14)
# define A15 PAL_LINE(GPIOA, 15)
@@ -203,3 +229,79 @@
# define C14 PAL_LINE(GPIOC, 14)
# define C15 PAL_LINE(GPIOC, 15)
#endif
+
+#ifdef MOUSEKEY_ENABLE
+// mouse movement config
+# ifdef MK_3_SPEED
+# undef MK_3_SPEED
+# endif
+# define MK_KINETIC_SPEED
+# ifdef MK_KINETIC_SPEED
+# ifndef MOUSEKEY_DELAY
+# define MOUSEKEY_DELAY 8
+# endif
+# ifndef MOUSEKEY_INTERVAL
+# define MOUSEKEY_INTERVAL 20
+# endif
+# ifdef MOUSEKEY_MOVE_DELTA
+# define MOUSEKEY_MOVE_DELTA 25
+# endif
+# else
+# ifndef MOUSEKEY_DELAY
+# define MOUSEKEY_DELAY 300
+# endif
+# ifndef MOUSEKEY_INTERVAL
+# define MOUSEKEY_INTERVAL 50
+# endif
+# ifndef MOUSEKEY_MOVE_DELTA
+# define MOUSEKEY_MOVE_DELTA 5
+# endif
+# endif
+# ifndef MOUSEKEY_MAX_SPEED
+# define MOUSEKEY_MAX_SPEED 7
+# endif
+# ifndef MOUSEKEY_TIME_TO_MAX
+# define MOUSEKEY_TIME_TO_MAX 60
+# endif
+# ifndef MOUSEKEY_INITIAL_SPEED
+# define MOUSEKEY_INITIAL_SPEED 100
+# endif
+# ifndef MOUSEKEY_BASE_SPEED
+# define MOUSEKEY_BASE_SPEED 1000
+# endif
+# ifndef MOUSEKEY_DECELERATED_SPEED
+# define MOUSEKEY_DECELERATED_SPEED 400
+# endif
+# ifndef MOUSEKEY_ACCELERATED_SPEED
+# define MOUSEKEY_ACCELERATED_SPEED 3000
+# endif
+// mouse scroll config
+# ifndef MOUSEKEY_WHEEL_DELAY
+# define MOUSEKEY_WHEEL_DELAY 15
+# endif
+# ifndef MOUSEKEY_WHEEL_DELTA
+# define MOUSEKEY_WHEEL_DELTA 1
+# endif
+# ifndef MOUSEKEY_WHEEL_INTERVAL
+# define MOUSEKEY_WHEEL_INTERVAL 50
+# endif
+# ifndef MOUSEKEY_WHEEL_MAX_SPEED
+# define MOUSEKEY_WHEEL_MAX_SPEED 8
+# endif
+# ifndef MOUSEKEY_WHEEL_TIME_TO_MAX
+# define MOUSEKEY_WHEEL_TIME_TO_MAX 80
+# endif
+// mouse scroll kinetic config
+# ifndef MOUSEKEY_WHEEL_INITIAL_MOVEMENTS
+# define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 8
+# endif
+# ifndef MOUSEKEY_WHEEL_BASE_MOVEMENTS
+# define MOUSEKEY_WHEEL_BASE_MOVEMENTS 48
+# endif
+# ifndef MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS
+# define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48
+# endif
+# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS
+# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8
+# endif
+#endif // MOUSEKEY_ENABLE
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index a493737262..4cef5433d6 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -86,6 +86,9 @@ void keyboard_post_init_user(void) {
#if defined(RGB_MATRIX_ENABLE)
keyboard_post_init_rgb_matrix();
#endif
+#if defined(SPLIT_KEYBOARD) && defined(SPLIT_TRANSACTION_IDS_USER)
+ keyboard_post_init_transport_sync();
+#endif
keyboard_post_init_keymap();
}
@@ -120,7 +123,15 @@ void suspend_power_down_user(void) {
__attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
-void suspend_wakeup_init_user(void) { suspend_wakeup_init_keymap(); }
+void suspend_wakeup_init_user(void) {
+ if (layer_state_is(_GAMEPAD)) {
+ layer_off(_GAMEPAD);
+ }
+ if (layer_state_is(_DIABLO)) {
+ layer_off(_DIABLO);
+ }
+ suspend_wakeup_init_keymap();
+}
__attribute__((weak)) void matrix_scan_keymap(void) {}
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index e66f106574..ca849b0509 100644
--- a/users/drashna/drashna.h
+++ b/users/drashna/drashna.h
@@ -33,30 +33,52 @@
# include "oled_stuff.h"
#endif
#if defined(PIMORONI_TRACKBALL_ENABLE)
-# include "pimoroni_trackball.h"
+# include "drivers/sensors/pimoroni_trackball.h"
+#endif
+#ifdef SPLIT_KEYBOARD
+# include "transport_sync.h"
#endif
/* Define layer names */
enum userspace_layers {
- _QWERTY = 0,
- _NUMLOCK = 0,
+ _QWERTY = 0,
+ _NUMLOCK = 0,
+ FIRST_DEFAULT_LAYER = 0,
+ _COLEMAK_DH,
_COLEMAK,
_DVORAK,
- _WORKMAN,
- _NORMAN,
- _MALTRON,
- _EUCALYN,
- _CARPLAX,
+ LAST_DEFAULT_LAYER = _DVORAK,
_GAMEPAD,
_DIABLO,
- _MACROS,
+ _MOUSE,
_MEDIA,
_LOWER,
_RAISE,
_ADJUST,
};
-#define _MOUSE _MACROS
+#define _MACROS _MOUSE
+#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
+#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
+#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
+#define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 3)
+#if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 3)
+# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 4)
+# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 5)
+# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 6)
+# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 7)
+# if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 7)
+# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 8)
+# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 9)
+# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 10)
+# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 11)
+# endif
+#endif
+
+#define DEFAULT_LAYER_1_HSV HSV_CYAN
+#define DEFAULT_LAYER_2_HSV HSV_SPRINGGREEN
+#define DEFAULT_LAYER_3_HSV HSV_MAGENTA
+#define DEFAULT_LAYER_4_HSV HSV_GOLDENROD
bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed);
bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
diff --git a/users/drashna/drashna_font.h b/users/drashna/drashna_font.h
index 6a3865a44d..e9353e62a9 100644
--- a/users/drashna/drashna_font.h
+++ b/users/drashna/drashna_font.h
@@ -3,10 +3,14 @@
// additional fonts from
// https://github.com/datacute/TinyOLED-Fonts
-#include "progmem.h"
+#if __has_include("../../../../Documents/qmk/oled_font.h")
+# include "../../../../Documents/qmk/oled_font.h"
+#else
+# include "progmem.h"
+// clang-format off
static const unsigned char font[] PROGMEM = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00 0
+ 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, // 0x00 0
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, // 0x01 1
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, // 0x02 2
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, // 0x03 3 ♥
@@ -38,7 +42,7 @@ static const unsigned char font[] PROGMEM = {
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D 29 ↭
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E 30
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F 31
-#if defined(OLED_FONT_5X5)
+# if defined(OLED_FONT_5X5)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x5c,0x00,0x00,0x00,0x00,0x00, // 0x21 33 !
0x06,0x00,0x06,0x00,0x00,0x00, // 0x22 34 "
@@ -135,7 +139,7 @@ static const unsigned char font[] PROGMEM = {
0x44,0x7c,0x10,0x00,0x00,0x00, // 0x7D 125 }
0x02,0x01,0x02,0x01,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
-#elif defined(OLED_FONT_AZTECH)
+# lif defined(OLED_FONT_AZTECH)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x00,0x2e,0x00,0x00,0x00,0x00, // 0x21 33 !
0x00,0x02,0x00,0x02,0x00,0x00, // 0x22 34 "
@@ -232,7 +236,7 @@ static const unsigned char font[] PROGMEM = {
0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 }
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
-#elif defined(OLED_FONT_BMPLAIN)
+# elif defined(OLED_FONT_BMPLAIN)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x2e,0x00,0x00,0x00,0x00,0x00, // 0x21 33 !
0x03,0x00,0x03,0x00,0x00,0x00, // 0x22 34 "
@@ -329,7 +333,7 @@ static const unsigned char font[] PROGMEM = {
0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 }
0x01,0x01,0x01,0x00,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
-#elif defined(OLED_FONT_SUPER_DIGG)
+# elif defined(OLED_FONT_SUPER_DIGG)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32
0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, // 0x21 33 !
0x00, 0x01, 0x00, 0x00, 0x01, 0x00, // 0x22 34 "
@@ -426,7 +430,7 @@ static const unsigned char font[] PROGMEM = {
0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, // 0x7D 125 }
0x02, 0x01, 0x03, 0x04, 0x06, 0x02, // 0x7E 126 ~
0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, // 0x7F 127
-#else // default font
+# else // default font
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 33 !
0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 34 "
@@ -523,9 +527,9 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D 125 }
0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E 126 ~
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F 127
-#endif
+# endif
-#if defined(OLED_LOGO_GMK_BAD)
+# if defined(OLED_LOGO_GMK_BAD)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, // 0x81
0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, // 0x82
@@ -654,7 +658,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- #elif defined(OLED_LOGO_HUE_MANITEE)
+# elif defined(OLED_LOGO_HUE_MANITEE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0,
0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4,
@@ -783,7 +787,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- #elif defined(OLED_LOGO_CORNE)
+# elif defined(OLED_LOGO_CORNE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
@@ -913,7 +917,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-#elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c
+# elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0xC0, 0x60, 0x30, 0x18,
0xF8, 0x18, 0x00, 0xC0, 0x70, 0x1C,
@@ -1042,137 +1046,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-#elif defined(OLED_LOGO_SCIFI)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0x60,
- 0x70, 0x30, 0x38, 0x18, 0x0C, 0x0C,
- 0x1E, 0x0C, 0x80, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0xC0, 0xE0, 0xF0, 0x38, 0x1C, 0x0E,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x00, 0x00, 0x80, 0x40, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0,
- 0xC0, 0x60, 0x60, 0x30, 0x10, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
- 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
- 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
- 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
- 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
- 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
- 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
- 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
- 0x30, 0x30, 0x70, 0x78, 0x78, 0x7C,
- 0x7C, 0x7E, 0x3E, 0x3F, 0x3F, 0x3B,
- 0x3B, 0x39, 0x39, 0x38, 0x38, 0x38,
- 0x38, 0x38, 0x38, 0x38, 0x3C, 0x38,
- 0x18, 0x8F, 0xDF, 0xF8, 0x7C, 0xBE,
- 0xDF, 0xF7, 0xFB, 0xFD, 0xFE, 0xEF,
- 0x73, 0x3B, 0x1B, 0x1F, 0xEF, 0xF7,
- 0xFF, 0x7E, 0x6F, 0x6F, 0x6F, 0x6F,
- 0x6D, 0xBD, 0xE1, 0xF9, 0x3F, 0x3F,
- 0x39, 0x79, 0x79, 0x7D, 0xED, 0xED,
- 0xCD, 0xC7, 0xC7, 0x87, 0xC7, 0xE3,
- 0xE0, 0xF8, 0x7E, 0x3F, 0x37, 0x33,
- 0x3B, 0x1B, 0x19, 0x19, 0x0D, 0xED,
- 0xFF, 0xBF, 0xC7, 0xE7, 0xE3, 0xF0,
- 0x7C, 0xDE, 0xE7, 0xFB, 0x3E, 0x3F,
- 0xFC, 0xE0, 0xF8, 0x3E, 0xCF, 0xF3,
- 0xFC, 0x3F, 0x1F, 0x1F, 0x3C, 0x7E,
- 0x76, 0xF3, 0xE3, 0x81, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
- 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
- 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
- 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
- 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
- 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
- 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
- 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x20, 0x30, 0x18, 0x1E,
- 0x0F, 0x03, 0x01, 0x00, 0x00, 0x00,
- 0x01, 0x03, 0x03, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0xE1, 0x79, 0x3E, 0x1F,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x01, 0x03,
- 0x02, 0x06, 0x04, 0x08, 0x18, 0x10,
- 0x30, 0x20, 0x60, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
- 0x00, 0x14, 0x08, 0x14, 0x00, 0x00,
- 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
- 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00,
- 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C,
- 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C,
- 0x18, 0x30, 0x66, 0x66, 0x66, 0x00,
- 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E,
- 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x77, 0x77, 0x00,
- 0x77, 0x77, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24,
- 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1,
- 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED,
- 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F,
- 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64,
- 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x42, 0x69, 0x65, 0x65,
- 0x65, 0x69, 0x42, 0x04, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08,
- 0x18, 0x08, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-#else
+# else
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8,
0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F,
@@ -1302,5 +1176,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-#endif
+# endif
};
+// clang-format on
+#endif
diff --git a/users/drashna/drashna_transport.c b/users/drashna/drashna_transport.c
deleted file mode 100644
index 9df11c9bdf..0000000000
--- a/users/drashna/drashna_transport.c
+++ /dev/null
@@ -1,603 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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/>.
- */
-
-#include <string.h>
-#include <stddef.h>
-
-#include "matrix.h"
-#include QMK_KEYBOARD_H
-
-#define ROWS_PER_HAND (MATRIX_ROWS / 2)
-#define SYNC_TIMER_OFFSET 2
-
-#ifdef RGBLIGHT_ENABLE
-# include "rgblight.h"
-#endif
-
-#ifdef BACKLIGHT_ENABLE
-# include "backlight.h"
-#endif
-
-#ifdef ENCODER_ENABLE
-# include "encoder.h"
-static pin_t encoders_pad[] = ENCODERS_PAD_A;
-# define NUMBER_OF_ENCODERS (sizeof(encoders_pad) / sizeof(pin_t))
-#endif
-
-#ifdef POINTING_DEVICE_ENABLE
-static uint16_t device_cpi = 0;
-static int8_t split_mouse_x = 0, split_mouse_y = 0;
-#endif
-
-#ifdef OLED_DRIVER_ENABLE
-# include "oled_driver.h"
-#endif
-
-#if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
-# include "led_matrix.h"
-#endif
-#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
-# include "rgb_matrix.h"
-#endif
-
-#if defined(USE_I2C)
-
-# include "i2c_master.h"
-# include "i2c_slave.h"
-
-typedef struct _I2C_slave_buffer_t {
-# ifndef DISABLE_SYNC_TIMER
- uint32_t sync_timer;
-# endif
-# ifdef SPLIT_TRANSPORT_MIRROR
- matrix_row_t mmatrix[ROWS_PER_HAND];
-# endif
- matrix_row_t smatrix[ROWS_PER_HAND];
-# ifdef SPLIT_MODS_ENABLE
- uint8_t real_mods;
- uint8_t weak_mods;
-# ifndef NO_ACTION_ONESHOT
- uint8_t oneshot_mods;
-# endif
-# endif
-# ifdef BACKLIGHT_ENABLE
- uint8_t backlight_level;
-# endif
-# if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
- rgblight_syncinfo_t rgblight_sync;
-# endif
-# ifdef ENCODER_ENABLE
- uint8_t encoder_state[NUMBER_OF_ENCODERS];
-# endif
-# ifdef WPM_ENABLE
- uint8_t current_wpm;
-# endif
-# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
- led_eeconfig_t led_matrix;
- bool led_suspend_state;
-# endif
-# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
- rgb_config_t rgb_matrix;
- bool rgb_suspend_state;
-# endif
- int8_t mouse_x;
- int8_t mouse_y;
- uint16_t device_cpi;
- bool oled_on;
- layer_state_t t_layer_state;
- layer_state_t t_default_layer_state;
-} __attribute__((packed)) I2C_slave_buffer_t;
-
-static I2C_slave_buffer_t *const i2c_buffer = (I2C_slave_buffer_t *)i2c_slave_reg;
-
-# define I2C_BACKLIGHT_START offsetof(I2C_slave_buffer_t, backlight_level)
-# define I2C_RGB_START offsetof(I2C_slave_buffer_t, rgblight_sync)
-# define I2C_KEYMAP_MASTER_START offsetof(I2C_slave_buffer_t, mmatrix)
-# define I2C_KEYMAP_SLAVE_START offsetof(I2C_slave_buffer_t, smatrix)
-# define I2C_SYNC_TIME_START offsetof(I2C_slave_buffer_t, sync_timer)
-# define I2C_REAL_MODS_START offsetof(I2C_slave_buffer_t, real_mods)
-# define I2C_WEAK_MODS_START offsetof(I2C_slave_buffer_t, weak_mods)
-# define I2C_ONESHOT_MODS_START offsetof(I2C_slave_buffer_t, oneshot_mods)
-# define I2C_ENCODER_START offsetof(I2C_slave_buffer_t, encoder_state)
-# define I2C_WPM_START offsetof(I2C_slave_buffer_t, current_wpm)
-# define I2C_MOUSE_X_START offsetof(I2C_slave_buffer_t, mouse_x)
-# define I2C_MOUSE_Y_START offsetof(I2C_slave_buffer_t, mouse_y)
-# define I2C_MOUSE_DPI_START offsetof(I2C_slave_buffer_t, device_cpi)
-# define I2C_OLED_ON_START offsetof(I2C_slave_buffer_t, oled_on)
-# define I2C_LAYER_STATE_START offsetof(I2C_slave_buffer_t, t_layer_state)
-# define I2C_DEFAULT_LAYER_STATE_START offsetof(I2C_slave_buffer_t, t_default_layer_state)
-# define I2C_LED_MATRIX_START offsetof(I2C_slave_buffer_t, led_matrix)
-# define I2C_LED_SUSPEND_START offsetof(I2C_slave_buffer_t, led_suspend_state)
-# define I2C_RGB_MATRIX_START offsetof(I2C_slave_buffer_t, rgb_matrix)
-# define I2C_RGB_SUSPEND_START offsetof(I2C_slave_buffer_t, rgb_suspend_state)
-
-# define TIMEOUT 100
-
-# ifndef SLAVE_I2C_ADDRESS
-# define SLAVE_I2C_ADDRESS 0x32
-# endif
-
-// Get rows from other half over i2c
-bool transport_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) {
- i2c_readReg(SLAVE_I2C_ADDRESS, I2C_KEYMAP_SLAVE_START, (void *)slave_matrix, sizeof(i2c_buffer->smatrix), TIMEOUT);
-# ifdef SPLIT_TRANSPORT_MIRROR
- i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_KEYMAP_MASTER_START, (void *)master_matrix, sizeof(i2c_buffer->mmatrix), TIMEOUT);
-# endif
- // write backlight info
-# ifdef BACKLIGHT_ENABLE
- uint8_t level = is_backlight_enabled() ? get_backlight_level() : 0;
- if (level != i2c_buffer->backlight_level) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_BACKLIGHT_START, (void *)&level, sizeof(level), TIMEOUT) >= 0) {
- i2c_buffer->backlight_level = level;
- }
- }
-# endif
-
-# if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
- if (rgblight_get_change_flags()) {
- rgblight_syncinfo_t rgblight_sync;
- rgblight_get_syncinfo(&rgblight_sync);
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_RGB_START, (void *)&rgblight_sync, sizeof(rgblight_sync), TIMEOUT) >= 0) {
- rgblight_clear_change_flags();
- }
- }
-# endif
-
-# ifdef ENCODER_ENABLE
- i2c_readReg(SLAVE_I2C_ADDRESS, I2C_ENCODER_START, (void *)i2c_buffer->encoder_state, sizeof(i2c_buffer->encoder_state), TIMEOUT);
- encoder_update_raw(i2c_buffer->encoder_state);
-# endif
-
-# ifdef WPM_ENABLE
- uint8_t current_wpm = get_current_wpm();
- if (current_wpm != i2c_buffer->current_wpm) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_WPM_START, (void *)&current_wpm, sizeof(current_wpm), TIMEOUT) >= 0) {
- i2c_buffer->current_wpm = current_wpm;
- }
- }
-# endif
-
-# ifdef POINTING_DEVICE_ENABLE
- if (is_keyboard_left()) {
- report_mouse_t temp_report = pointing_device_get_report();
- i2c_readReg(SLAVE_I2C_ADDRESS, I2C_MOUSE_X_START, (void *)&i2c_buffer->mouse_x, sizeof(i2c_buffer->mouse_x), TIMEOUT);
- temp_report.x = i2c_buffer->mouse_x;
- i2c_readReg(SLAVE_I2C_ADDRESS, I2C_MOUSE_Y_START, (void *)&i2c_buffer->mouse_y, sizeof(i2c_buffer->mouse_y), TIMEOUT);
- temp_report.y = i2c_buffer->mouse_y;
- pointing_device_set_report(temp_report);
-
- if (device_cpi != i2c_buffer->device_cpi) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_MOUSE_DPI_START, (void *)&device_cpi, sizeof(device_cpi), TIMEOUT) >= 0) {
- i2c_buffer->device_cpi = device_cpi
- }
- }
- }
-# endif
-
-# ifdef SPLIT_MODS_ENABLE
- uint8_t real_mods = get_mods();
- if (real_mods != i2c_buffer->real_mods) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_REAL_MODS_START, (void *)&real_mods, sizeof(real_mods), TIMEOUT) >= 0) {
- i2c_buffer->real_mods = real_mods;
- }
- }
-
- uint8_t weak_mods = get_weak_mods();
- if (weak_mods != i2c_buffer->weak_mods) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_WEAK_MODS_START, (void *)&weak_mods, sizeof(weak_mods), TIMEOUT) >= 0) {
- i2c_buffer->weak_mods = weak_mods;
- }
- }
-
-# ifndef NO_ACTION_ONESHOT
- uint8_t oneshot_mods = get_oneshot_mods();
- if (oneshot_mods != i2c_buffer->oneshot_mods) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_ONESHOT_MODS_START, (void *)&oneshot_mods, sizeof(oneshot_mods), TIMEOUT) >= 0) {
- i2c_buffer->oneshot_mods = oneshot_mods;
- }
- }
-# endif
-# endif
-
- if (layer_state != i2c_buffer->t_layer_state) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_LAYER_STATE_START, (void *)&layer_state, sizeof(layer_state), TIMEOUT) >= 0) {
- i2c_buffer->t_layer_state = layer_state;
- }
- }
-
- if (default_layer_state != i2c_buffer->t_default_layer_state) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_DEFAULT_LAYER_STATE_START, (void *)&default_layer_state, sizeof(default_layer_state), TIMEOUT) >= 0) {
- i2c_buffer->t_default_layer_state = default_layer_state;
- }
- }
-
-# ifdef OLED_DRIVER_ENABLE
- bool is_oled_on = is_oled_on();
- if (is_oled_on != i2c_buffer->oled_on) {
- if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_LAYER_STATE_START, (void *)&is_oled_on, sizeof(is_oled_on), TIMEOUT) >= 0) {
- i2c_buffer->oled_on = is_oled_on;
- }
- }
-# endif
-
-# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
- i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_LED_MATRIX_START, (void *)led_matrix_eeconfig, sizeof(i2c_buffer->led_matrix), TIMEOUT);
- bool suspend_state = led_matrix_get_suspend_state();
- i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_LED_SUSPEND_START, (void *)suspend_state, sizeof(i2c_buffer->led_suspend_state), TIMEOUT);
-# endif
-# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
- i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_RGB_MATRIX_START, (void *)rgb_matrix_config, sizeof(i2c_buffer->rgb_matrix), TIMEOUT);
- bool suspend_state = rgb_matrix_get_suspend_state();
- i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_RGB_SUSPEND_START, (void *)suspend_state, sizeof(i2c_buffer->rgb_suspend_state), TIMEOUT);
-# endif
-
-# ifndef DISABLE_SYNC_TIMER
- i2c_buffer->sync_timer = sync_timer_read32() + SYNC_TIMER_OFFSET;
- i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_SYNC_TIME_START, (void *)&i2c_buffer->sync_timer, sizeof(i2c_buffer->sync_timer), TIMEOUT);
-# endif
-
- return true;
-}
-
-void transport_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) {
-# ifndef DISABLE_SYNC_TIMER
- sync_timer_update(i2c_b