Skip to content

Commit

Permalink
Remove old OLED API code (#21651)
Browse files Browse the repository at this point in the history
  • Loading branch information
fauxpark authored Jul 31, 2023
1 parent f407d90 commit 6018b56
Show file tree
Hide file tree
Showing 28 changed files with 2 additions and 1,017 deletions.
2 changes: 0 additions & 2 deletions keyboards/10bleoledhub/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.*/

#pragma once

#define SSD1306OLED

#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
Expand Down
2 changes: 0 additions & 2 deletions keyboards/crkbd/keymaps/crkqwes/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,7 @@ 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 QUICK_TAP_TERM 0
#define TAPPING_TERM 200
Expand Down
4 changes: 0 additions & 4 deletions keyboards/crkbd/keymaps/hvp/keymap.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
#include QMK_KEYBOARD_H
#include "hvp.c"
#ifdef SSD1306OLED
# include "ssd1306.h"
# include <string.h>
#endif

#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
Expand Down
3 changes: 0 additions & 3 deletions keyboards/crkbd/keymaps/markstos/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ This is the C configuration file for the keymap
#define MASTER_RIGHT
// #define EE_HANDS

//#define SSD1306OLED


// By default, when holding a dual-function key shortly after tapping it, the
// tapped key will begin repeating. This is handy for fast typists when typing
// words with double letters, such as "happy". If you turn this setting ON, it
Expand Down
8 changes: 0 additions & 8 deletions keyboards/helix/rev2/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -340,21 +340,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}

#ifdef SSD1306OLED
#include "ssd1306.h"
#endif

void matrix_init_user(void) {
#ifdef AUDIO_ENABLE
startup_user();
#endif
#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(!has_usb()); // turns on the display
#endif
}


Expand Down
147 changes: 0 additions & 147 deletions keyboards/helix/rev2/keymaps/default/oled_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,150 +136,3 @@ bool oled_task_user(void) {
return false;
}
#endif // end of OLED_ENABLE

//SSD1306 OLED update loop
/*
The following code is left as a sample to help you transition from SSD1306OLED to OLED_ENABLE.
* `matrix_write(matrix, data)` is replaced by `oled_write(data, false)`.
* `matrix_write_P(matrix, data)` is replaced by `oled_write_P(data, false)`.
* It is no longer necessary to call `iota_gfx_task()`.
* `matrix_update()` are no longer needed.
* `iota_gfx_task_user()` is no longer needed. Instead, `bool oled_task_user(void)` is provided.
以下のコードは、SSD1306OLED から OLED_ENABLE に移行する助けになるようにサンプルとして残してあります。
* `matrix_write(matrix, data)` は、`oled_write(data, false)` に書き換えます。
* `matrix_write_P(matrix, data)` は、`oled_write_P(data, false)` に書き換えます。
* `iota_gfx_task()` を呼び出す必要はなくなります。
* `matrix_update()` は不要になります。
* `iota_gfx_task_user()` は不要になります。代りに `bool oled_task_user(void)` を用意します。
*/

#ifdef SSD1306OLED
#include "ssd1306.h"
#define oled_write(data,flag) matrix_write(matrix, data)
#define oled_write_P(data,flag) matrix_write_P(matrix, data)

void matrix_scan_user(void) {
iota_gfx_task(); // this is what updates the display continuously
}

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;
}
}

static void render_logo(struct CharacterMatrix *matrix) {

static const char helix_logo[] PROGMEM ={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
0};
oled_write_P(helix_logo, false);
}

static void render_rgbled_status(bool full, struct CharacterMatrix *matrix) {
# ifdef RGBLIGHT_ENABLE
char buf[30];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) {
if (full) {
snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ",
rgblight_get_mode(),
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
rgblight_get_val()/RGBLIGHT_VAL_STEP);
} else {
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
}
oled_write(buf, false);
}
# endif
}

static void render_layer_status(struct CharacterMatrix *matrix) {
// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
char buf[10];
oled_write_P(PSTR("Layer: "), false);
switch (layer_state) {
case L_BASE:
oled_write_P(PSTR("Default"), false);
break;
case L_RAISE:
oled_write_P(PSTR("Raise"), false);
break;
case L_LOWER:
oled_write_P(PSTR("Lower"), false);
break;
case L_ADJUST:
case L_ADJUST_TRI:
oled_write_P(PSTR("Adjust"), false);
break;
default:
oled_write_P(PSTR("Undef-"), false);
snprintf(buf,sizeof(buf), "%ld", layer_state);
oled_write(buf, false);
}
oled_write_P(PSTR("\n"), false);
}

void render_status(struct CharacterMatrix *matrix) {
// Render to mode icon
static const char os_logo[][2][3] PROGMEM = {{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
if (is_mac_mode()) {
oled_write_P(os_logo[0][0], false);
oled_write_P(PSTR("\n"), false);
oled_write_P(os_logo[0][1], false);
} else {
oled_write_P(os_logo[1][0], false);
oled_write_P(PSTR("\n"), false);
oled_write_P(os_logo[1][1], false);
}

oled_write_P(PSTR(" "), false);
render_layer_status(matrix);

// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUMLOCK") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCLK") : PSTR(" "), false);
oled_write_P(PSTR("\n"), false);
render_rgbled_status(true, matrix);
}

# if OLED_UPDATE_INTERVAL > 0
uint16_t oled_update_timeout;
# endif

void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;

# if DEBUG_TO_SCREEN
if (debug_enable) {
return;
}
# endif

# if OLED_UPDATE_INTERVAL > 0
if (timer_elapsed(oled_update_timeout) < OLED_UPDATE_INTERVAL) {
return;
}
oled_update_timeout = timer_read();
# endif
matrix_clear(&matrix);
if (is_keyboard_master()) {
render_status(&matrix);
} else {
render_logo(&matrix);
render_rgbled_status(false, &matrix);
render_layer_status(&matrix);
}
matrix_update(&display, &matrix);
}

#endif // end of SSD1306OLED
120 changes: 2 additions & 118 deletions keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
#include "keymap_japanese.h"
#include <stdio.h>
#include <string.h>
#ifdef SSD1306OLED
#include "ssd1306.h"
#endif

// * If you want to recognize that you pressed the Adjust key with the Lower / Raise key you can enable this comment out. However, the binary size may be over. *
// #define ADJUST_MACRO_ENABLE
Expand Down Expand Up @@ -192,7 +189,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

#if defined(SSD1306OLED) || defined(OLED_ENABLE)
#if defined(OLED_ENABLE)
char keylog[24] = {};
const char code_to_name[60] = {
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
Expand Down Expand Up @@ -249,7 +246,7 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
#endif

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#if defined(SSD1306OLED) || defined(OLED_ENABLE)
#if defined(OLED_ENABLE)
if (record->event.pressed) {
set_keylog(keycode, record);
}
Expand Down Expand Up @@ -310,121 +307,8 @@ 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(!has_usb()); // turns on the display
#endif
}

//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED

void matrix_scan_user(void) {
iota_gfx_task(); // this is what updates the display continuously
}

static inline 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;
}
}

//assign the right code to your layers for OLED display
#define L_BASE _BASE
#define L_LOWER (1<<_LOWER)
#define L_RAISE (1<<_RAISE)
#define L_ADJUST (1<<_ADJUST)
#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER)
#define L_LOW_E (1<<_LOW_E)
#define L_RAI_E (1<<_RAI_E)
#define L_ADJUST_TRIE (L_ADJUST|L_RAI_E|L_LOW_E)

const char helix_logo[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
0};

static inline void render_logo(struct CharacterMatrix *matrix) {

matrix_write(matrix, helix_logo);
}

const char mac_win_logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};

static inline void render_status(struct CharacterMatrix *matrix) {

char buf[20];
// Render to mode icon
if(keymap_config.swap_lalt_lgui==false){
matrix_write(matrix, mac_win_logo[0][0]);
matrix_write_P(matrix, PSTR("\n"));
matrix_write(matrix, mac_win_logo[0][1]);
} else {
matrix_write(matrix, mac_win_logo[1][0]);
matrix_write_P(matrix, PSTR("\n"));
matrix_write(matrix, mac_win_logo[1][1]);
}

#ifdef RGBLIGHT_ENABLE
snprintf(buf, sizeof(buf), " LED mode:%d", (short)RGB_current_mode);
matrix_write(matrix, buf);
#endif

// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
matrix_write_P(matrix, PSTR("\nLayer: "));
switch (layer_state) {
case L_BASE:
matrix_write_P(matrix, default_layer_state == (1UL<<_BAS_E) ? PSTR("BaseEx") : PSTR("Base"));
break;
case L_RAISE:
matrix_write_P(matrix, PSTR("Raise"));
break;
case L_RAI_E:
matrix_write_P(matrix, PSTR("RaiseEx"));
break;
case L_LOWER:
matrix_write_P(matrix, PSTR("Lower"));
break;
case L_LOW_E:
matrix_write_P(matrix, PSTR("LowerEx"));
break;
case L_ADJUST:
case L_ADJUST_TRI:
case L_ADJUST_TRIE:
matrix_write_P(matrix, PSTR("Adjust"));
break;
default:
snprintf(buf, sizeof(buf), "%d", (short)layer_state);
matrix_write(matrix, buf);
}

matrix_write(matrix, keylog);
}

void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;

#if DEBUG_TO_SCREEN
if (debug_enable) {
return;
}
#endif

matrix_clear(&matrix);
if (is_keyboard_master()) {
render_status(&matrix);
} else {
render_logo(&matrix);
}

matrix_update(&display, &matrix);
}

#endif // end of SSD1306OLED

//OLED update loop
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
Expand Down
Loading

0 comments on commit 6018b56

Please sign in to comment.