Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove old OLED API code #21651

Merged
merged 1 commit into from
Jul 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading