aboutsummaryrefslogtreecommitdiff
path: root/keyboards/ymd75/ymd75.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ymd75/ymd75.c')
-rw-r--r--keyboards/ymd75/ymd75.c95
1 files changed, 95 insertions, 0 deletions
diff --git a/keyboards/ymd75/ymd75.c b/keyboards/ymd75/ymd75.c
new file mode 100644
index 000000000..2259dfa5f
--- /dev/null
+++ b/keyboards/ymd75/ymd75.c
@@ -0,0 +1,95 @@
1/*
2Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include "ymd75.h"
19//#include "rgblight.h"
20
21#include <avr/pgmspace.h>
22
23#include "action_layer.h"
24#include "i2c.h"
25#include "quantum.h"
26
27#include "backlight.h"
28#include "backlight_custom.h"
29
30// for keyboard subdirectory level init functions
31// @Override
32void matrix_init_kb(void) {
33 // call user level keymaps, if any
34 matrix_init_user();
35}
36
37#ifdef BACKLIGHT_ENABLE
38/// Overrides functions in `quantum.c`
39void backlight_init_ports(void) {
40 b_led_init_ports();
41}
42
43void backlight_task(void) {
44 b_led_task();
45}
46
47void backlight_set(uint8_t level) {
48 b_led_set(level);
49}
50#endif
51
52#ifdef RGBLIGHT_ENABLE
53extern rgblight_config_t rgblight_config;
54
55// custom RGB driver
56void rgblight_set(void) {
57 if (!rgblight_config.enable) {
58 for (uint8_t i=0; i<RGBLED_NUM; i++) {
59 led[i].r = 0;
60 led[i].g = 0;
61 led[i].b = 0;
62 }
63 }
64
65 i2c_init();
66 i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
67}
68
69bool rgb_init = false;
70
71void matrix_scan_kb(void) {
72 // if LEDs were previously on before poweroff, turn them back on
73 if (rgb_init == false && rgblight_config.enable) {
74 i2c_init();
75 i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
76 rgb_init = true;
77 }
78
79 rgblight_task();
80#else
81 void matrix_scan_kb(void) {
82#endif
83 matrix_scan_user();
84 /* Nothing else for now. */
85 }
86
87 __attribute__((weak)) // overridable
88 void matrix_init_user(void) {
89
90 }
91
92 __attribute__((weak)) // overridable
93 void matrix_scan_user(void) {
94
95 }