From 0774cb31aa832f5e9dd3df1c70deb53b7a6c658a Mon Sep 17 00:00:00 2001 From: silvinor <366673+silvinor@users.noreply.github.com> Date: Mon, 2 Jun 2025 15:44:14 +1000 Subject: [PATCH] post 2nd @drashna review --- keyboards/binepad/candypad/candypad.c | 33 ----- keyboards/binepad/candypad/candypad.h | 33 ----- keyboards/binepad/candypad/candypad_oled.c | 63 +-------- keyboards/binepad/candypad/config.h | 6 +- keyboards/binepad/candypad/glcdfont.c | 142 --------------------- 5 files changed, 7 insertions(+), 270 deletions(-) delete mode 100644 keyboards/binepad/candypad/candypad.c delete mode 100644 keyboards/binepad/candypad/candypad.h delete mode 100644 keyboards/binepad/candypad/glcdfont.c diff --git a/keyboards/binepad/candypad/candypad.c b/keyboards/binepad/candypad/candypad.c deleted file mode 100644 index 7362385d3ab..00000000000 --- a/keyboards/binepad/candypad/candypad.c +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2023 binepad (@binepad) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "candypad.h" - -#ifdef OLED_ENABLE - -// OLED functions -uint8_t oled_mode = OLED_SPLASH; -bool oled_repaint_requested = false; -uint32_t oled_splash_timer = 0; - -void housekeeping_task_kb(void) { - if (0 != oled_splash_timer) { - if (timer_elapsed(oled_splash_timer) > OLED_SPLASH_TIMEOUT) { - switch (oled_mode) { - case OLED_SPLASH: - default: - oled_mode = OLED_DEFAULT; - oled_splash_timer = 0; // disable - break; - } - oled_repaint_requested = true; - } - } -} - -void suspend_wakeup_init_kb(void) { - oled_on(); - suspend_wakeup_init_user(); -} - -#endif // OLED_ENABLE diff --git a/keyboards/binepad/candypad/candypad.h b/keyboards/binepad/candypad/candypad.h deleted file mode 100644 index e4259e8726d..00000000000 --- a/keyboards/binepad/candypad/candypad.h +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2023 binepad (@binepad) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "quantum.h" - -#ifdef OLED_ENABLE - -# ifndef OLED_SPLASH_TIMEOUT -# define OLED_SPLASH_TIMEOUT 2500 -# endif - -// clang-format off -enum oled_modes { - OLED_SPLASH, - OLED_DEFAULT, - OLED_OFF, - __NUM_OLED_MODES -} oled_modes_t; -// clang-format on - -bool candypad_render_logo_user(void); -bool candypad_render_logo_kb(void); -bool candypad_render_default_user(void); -bool candypad_render_default_kb(void); - -// OLED functions -extern uint8_t oled_mode; -extern bool oled_repaint_requested; -extern uint32_t oled_splash_timer; - -#endif diff --git a/keyboards/binepad/candypad/candypad_oled.c b/keyboards/binepad/candypad/candypad_oled.c index e88ea747e81..fa4f450023e 100644 --- a/keyboards/binepad/candypad/candypad_oled.c +++ b/keyboards/binepad/candypad/candypad_oled.c @@ -3,40 +3,11 @@ // Portions of this code are based on [Andrew Kannan](https://github.com/awkannan1)'s // work on the Satisfaction75 -#include "candypad.h" +#include "quantum.h" #include "keymap_introspection.h" #ifdef OLED_ENABLE -/* CandyPad Logo */ -static void __candypad_render_logo_default(void) { - // Generated from https://joric.github.io/qle/ - static const char PROGMEM raw_logo[] = { - 0, 0, 0, 0, 128, 192, 224, 96, 240, 240, 152, 24, 24, 24, 24, 24, 24, 24, 24, 56, 48, 96, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 192, 248, 62, 7, 15, 28, 56, 112, 225, 195, 135, 14, 28, 56, 112, 224, 192, 128, 0, 0, 0, 0, 1, 7, 62, 252, 192, 0, 128, 192, 224, 112, 48, 48, 48, 112, 96, 0, 128, 192, 224, 96, - 48, 48, 48, 112, 224, 240, 240, 0, 0, 240, 240, 96, 112, 48, 48, 48, 112, 224, 192, 128, 0, 0, 128, 192, 224, 112, 48, 48, 48, 112, 224, 255, 255, 0, 48, 112, 224, 128, 0, 0, 0, 0, 128, 224, 112, 48, 0, 240, 240, 224, 112, 48, 48, 48, 112, 224, 192, 128, 0, 0, 128, 192, 224, 96, 48, 48, 48, 112, 224, 240, 240, 0, 0, 128, 192, 224, 112, 48, 48, 48, 112, 224, 255, 255, 0, 0, 3, 31, 124, 224, 192, 0, 0, 0, 0, 1, 3, 7, 14, 28, 56, 112, 225, 195, 135, 14, 28, 56, 240, 224, 124, 63, 3, 0, 15, 31, 56, 112, 96, 96, 96, 112, 48, 0, 15, 31, 56, 112, 96, 96, 96, 112, 56, 127, 127, 0, 0, 127, 127, 0, 0, 0, 0, 0, 0, 1, 127, 127, 0, 0, 15, 31, 56, 112, 96, 96, 96, 112, 56, 127, 127, 0, 0, 0, 3, 15, 62, 240, 248, 62, 15, - 3, 0, 0, 0, 255, 255, 56, 112, 96, 96, 96, 112, 56, 31, 15, 0, 0, 15, 31, 56, 112, 96, 96, 96, 112, 56, 127, 127, 0, 0, 15, 63, 56, 112, 96, 96, 96, 112, 56, 127, 127, 0, 0, 0, 0, 0, 1, 3, 7, 6, 14, 12, 24, 24, 24, 24, 24, 24, 24, 24, 25, 15, 15, 6, 7, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 31, 7, 1, 0, 0, 0, 0, 0, 0, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }; - oled_write_raw_P(raw_logo, sizeof(raw_logo)); -} - -// Weak so that user keymaps can make their own -__attribute__((weak)) bool candypad_render_logo_user(void) { - return false; // Return true if your user keymap renders its own -} - -__attribute__((weak)) bool candypad_render_logo_kb(void) { - if (!candypad_render_logo_user()) { - __candypad_render_logo_default(); - } - return true; -} - -oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - oled_mode = OLED_SPLASH; - oled_splash_timer = sync_timer_read(); - return rotation; -} - static char *get_enc_mode(uint8_t encoder) { # ifdef ENCODER_MAP_ENABLE @@ -206,38 +177,16 @@ __attribute__((weak)) bool candypad_render_default_kb(void) { return true; // Was handled here } +void oled_request_repaint(void) { + oled_clear(); +} + bool oled_task_kb(void) { if (!oled_task_user()) { return false; } - // if (!oled_task_needs_to_repaint()) { return false; } - /* !! : oled_clear(); // Is broken !!! */ - if (oled_repaint_requested) { - oled_repaint_requested = false; - oled_clear(); - return false; - } - - switch (oled_mode) { - case OLED_OFF: - // Do nothing - // This PCB has no digital switch to power off the OLED :( - break; - - case OLED_SPLASH: - if (candypad_render_logo_kb()) { - break; - } else { - oled_mode = OLED_DEFAULT; - // don't break - let the default draw - } - - case OLED_DEFAULT: - default: - candypad_render_default_kb(); - break; - } + candypad_render_default_kb(); return false; } diff --git a/keyboards/binepad/candypad/config.h b/keyboards/binepad/candypad/config.h index 20c0c88abcf..eefc84cd924 100644 --- a/keyboards/binepad/candypad/config.h +++ b/keyboards/binepad/candypad/config.h @@ -14,12 +14,8 @@ # define I2C_DRIVER I2CD1 /* Configure oled driver for the 128x32 oled */ -# define OLED_TIMEOUT (15 * 60 * 1000) // 15 minutes +# define OLED_TIMEOUT (2 * 60 * 1000) // 2 minutes # define OLED_UPDATE_INTERVAL 33 // ~30fps - -/* Font */ -# define OLED_FONT_H "keyboards/binepad/candypad/glcdfont.c" -# define OLED_FONT_END 127 #endif // OLED_ENABLE /* ---- Direct pins, for use in (custom) `matrix.c` (please read that file) ----- */ diff --git a/keyboards/binepad/candypad/glcdfont.c b/keyboards/binepad/candypad/glcdfont.c deleted file mode 100644 index aa6588df260..00000000000 --- a/keyboards/binepad/candypad/glcdfont.c +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2023 binepad (@binepad) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "progmem.h" - -/* based on https://lexus2k.github.io/ssd1306/ssd1306__fonts_8c_source.html, chars 32 - 127 */ -/* generated and tested on https://joric.github.io/qle/ */ -// clang-format off -static const unsigned char PROGMEM font[] = { - 0xFF, 0x81, 0x81, 0x81, 0xFF, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // sp - 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x55, 0x22, 0x50, 0x00, - 0x00, 0x05, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x14, 0x08, 0x3E, 0x08, 0x14, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x00, 0xA0, 0x60, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x42, 0x61, 0x51, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x45, 0x4B, 0x31, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x30, 0x00, - 0x01, 0x71, 0x09, 0x05, 0x03, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x06, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x36, 0x36, 0x00, 0x00, 0x00, - 0x00, 0x56, 0x36, 0x00, 0x00, 0x00, - 0x08, 0x14, 0x22, 0x41, 0x00, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x51, 0x09, 0x06, 0x00, - - 0x32, 0x49, 0x59, 0x51, 0x3E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x22, 0x1C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x49, 0x49, 0x7A, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x0C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x46, 0x49, 0x49, 0x49, 0x31, 0x00, - 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x07, 0x08, 0x70, 0x08, 0x07, 0x00, - 0x61, 0x51, 0x49, 0x45, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x00, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x7F, 0x00, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - - 0x00, 0x01, 0x02, 0x04, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x54, 0x78, 0x00, - 0x7F, 0x48, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x20, 0x00, - 0x38, 0x44, 0x44, 0x48, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x08, 0x7E, 0x09, 0x01, 0x02, 0x00, - 0x18, 0xA4, 0xA4, 0xA4, 0x7C, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x40, 0x80, 0x84, 0x7D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x18, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0xFC, 0x24, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x20, 0x00, - 0x04, 0x3F, 0x44, 0x40, 0x20, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x1C, 0xA0, 0xA0, 0xA0, 0x7C, 0x00, - 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, - 0x00, 0x00, 0x08, 0x77, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x08, 0x00, 0x00, - 0x00, 0x10, 0x08, 0x10, 0x08, 0x00, - 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA -}; -// clang-format on