]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ares/ares.c
Add missing links to features page and sidebar section (#5949)
[qmk_firmware.git] / keyboards / ares / ares.c
1 /*
2 Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #include "ares.h"
19
20 #ifdef RGBLIGHT_ENABLE
21
22 #include <string.h>
23 #include "i2c_master.h"
24 #include "rgblight.h"
25
26 extern rgblight_config_t rgblight_config;
27
28 void matrix_init_kb(void) {
29   i2c_init();
30   // call user level keymaps, if any
31   matrix_init_user();
32 }
33
34 // custom RGB driver
35 void rgblight_set(void) {
36   if (!rgblight_config.enable) {
37     memset(led, 0, 3 * RGBLED_NUM);
38   }
39
40   i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
41 }
42
43 bool rgb_init = false;
44
45 void matrix_scan_kb(void) {
46   // if LEDs were previously on before poweroff, turn them back on
47   if (rgb_init == false && rgblight_config.enable) {
48     i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
49     rgb_init = true;
50   }
51
52   rgblight_task();
53   matrix_scan_user();
54 }
55
56 #endif
57
58 #ifdef BACKLIGHT_ENABLE
59 void backlight_init_ports(void) {
60     setPinOutput(D0);
61     setPinOutput(D1);
62     setPinOutput(D4);
63     setPinOutput(D6);
64 }
65
66 void backlight_set(uint8_t level) {
67         if (level == 0) {
68                 // Turn out the lights
69                 writePinLow(D0);
70                 writePinLow(D1);
71                 writePinLow(D4);
72                 writePinLow(D6);
73         } else {
74                 // Turn on the lights
75                 writePinHigh(D0);
76                 writePinHigh(D1);
77                 writePinHigh(D4);
78                 writePinHigh(D6);
79         }
80 }
81 #endif
82
83 // Optional override functions below.
84 // You can leave any or all of these undefined.
85 // These are only required if you want to perform custom actions.
86
87 /*
88 void matrix_init_kb(void) {
89   // put your keyboard start-up code here
90   // runs once when the firmware starts up
91   matrix_init_user();
92 }
93 void matrix_scan_kb(void) {
94   // put your looping keyboard code here
95   // runs every cycle (a lot)
96   matrix_scan_user();
97 }
98 bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
99   // put your per-action keyboard code here
100   // runs for every action, just before processing by the firmware
101   return process_record_user(keycode, record);
102 }
103 void led_set_kb(uint8_t usb_led) {
104   // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
105   led_set_user(usb_led);
106 }
107 */