aboutsummaryrefslogtreecommitdiff
path: root/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c
diff options
context:
space:
mode:
authorAkshay <[email protected]>2022-04-10 12:13:40 +0100
committerAkshay <[email protected]>2022-04-10 12:13:40 +0100
commitdc90387ce7d8ba7b607d9c48540bf6d8b560f14d (patch)
tree4ccb8fa5886b66fa9d480edef74236c27f035e16 /keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c
Diffstat (limited to 'keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c')
-rw-r--r--keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c b/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c
new file mode 100644
index 000000000..4ea402d80
--- /dev/null
+++ b/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c
@@ -0,0 +1,69 @@
1/* Copyright 2020 imchipwood
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include "v1x_dualencoder.h"
17
18void keyboard_pre_init_kb(void) {
19 // Set LED IO as outputs
20 setPinOutput(LED_00);
21 setPinOutput(LED_01);
22 setPinOutput(LED_02);
23 keyboard_pre_init_user();
24}
25
26void shutdown_user() {
27 // Shutdown LEDs
28 writePinLow(LED_00);
29 writePinLow(LED_01);
30 writePinLow(LED_02);
31}
32
33layer_state_t layer_state_set_kb(layer_state_t state) {
34 // Layer LEDs act as binary indication of current layer
35 uint8_t layer = get_highest_layer(state);
36 writePin(LED_00, layer & 0b1);
37 writePin(LED_01, (layer >> 1) & 0b1);
38 return layer_state_set_user(state);
39}
40
41// Optional override functions below.
42// You can leave any or all of these undefined.
43// These are only required if you want to perform custom actions.
44
45void matrix_init_kb(void) {
46 // put your keyboard start-up code here
47 // runs once when the firmware starts up
48 uint8_t led_delay_ms = 80;
49 for (int i = 0; i < 2; i++) {
50 writePinHigh(LED_00);
51 writePinHigh(LED_01);
52 writePinHigh(LED_02);
53 wait_ms(led_delay_ms);
54 writePinLow(LED_00);
55 writePinLow(LED_01);
56 writePinLow(LED_02);
57 if (i < 1) {
58 wait_ms(led_delay_ms);
59 }
60 }
61
62 matrix_init_user();
63}
64
65void led_set_kb(uint8_t usb_led) {
66 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
67 writePin(LED_02, !IS_LED_ON(usb_led, USB_LED_NUM_LOCK));
68 led_set_user(usb_led);
69}