diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/oled/oled_driver.h | 4 | ||||
-rw-r--r-- | drivers/oled/ssd1306_sh1106.c | 10 |
2 files changed, 9 insertions, 5 deletions
diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index 13b73ede9d..3b56d370dc 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -190,6 +190,7 @@ bool oled_init(oled_rotation_t rotation); // Called at the start of oled_init, weak function overridable by the user // rotation - the value passed into oled_init // Return new oled_rotation_t if you want to override default rotation +oled_rotation_t oled_init_kb(oled_rotation_t rotation); oled_rotation_t oled_init_user(oled_rotation_t rotation); // Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering @@ -285,7 +286,8 @@ uint8_t oled_get_brightness(void); void oled_task(void); // Called at the start of oled_task, weak function overridable by the user -void oled_task_user(void); +bool oled_task_kb(void); +bool oled_task_user(void); // Set the specific 8 lines rows of the screen to scroll. // 0 is the default for start, and 7 for end, which is the entire diff --git a/drivers/oled/ssd1306_sh1106.c b/drivers/oled/ssd1306_sh1106.c index e9049438f5..d9bd3c14bd 100644 --- a/drivers/oled/ssd1306_sh1106.c +++ b/drivers/oled/ssd1306_sh1106.c @@ -167,7 +167,7 @@ bool oled_init(oled_rotation_t rotation) { } #endif - oled_rotation = oled_init_user(rotation); + oled_rotation = oled_init_user(oled_init_kb(rotation)); if (!HAS_FLAGS(oled_rotation, OLED_ROTATION_90)) { oled_rotation_width = OLED_DISPLAY_WIDTH; } else { @@ -232,6 +232,7 @@ bool oled_init(oled_rotation_t rotation) { return true; } +__attribute__((weak)) oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return rotation; } __attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; } void oled_clear(void) { @@ -741,11 +742,11 @@ void oled_task(void) { if (timer_elapsed(oled_update_timeout) >= OLED_UPDATE_INTERVAL) { oled_update_timeout = timer_read(); oled_set_cursor(0, 0); - oled_task_user(); + oled_task_kb(); } #else oled_set_cursor(0, 0); - oled_task_user(); + oled_task_kb(); #endif #if OLED_SCROLL_TIMEOUT > 0 @@ -776,4 +777,5 @@ void oled_task(void) { #endif } -__attribute__((weak)) void oled_task_user(void) {} +__attribute__((weak)) bool oled_task_kb(void) { return oled_task_user(); } +__attribute__((weak)) bool oled_task_user(void) { return true; } |