From ffd8acf7cc05fcfe611bb029bdd1b0b03789a72e Mon Sep 17 00:00:00 2001
From: mawaeg <62243375+mawaeg@users.noreply.github.com>
Date: Wed, 5 Mar 2025 20:08:48 +0100
Subject: [PATCH] Move oled logic, adapt file permissions
---
keyboards/mawaeg/sharkropad/halconf.h | 0
keyboards/mawaeg/sharkropad/keyboard.json | 2 +-
.../sharkropad/keymaps/default/keymap.c | 71 -----------
.../sharkropad/keymaps/default/rules.mk | 0
keyboards/mawaeg/sharkropad/mcuconf.h | 0
keyboards/mawaeg/sharkropad/readme.md | 0
keyboards/mawaeg/sharkropad/sharkropad.c | 119 ++++++++++++++++++
7 files changed, 120 insertions(+), 72 deletions(-)
mode change 100755 => 100644 keyboards/mawaeg/sharkropad/halconf.h
mode change 100755 => 100644 keyboards/mawaeg/sharkropad/keyboard.json
mode change 100755 => 100644 keyboards/mawaeg/sharkropad/keymaps/default/keymap.c
mode change 100755 => 100644 keyboards/mawaeg/sharkropad/keymaps/default/rules.mk
mode change 100755 => 100644 keyboards/mawaeg/sharkropad/mcuconf.h
mode change 100755 => 100644 keyboards/mawaeg/sharkropad/readme.md
create mode 100644 keyboards/mawaeg/sharkropad/sharkropad.c
diff --git a/keyboards/mawaeg/sharkropad/halconf.h b/keyboards/mawaeg/sharkropad/halconf.h
old mode 100755
new mode 100644
diff --git a/keyboards/mawaeg/sharkropad/keyboard.json b/keyboards/mawaeg/sharkropad/keyboard.json
old mode 100755
new mode 100644
index b95d42e4589..ee6715d3723
--- a/keyboards/mawaeg/sharkropad/keyboard.json
+++ b/keyboards/mawaeg/sharkropad/keyboard.json
@@ -78,7 +78,7 @@
"typing_heatmap": true
},
"default": {
- "animation": "gradient_up_down"
+ "animation": "cycle_up_down"
},
"driver": "ws2812",
"layout": [
diff --git a/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c b/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c
old mode 100755
new mode 100644
index 9c7be00d97f..6a95257a1ca
--- a/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c
+++ b/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c
@@ -43,74 +43,3 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(RM_SPDD, RM_SPDU)},
};
#endif
-
-#ifdef OLED_ENABLE
-
-const char *rgb_matrix_effect_names[] = {
- "None",
- "Solid Color",
- "Alphas Mods",
- "Gradient Up/Down",
- "Gradient Left/Right",
- "Breathing",
- "Band Saturation",
- "Band Value",
- "Band Pinwheel Sat",
- "Band Pinwheel Val",
- "Band Spiral Sat",
- "Band Spiral Val",
- "Cycle All",
- "Cycle Left/Right",
- "Cycle Up/Down",
- "Cycle Out/In",
- "Cycle Out/In Dual",
- "Rainbow Chevron",
- "Cycle Pinwheel",
- "Cycle Spiral",
- "Dual Beacon",
- "Rainbow Beacon",
- "Rainbow Pinwheels",
- "Flower Blooming",
- "Raindrops",
- "Jellybean Raindrops",
- "Hue Breathing",
- "Hue Pendulum",
- "Hue Wave",
- "Pixel Fractal",
- "Pixel Flow",
- "Pixel Rain",
- "Typing Heatmap",
- "Digital Rain",
- "Reactive Simple",
- "Reactive",
- "Reactive Wide",
- "Reactive Multiwide",
- "Reactive Cross",
- "Reactive Multicross",
- "Reactive Nexus",
- "Reactive Multinexus",
- "Splash",
- "Multisplash",
- "Solid Splash",
- "Solid Multisplash",
- "Starlight",
- "Starlight Dual Hue",
- "Starlight Dual Sat",
- "Riverflow",
- "Effect Max"
-};
-
-bool oled_task_user(void) {
-
- oled_write_ln_P(PSTR("Mode: "), false);
- oled_write_ln(rgb_matrix_effect_names[rgb_matrix_get_mode()], false);
-
- oled_write_ln_P(PSTR("RGB Speed: "), false);
- char speedBuffer[4];
- uint8_t speedPercentage = (uint8_t)(((float)rgb_matrix_get_speed() / 255.0) * 100.0); // Proper float division
- sprintf(speedBuffer, "%d", speedPercentage);
- oled_write(speedBuffer, false);
- oled_write("% ", false);
- return false;
-}
-#endif
diff --git a/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk b/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk
old mode 100755
new mode 100644
diff --git a/keyboards/mawaeg/sharkropad/mcuconf.h b/keyboards/mawaeg/sharkropad/mcuconf.h
old mode 100755
new mode 100644
diff --git a/keyboards/mawaeg/sharkropad/readme.md b/keyboards/mawaeg/sharkropad/readme.md
old mode 100755
new mode 100644
diff --git a/keyboards/mawaeg/sharkropad/sharkropad.c b/keyboards/mawaeg/sharkropad/sharkropad.c
new file mode 100644
index 00000000000..a228d7c530a
--- /dev/null
+++ b/keyboards/mawaeg/sharkropad/sharkropad.c
@@ -0,0 +1,119 @@
+/* Copyright 2025 @mawaeg
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+#include
+#include
+
+#if defined(RGB_MATRIX_EFFECT)
+# undef RGB_MATRIX_EFFECT
+#endif // defined(RGB_MATRIX_EFFECT)
+
+#define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x,
+enum {
+ RGB_MATRIX_EFFECT_NONE,
+#include "rgb_matrix_effects.inc"
+#ifdef RGB_MATRIX_CUSTOM_KB
+# include "rgb_matrix_kb.inc"
+#endif // RGB_MATRIX_CUSTOM_KB
+#ifdef RGB_MATRIX_CUSTOM_USER
+# include "rgb_matrix_user.inc"
+#endif // RGB_MATRIX_CUSTOM_USER
+#undef RGB_MATRIX_EFFECT
+};
+
+#define RGB_MATRIX_EFFECT(x) \
+ case RGB_MATRIX_EFFECT_##x: \
+ return #x;
+const char *rgb_matrix_name(uint8_t effect) {
+ switch (effect) {
+ case RGB_MATRIX_EFFECT_NONE:
+ return "NONE";
+#include "rgb_matrix_effects.inc"
+#ifdef RGB_MATRIX_CUSTOM_KB
+# include "rgb_matrix_kb.inc"
+#endif // RGB_MATRIX_CUSTOM_KB
+#ifdef RGB_MATRIX_CUSTOM_USER
+# include "rgb_matrix_user.inc"
+#endif // RGB_MATRIX_CUSTOM_USER
+#undef RGB_MATRIX_EFFECT
+ default:
+ return "UNKNOWN";
+ }
+}
+
+static uint8_t effect_name_len = 0;
+
+const char *rgb_matrix_get_effect_name(void) {
+ static char buf[32] = {0};
+
+ snprintf(buf, sizeof(buf), "%s", rgb_matrix_name(rgb_matrix_get_mode()));
+ for (uint8_t i = 1; i < sizeof(buf); ++i) {
+ if (buf[i] == 0) {
+ effect_name_len = i;
+ break;
+ } else if (buf[i] == '_')
+ buf[i] = ' ';
+ else if (buf[i - 1] == ' ')
+ buf[i] = toupper(buf[i]);
+ else if (buf[i - 1] != ' ')
+ buf[i] = tolower(buf[i]);
+ }
+ return buf;
+}
+
+bool oled_task_user(void) {
+ static uint8_t last_effect = 0;
+ static uint8_t last_speed = 0;
+ static uint16_t key_timer = 0;
+ static uint8_t start_index = 0;
+
+ uint8_t speedPercentage = (uint8_t)(((float)rgb_matrix_get_speed() / 255.0) * 100.0);
+
+ if (last_effect != rgb_matrix_get_mode() || last_speed != speedPercentage || timer_elapsed(key_timer) > 200) {
+ last_effect = rgb_matrix_get_mode();
+ last_speed = speedPercentage;
+ key_timer = timer_read();
+
+ oled_write_ln_P(PSTR("Mode: "), false);
+ const char *name = rgb_matrix_get_effect_name();
+ if (effect_name_len > 21) {
+ if (start_index > effect_name_len) {
+ start_index = 0;
+ }
+ for (uint8_t char_index = 0; char_index < 21; char_index++) {
+ if ((start_index + char_index) % effect_name_len == 0 && char_index != 0) {
+ oled_write_char(' ', false);
+ } else {
+ oled_write_char(name[(start_index + char_index) % (effect_name_len + 1)], false);
+ }
+ }
+ start_index += 1;
+ } else {
+ oled_write_ln(name, false);
+ start_index = 0;
+ }
+
+ oled_set_cursor(0, 2);
+ oled_write_ln_P(PSTR("RGB Speed: "), false);
+ char speedBuffer[4];
+ sprintf(speedBuffer, "%d", speedPercentage);
+ oled_write(speedBuffer, false);
+ oled_write("% ", false);
+ }
+
+ return false;
+}