summaryrefslogtreecommitdiffstats
path: root/keyboards/doro67/rgb/rgb.c
blob: 6f39e00c6155944bab77f7221a0933aaf770e730 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/* Copyright 2019 MechMerlin
 *
 * 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 2 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 <http://www.gnu.org/licenses/>.
 */
#include "rgb.h"

// Optional override functions below.
// You can leave any or all of these undefined.
// These are only required if you want to perform custom actions.



void matrix_init_kb(void) {
  // put your keyboard start-up code here
  // runs once when the firmware starts up
  setPinOutput(E6);
  matrix_init_user();
}

void matrix_scan_kb(void) {
  // put your looping keyboard code here
  // runs every cycle (a lot)

  matrix_scan_user();
}

bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
  // put your per-action keyboard code here
  // runs for every action, just before processing by the firmware

  return process_record_user(keycode, record);
}

void led_set_kb(uint8_t usb_led) {
	// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
  if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
    writePinLow(E6);
  } else {
    writePinHigh(E6);
  }
	led_set_user(usb_led);
}

const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
    {{0|(0<<4)},   {15*0, 0},  0},     // Esc
    {{0|(1<<4)},   {15*1, 0},  0},     // 1
    {{0|(2<<4)},   {15*2, 0},  0},     // 2
    {{0|(3<<4)},   {15*3, 0},  0},     // 3
    {{0|(4<<4)},   {15*4, 0},  0},     // 4
    {{0|(5<<4)},   {15*5, 0},  0},     // 5
    {{0|(6<<4)},   {15*6, 0},  0},     // 6
    {{0|(7<<4)},   {15*7, 0},  0},     // 7
    {{0|(8<<4)},   {15*8, 0},  0},     // 8
    {{0|(9<<4)},   {15*9, 0},  0},     // 9
    {{0|(10<<4)},  {15*10, 0}, 0},     // 0
    {{0|(11<<4)},  {15*11, 0}, 0},     // -
    {{0|(12<<4)},  {15*12, 0}, 0},     // =
    {{0|(13<<4)},  {15*13.5, 0}, 1},   // Backspace
    {{0|(14<<4)},  {15*15, 0},   1},   // Ins

    {{1|(0<<4)},   {15*0.5, 16},  1},  // Tab
    {{1|(1<<4)},   {15*1.5, 16},  0},  // Q
    {{1|(2<<4)},   {15*2.5, 16},  0},  // W
    {{1|(3<<4)},   {15*3.5, 16},  0},  // E
    {{1|(4<<4)},   {15*4.5, 16},  0},  // R
    {{1|(5<<4)},   {15*5.5, 16},  0},  // T
    {{1|(6<<4)},   {15*6.5, 16},  0},  // Y
    {{1|(7<<4)},   {15*7.5, 16},  0},  // U
    {{1|(8<<4)},   {15*8.5, 16},  0},  // I
    {{1|(9<<4)},   {15*9.5, 16},  0},  // O
    {{1|(10<<4)},  {15*10.5, 16}, 0},  // P
    {{1|(11<<4)},  {15*11.5, 16}, 0},  // [
    {{1|(12<<4)},  {15*12.5, 16},  0}, // ]
    {{1|(13<<4)},  {15*13.75, 16}, 1}, // 
    {{1|(14<<4)},  {15*15, 16},    1}, // Del

    {{2|(0<<4)},   {15*0.75, 32},  1}, // Capslock
    {{2|(1<<4)},   {15*1.75, 32},  0}, // A
    {{2|(2<<4)},   {15*2.75, 32},  0}, // S
    {{2|(3<<4)},   {15*3.75, 32},  0}, // D
    {{2|(4<<4)},   {15*4.75, 32},  0}, // F
    {{2|(5<<4)},   {15*5.75, 32},  0}, // G
    {{2|(6<<4)},   {15*6.75, 32},  0}, // H
    {{2|(7<<4)},   {15*7.75, 32},  0}, // J
    {{2|(8<<4)},   {15*8.75, 32},  0}, // K
    {{2|(9<<4)},   {15*9.75, 32},  0}, // L
    {{2|(10<<4)},  {15*10.75, 32}, 0}, // ;
    {{2|(11<<4)},  {15*11.75, 32}, 0}, // '
    {{2|(13<<4)},  {15*13.25, 32}, 1}, // Enter
    {{2|(14<<4)},  {15*15, 32},    1}, // Pgup

    {{3|(0<<4)},   {15*1.25, 48},  1}, // LShift
    {{3|(2<<4)},   {15*2, 48},  0},    // Z
    {{3|(3<<4)},   {15*3, 48},  0},    // X
    {{3|(4<<4)},   {15*4, 48},  0},    // C
    {{3|(5<<4)},   {15*5, 48},  0},    // V
    {{3|(6<<4)},   {15*6, 48},  0},    // B
    {{3|(7<<4)},   {15*7, 48},  0},    // N
    {{3|(8<<4)},   {15*8, 48},  0},    // M
    {{3|(9<<4)},   {15*9, 48},  0},    // ,
    {{3|(10<<4)},  {15*10, 48},  0},   // .
    {{3|(11<<4)},  {15*11, 48}, 0},    // /
    {{3|(12<<4)},  {15*12.75, 48}, 1}, // Shift
    {{3|(13<<4)},  {15*14, 48}, 1},    // Up
    {{3|(14<<4)},  {15*15, 48}, 1},    // Pgdn
    
    {{4|(0<<4)},   {15*0.25,  64}, 1}, // Ctrl
    {{4|(1<<4)},   {15*1.5,   64}, 1}, // GUI
    {{4|(2<<4)},   {15*2.25,  64}, 1}, // Alt
    {{4|(3<<4)},   {15*6.75,  64}, 0}, // Space
    {{4|(9<<4)},   {15*9,     64}, 1}, // RAlt
    {{4|(10<<4)},  {15*10.25, 64}, 1}, // FN
    {{4|(12<<4)},  {15*13,    64}, 1}, // Left
    {{4|(13<<4)},  {15*14,    64}, 1}, // Down
    {{4|(14<<4)},  {15*15,    64}, 1}, // Right
};