Migrate crkbd keymaps to oled driver (#17863)
This commit is contained in:
@@ -30,8 +30,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#define RGBLIGHT_SPLIT
|
||||
|
||||
//#define SSD1306OLED
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
|
@@ -16,9 +16,6 @@
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
//extern uint8_t is_master;
|
||||
|
||||
|
||||
enum custom_layers {
|
||||
_COLEMAK,
|
||||
_SYMBOL,
|
||||
|
@@ -263,9 +263,6 @@ bool led_update_user(led_t led_state) {
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef OLED_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
if (!is_keyboard_master()) {
|
||||
@@ -319,27 +316,15 @@ void oled_render_layer_state(void) {
|
||||
oled_write_ln_P(PSTR("Layer: Layer Switch"),false);
|
||||
break;
|
||||
default:
|
||||
#if defined (LAYER_STATE_32BIT)
|
||||
snprintf(string, sizeof(string), "%ld",layer_state);
|
||||
#else
|
||||
snprintf(string, sizeof(string), "%d",layer_state);
|
||||
#endif
|
||||
oled_write_P(PSTR("Layer: Undef-"),false);
|
||||
oled_write_ln(string, false);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||
if (has_usb()) {
|
||||
// If you want to change the display of OLED, you need to change here
|
||||
matrix_write_ln(matrix, read_layer_state());
|
||||
matrix_write_ln(matrix, read_keylog());
|
||||
//matrix_write_ln(matrix, read_keylogs());
|
||||
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
|
||||
//matrix_write_ln(matrix, read_host_led_state());
|
||||
//matrix_write_ln(matrix, read_timelog());
|
||||
} else {
|
||||
matrix_write(matrix, read_logo());
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
char keylog_str[24] = {};
|
||||
const char code_to_name[60] = {
|
||||
@@ -393,7 +378,7 @@ void oled_render_logo(void) {
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
if (is_master) {
|
||||
if (is_keyboard_master()) {
|
||||
oled_render_layer_state();
|
||||
oled_render_keylog();
|
||||
} else {
|
||||
|
@@ -3,9 +3,6 @@
|
||||
#define EE_HANDS
|
||||
#define SPLIT_USB_DETECT
|
||||
|
||||
#undef USE_I2C
|
||||
#undef SSD1306OLED
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
@@ -1,7 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
extern uint8_t is_master;
|
||||
|
||||
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
|
||||
# include "rgb.c"
|
||||
#endif
|
||||
|
@@ -28,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define USE_SSD_I2C
|
||||
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
//#define TAPPING_FORCE_HOLD
|
||||
|
@@ -91,14 +91,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
|
||||
iota_gfx_init(); // turns on the display
|
||||
#endif
|
||||
}
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
// When add source files to SRC in rules.mk, you can use functions.
|
||||
const char *read_layer_state(void);
|
||||
@@ -112,42 +107,26 @@ const char *read_keylogs(void);
|
||||
// void set_timelog(void);
|
||||
// const char *read_timelog(void);
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
iota_gfx_task();
|
||||
}
|
||||
|
||||
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||
bool oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
// If you want to change the display of OLED, you need to change here
|
||||
matrix_write(matrix, read_layer_state());
|
||||
matrix_write(matrix, read_keylog());
|
||||
//matrix_write_ln(matrix, read_keylogs());
|
||||
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
|
||||
//matrix_write_ln(matrix, read_host_led_state());
|
||||
//matrix_write_ln(matrix, read_timelog());
|
||||
oled_write(read_layer_state(), false);
|
||||
oled_write(read_keylog(), false);
|
||||
//oled_write_ln(read_keylogs(), false);
|
||||
//oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
|
||||
//oled_write_ln(read_host_led_state()), false;
|
||||
//oled_write_ln(read_timelog(), 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) {
|
||||
if (record->event.pressed) {
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
set_keylog(keycode, record);
|
||||
#endif
|
||||
// set_timelog();
|
||||
|
@@ -1,10 +1,5 @@
|
||||
|
||||
VPATH += keyboards/crkbd/lib
|
||||
LIB_SRC += ssd1306.c i2c.c
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
SRC += ./lib/rgb_state_reader.c \
|
||||
./lib/layer_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
||||
@@ -14,4 +9,6 @@ SRC += ./lib/glcdfont.c \
|
||||
|
||||
TAP_DANCE_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
# LOCAL_GLCDFONT = yes
|
||||
|
@@ -28,9 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define USE_SSD_I2C
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
//#define TAPPING_FORCE_HOLD
|
||||
|
@@ -5,10 +5,6 @@
|
||||
#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
|
||||
@@ -65,15 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
)
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
iota_gfx_init(); // turns on the display
|
||||
#endif
|
||||
}
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
// When add source files to SRC in rules.mk, you can use functions.
|
||||
const char *read_logo(void);
|
||||
@@ -142,37 +130,18 @@ const char *read_usb_state(void) {
|
||||
return matrix_line_str;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
iota_gfx_task();
|
||||
}
|
||||
|
||||
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||
bool oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
matrix_write(matrix, read_layer_state());
|
||||
matrix_write(matrix, "\n");
|
||||
matrix_write(matrix, read_usb_state());
|
||||
matrix_write(matrix, "\n");
|
||||
matrix_write(matrix, read_keylogs());
|
||||
matrix_write(matrix, "\n");
|
||||
oled_write_ln(read_layer_state(), false);
|
||||
oled_write_ln(read_usb_state(), false);
|
||||
oled_write_ln(read_keylogs(), 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_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
|
@@ -16,19 +16,17 @@ UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
SRC += ./lib/rgb_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
||||
#./lib/layer_state_reader.c \
|
||||
# ./lib/mode_icon_reader.c \
|
||||
# ./lib/host_led_state_reader.c \
|
||||
# ./lib/timelogger.c \
|
||||
|
||||
VPATH += keyboards/crkbd/lib
|
||||
LIB_SRC += ssd1306.c i2c.c
|
||||
|
@@ -29,9 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define USE_SSD_I2C
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
|
@@ -182,13 +182,13 @@ bool oled_task_user(void) {
|
||||
master_oled_cleared = true;
|
||||
}
|
||||
render_logo();
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
// Drashna style timeout for LED and OLED Roughly 8mins
|
||||
else if (timer_elapsed32(oled_timer) > 480000) {
|
||||
oled_off();
|
||||
rgb_matrix_disable_noeeprom();
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
oled_on();
|
||||
|
@@ -11,6 +11,3 @@ OLED_DRIVER = SSD1306
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += logo_reader.c \
|
||||
layer.c
|
||||
|
||||
VPATH += keyboards/crkbd/lib
|
||||
LIB_SRC += ssd1306.c i2c.c
|
||||
|
@@ -28,9 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define USE_SSD_I2C
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
|
@@ -17,10 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#ifdef SSD1306OLED
|
||||
# include "ssd1306.h"
|
||||
# include <string.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
enum corny_layers {
|
||||
_QWERTY,
|
||||
@@ -108,14 +105,9 @@ void matrix_init_user(void) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
RGB_current_mode = rgblight_get_mode();
|
||||
#endif
|
||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
iota_gfx_init(); // turns on the display
|
||||
#endif
|
||||
}
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
// When add source files to SRC in rules.mk, you can use functions.
|
||||
const char *read_layer_state(void);
|
||||
@@ -129,42 +121,26 @@ const char *read_keylogs(void);
|
||||
// void set_timelog(void);
|
||||
// const char *read_timelog(void);
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
iota_gfx_task();
|
||||
}
|
||||
|
||||
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||
bool oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
// If you want to change the display of OLED, you need to change here
|
||||
matrix_write(matrix, read_layer_state());
|
||||
matrix_write(matrix, read_keylog());
|
||||
//matrix_write_ln(matrix, read_keylogs());
|
||||
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
|
||||
//matrix_write_ln(matrix, read_host_led_state());
|
||||
//matrix_write_ln(matrix, read_timelog());
|
||||
oled_write(read_layer_state(), false);
|
||||
oled_write(read_keylog(), false);
|
||||
//oled_write_ln(read_keylogs(), false);
|
||||
//oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
|
||||
//oled_write_ln(read_host_led_state(), false);
|
||||
//oled_write_ln(read_timelog(), 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) {
|
||||
if (record->event.pressed) {
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
set_keylog(keycode, record);
|
||||
#endif
|
||||
// set_timelog();
|
||||
|
@@ -1,13 +1,11 @@
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
SRC += ./lib/rgb_state_reader.c \
|
||||
./lib/layer_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
||||
# ./lib/mode_icon_reader.c \
|
||||
# ./lib/host_led_state_reader.c \
|
||||
# ./lib/timelogger.c \
|
||||
|
||||
VPATH += keyboards/crkbd/lib
|
||||
LIB_SRC += ssd1306.c i2c.c
|
||||
|
@@ -1,8 +1,6 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "ninjonas.h"
|
||||
|
||||
uint8_t is_master;
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = LAYOUT_wrapper(
|
||||
//,----------------------------------------------------. ,----------------------------------------------------.
|
||||
|
@@ -21,10 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#pragma once
|
||||
|
||||
//#define USE_MATRIX_I2C
|
||||
#ifdef KEYBOARD_crkbd_rev1_common
|
||||
# undef USE_I2C
|
||||
# define USE_SERIAL
|
||||
#endif
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
|
@@ -26,11 +26,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define EE_HANDS
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
# undef SSD1306OLED
|
||||
# define OLED_TIMEOUT 600000
|
||||
#endif
|
||||
|
||||
#undef USE_I2C
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
// #define FORCE_NKRO
|
||||
|
@@ -28,8 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
// #define SSD1306OLED
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
|
@@ -1,13 +1,10 @@
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "ssd1306.h"
|
||||
#ifdef PROTOCOL_LUFA
|
||||
#include "lufa.h"
|
||||
#include "split_util.h"
|
||||
#endif
|
||||
|
||||
extern uint8_t is_master;
|
||||
|
||||
// When add source files to SRC in rules.mk, you can use functions.
|
||||
const char *read_logo(void);
|
||||
const char *read_keylog(void);
|
||||
@@ -47,7 +44,6 @@ void update_keymap_status(void) {
|
||||
#endif
|
||||
|
||||
void matrix_init_user(void) {
|
||||
iota_gfx_init(!has_usb()); // turns on the display
|
||||
update_keymap_status();
|
||||
}
|
||||
|
||||
@@ -74,31 +70,18 @@ layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
}
|
||||
|
||||
static inline void render_keymap_status(struct CharacterMatrix *matrix) {
|
||||
matrix_write(matrix, layer_status_buf);
|
||||
oled_write(layer_status_buf);
|
||||
}
|
||||
|
||||
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||
if (is_master) {
|
||||
bool oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
render_keymap_status(matrix);
|
||||
matrix_write_ln(matrix, read_keylog());
|
||||
matrix_write_ln(matrix, read_keylogs());
|
||||
oled_write_ln(read_keylog(), false);
|
||||
oled_write_ln(read_keylogs(), false);
|
||||
} else {
|
||||
matrix_write(matrix, read_logo());
|
||||
oled_write(read_logo(), 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);
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -25,7 +25,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += oled.c \
|
||||
./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
./lib/layer_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
|
@@ -28,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
// #define SSD1306OLED
|
||||
#undef USE_I2C
|
||||
#undef SSD1306OLED
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
// #define TAPPING_FORCE_HOLD
|
||||
|
@@ -28,8 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
// #define SSD1306OLED
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
|
@@ -4,9 +4,6 @@
|
||||
#include "lufa.h"
|
||||
#include "split_util.h"
|
||||
#endif
|
||||
#ifdef SSD1306OLED
|
||||
#include "ssd1306.h"
|
||||
#endif
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
@@ -129,14 +126,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
|
||||
iota_gfx_init(!has_usb()); // turns on the display
|
||||
#endif
|
||||
}
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
// When add source files to SRC in rules.mk, you can use functions.
|
||||
const char *read_layer_state(void);
|
||||
@@ -150,42 +142,26 @@ const char *read_keylogs(void);
|
||||
// void set_timelog(void);
|
||||
// const char *read_timelog(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()) {
|
||||
// If you want to change the display of OLED, you need to change here
|
||||
matrix_write_ln(matrix, read_layer_state());
|
||||
matrix_write_ln(matrix, read_keylog());
|
||||
matrix_write_ln(matrix, read_keylogs());
|
||||
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
|
||||
//matrix_write_ln(matrix, read_host_led_state());
|
||||
//matrix_write_ln(matrix, read_timelog());
|
||||
oled_write_ln(read_layer_state(), false);
|
||||
oled_write_ln(read_keylog(), false);
|
||||
oled_write_ln(read_keylogs(), false);
|
||||
//oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
|
||||
//oled_write_ln(read_host_led_state(), false);
|
||||
//oled_write_ln(read_timelog(), 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) {
|
||||
if (record->event.pressed) {
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
set_keylog(keycode, record);
|
||||
#endif
|
||||
// set_timelog();
|
||||
|
@@ -16,19 +16,17 @@ UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
SRC += ./lib/rgb_state_reader.c \
|
||||
./lib/layer_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
||||
# ./lib/mode_icon_reader.c \
|
||||
# ./lib/host_led_state_reader.c \
|
||||
# ./lib/timelogger.c \
|
||||
|
||||
VPATH += keyboards/crkbd/lib
|
||||
LIB_SRC += ssd1306.c i2c.c
|
||||
|
@@ -7,8 +7,6 @@
|
||||
#define SPLIT_USB_DETECT
|
||||
|
||||
// #define RGB_LAYER_ENABLE
|
||||
#undef USE_I2C
|
||||
#undef SSD1306OLED
|
||||
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#define PERMISSIVE_HOLD
|
||||
|
@@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
if (!is_master) {
|
||||
if (!is_keyboard_master()) {
|
||||
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
|
||||
}
|
||||
return rotation;
|
||||
@@ -165,7 +165,7 @@ void oled_render_logo(void) {
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
if (is_master) {
|
||||
if (is_keyboard_master()) {
|
||||
oled_render_layer_state();
|
||||
oled_render_keylog();
|
||||
} else {
|
||||
|
@@ -21,8 +21,7 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
SRC += ./lib/rgb_state_reader.c \
|
||||
./lib/layer_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
||||
|
@@ -5,9 +5,6 @@
|
||||
#define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define USE_SSD_I2C
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
|
@@ -4,9 +4,6 @@
|
||||
#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
|
||||
@@ -122,14 +119,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
|
||||
iota_gfx_init(); // turns on the display
|
||||
#endif
|
||||
}
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
// When add source files to SRC in rules.mk, you can use functions.
|
||||
const char *read_layer_state(void);
|
||||
@@ -138,42 +130,23 @@ void set_keylog(uint16_t keycode, keyrecord_t *record);
|
||||
const char *read_keylog(void);
|
||||
const char *read_keylogs(void);
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
iota_gfx_task();
|
||||
}
|
||||
|
||||
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||
bool oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
// If you want to change the display of OLED, you need to change here
|
||||
matrix_write(matrix, read_layer_state());
|
||||
matrix_write(matrix, "\n");
|
||||
matrix_write(matrix, read_keylog());
|
||||
matrix_write(matrix, "\n");
|
||||
matrix_write(matrix, read_keylogs());
|
||||
matrix_write(matrix, "\n");
|
||||
oled_write_ln(read_layer_state(), false);
|
||||
oled_write_ln(read_keylog(), false);
|
||||
oled_write_ln(read_keylogs(), 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) {
|
||||
if (record->event.pressed) {
|
||||
#ifdef SSD1306OLED
|
||||
#ifdef OLED_ENABLE
|
||||
set_keylog(keycode, record);
|
||||
#endif
|
||||
}
|
||||
|
@@ -1,14 +1,12 @@
|
||||
# Build Options
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
SRC += ./lib/rgb_state_reader.c \
|
||||
./lib/layer_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
||||
|
||||
VPATH += keyboards/crkbd/lib
|
||||
LIB_SRC += ssd1306.c i2c.c
|
||||
|
@@ -28,9 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define USE_SSD_I2C
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
|
@@ -16,19 +16,17 @@ UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
SRC += ./lib/rgb_state_reader.c \
|
||||
./lib/layer_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
||||
# ./lib/mode_icon_reader.c \
|
||||
# ./lib/host_led_state_reader.c \
|
||||
# ./lib/timelogger.c \
|
||||
|
||||
VPATH += keyboards/crkbd/lib
|
||||
LIB_SRC += ssd1306.c i2c.c
|
||||
|
Reference in New Issue
Block a user