From 2f19579d3f2c8b4041f0128976c00136c5a6a32d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 31 Jul 2022 20:32:45 +0100 Subject: Convert yosino58 to use split common (#17861) --- keyboards/yosino58/keymaps/default/config.h | 7 +- keyboards/yosino58/keymaps/default/keymap.c | 107 ++++++++-------------------- keyboards/yosino58/keymaps/default/rules.mk | 1 + 3 files changed, 32 insertions(+), 83 deletions(-) (limited to 'keyboards/yosino58/keymaps/default') diff --git a/keyboards/yosino58/keymaps/default/config.h b/keyboards/yosino58/keymaps/default/config.h index 21fc2d3b54..aa3caa3d06 100644 --- a/keyboards/yosino58/keymaps/default/config.h +++ b/keyboards/yosino58/keymaps/default/config.h @@ -20,17 +20,12 @@ along with this program. If not, see . #pragma once -//#define USE_MATRIX_I2C - /* Select hand configuration */ #define MASTER_LEFT // #define MASTER_RIGHT // #define EE_HANDS -#define SSD1306OLED -// #define SSD1306_128X64 - #define TAPPING_FORCE_HOLD #define TAPPING_TERM 100 @@ -40,4 +35,4 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 120 #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 \ No newline at end of file +#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/yosino58/keymaps/default/keymap.c b/keyboards/yosino58/keymaps/default/keymap.c index 3200d14708..00a6c8e83f 100644 --- a/keyboards/yosino58/keymaps/default/keymap.c +++ b/keyboards/yosino58/keymaps/default/keymap.c @@ -1,20 +1,10 @@ #include QMK_KEYBOARD_H -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings extern rgblight_config_t rgblight_config; #endif -extern uint8_t is_master; - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -25,8 +15,7 @@ extern uint8_t is_master; #define _ADJUST 3 enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, + LOWER = SAFE_RANGE, RAISE, ADJUST, RGBRST @@ -126,11 +115,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { int RGB_current_mode; -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - // Setting ADJUST layer RGB back to default void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { @@ -144,18 +128,9 @@ void matrix_init_user(void) { #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_config.mode; #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - #ifdef SSD1306_128X64 - iota_gfx_init(false); // turns on the display - #else - iota_gfx_init(!has_usb()); // turns on the display - #endif - #endif } -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED +#ifdef OLED_ENABLE //assign the right code to your layers for OLED display #define L_QWERTY 0 @@ -166,12 +141,8 @@ void matrix_init_user(void) { // When add source files to SRC in rules.mk, you can use functions. const char *read_logo(void); -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { +bool oled_task_user(void) { + if (is_keyboard_master()) { static char indctr[2][20][5]= { // white icon @@ -235,58 +206,40 @@ void matrix_render_user(struct CharacterMatrix *matrix) { if (layer_state == L_RAISE) { rowr = 1; } if (layer_state == L_ADJUST) { rowa = 1; } - matrix_write(matrix, indctr[rowl] [0]); - matrix_write(matrix, indctr[rowr] [1]); - matrix_write(matrix, indctr[rowa] [2]); - matrix_write(matrix, indctr[rowc] [3]); - matrix_write(matrix, indctr[rown] [4]); - matrix_write_char(matrix, 0x13); - matrix_write(matrix, indctr[rowl] [5]); - matrix_write(matrix, indctr[rowr] [6]); - matrix_write(matrix, indctr[rowa] [7]); - matrix_write(matrix, indctr[rowc] [8]); - matrix_write(matrix, indctr[rown] [9]); - matrix_write_char(matrix, 0x13); - matrix_write(matrix, indctr[rowl] [10]); - matrix_write(matrix, indctr[rowr] [11]); - matrix_write(matrix, indctr[rowa] [12]); - matrix_write(matrix, indctr[rowc] [13]); - matrix_write(matrix, indctr[rown] [14]); - matrix_write_char(matrix, 0x13); - matrix_write(matrix, indctr[rowl] [15]); - matrix_write(matrix, indctr[rowr] [16]); - matrix_write(matrix, indctr[rowa] [17]); - matrix_write(matrix, indctr[rowc] [18]); - matrix_write(matrix, indctr[rown] [19]); + oled_write(indctr[rowl] [0], false); + oled_write(indctr[rowr] [1], false); + oled_write(indctr[rowa] [2], false); + oled_write(indctr[rowc] [3], false); + oled_write(indctr[rown] [4], false); + oled_write_char(0x13, false); + oled_write(indctr[rowl] [5], false); + oled_write(indctr[rowr] [6], false); + oled_write(indctr[rowa] [7], false); + oled_write(indctr[rowc] [8], false); + oled_write(indctr[rown] [9], false); + oled_write_char(0x13, false); + oled_write(indctr[rowl] [10], false); + oled_write(indctr[rowr] [11], false); + oled_write(indctr[rowa] [12], false); + oled_write(indctr[rowc] [13], false); + oled_write(indctr[rown] [14], false); + oled_write_char(0x13, false); + oled_write(indctr[rowl] [15], false); + oled_write(indctr[rowr] [16], false); + oled_write(indctr[rowa] [17], false); + oled_write(indctr[rowc] [18], false); + oled_write(indctr[rown] [19], false); }else{ - matrix_write(matrix, read_logo()); + oled_write(read_logo(), false); } + return false; } -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED +#endif bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/yosino58/keymaps/default/rules.mk b/keyboards/yosino58/keymaps/default/rules.mk index 88c202edb0..191140d278 100644 --- a/keyboards/yosino58/keymaps/default/rules.mk +++ b/keyboards/yosino58/keymaps/default/rules.mk @@ -1,5 +1,6 @@ EXTRAKEY_ENABLE = yes RGBLIGHT_ENABLE = yes +OLED_ENABLE = yes # If you want to change the display of OLED, you need to change here SRC += ./lib/glcdfont.c \ -- cgit v1.2.3