summaryrefslogtreecommitdiffstats
path: root/keyboards/mechmini/v1/v1.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mechmini/v1/v1.c')
-rw-r--r--keyboards/mechmini/v1/v1.c52
1 files changed, 42 insertions, 10 deletions
diff --git a/keyboards/mechmini/v1/v1.c b/keyboards/mechmini/v1/v1.c
index 24c74c6cf..508d60c78 100644
--- a/keyboards/mechmini/v1/v1.c
+++ b/keyboards/mechmini/v1/v1.c
@@ -22,23 +22,55 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
#include "rgblight.h"
-// custom RGB driver
+// for keyboard subdirectory level init functions
+// @Override
+void matrix_init_kb(void) {
+ // call user level keymaps, if any
+ matrix_init_user();
+}
+
+#ifdef RGBLIGHT_ENABLE
extern rgblight_config_t rgblight_config;
+
+// custom RGB driver
void rgblight_set(void) {
- if (!rgblight_config.enable) {
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
- }
+ if (!rgblight_config.enable) {
+ for (uint8_t i=0; i<RGBLED_NUM; i++) {
+ led[i].r = 0;
+ led[i].g = 0;
+ led[i].b = 0;
}
+ }
+
+ i2c_init();
+ i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
+}
+bool rgb_init = false;
+
+void matrix_scan_kb(void) {
+ // if LEDs were previously on before poweroff, turn them back on
+ if (rgb_init == false && rgblight_config.enable) {
i2c_init();
i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
+ rgb_init = true;
+ }
+
+ rgblight_task();
+#else
+void matrix_scan_kb(void) {
+#endif
+ matrix_scan_user();
+ /* Nothing else for now. */
}
-__attribute__ ((weak))
+__attribute__((weak)) // overridable
+void matrix_init_user(void) {
+
+}
+
+
+__attribute__((weak)) // overridable
void matrix_scan_user(void) {
- rgblight_task();
- /* add other tasks to be done on each matrix scan */
+
}