aboutsummaryrefslogtreecommitdiff
path: root/keyboards/dp60/dp60.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/dp60/dp60.c')
-rw-r--r--keyboards/dp60/dp60.c198
1 files changed, 198 insertions, 0 deletions
diff --git a/keyboards/dp60/dp60.c b/keyboards/dp60/dp60.c
new file mode 100644
index 000000000..16aac75fa
--- /dev/null
+++ b/keyboards/dp60/dp60.c
@@ -0,0 +1,198 @@
1/**
2 * dp60.c
3 *
4 Copyright 2020 astro <[email protected]>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
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 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
17#include "dp60.h"
18
19#ifdef RGB_MATRIX_ENABLE
20const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
21/* Refer to IS31 manual for these locations
22 * driver
23 * | R location
24 * | | G location
25 * | | | B location
26 * | | | | */
27// left CA
28 {0, C1_1, C3_2, C4_2},
29 {0, C1_2, C2_2, C4_3},
30 {0, C1_3, C2_3, C3_3},
31 {0, C1_4, C2_4, C3_4},
32 {0, C1_5, C2_5, C3_5},
33 {0, C1_6, C2_6, C3_6},
34 {0, C1_7, C2_7, C3_7},
35 {0, C1_8, C2_8, C3_8},
36
37 {0, C5_1, C4_1, C6_1},
38 {0, C5_8, C4_8, C6_8},
39
40 {0, C9_1, C8_1, C7_1},
41 {0, C9_2, C8_2, C7_2},
42 {0, C9_3, C8_3, C7_3},
43 {0, C9_4, C8_4, C7_4},
44 {0, C9_5, C8_5, C7_5},
45 {0, C9_6, C8_6, C7_6},
46 {0, C9_7, C8_7, C6_6},
47 {0, C9_8, C7_7, C6_7},
48// left CB
49 {0, C1_9, C3_10, C4_10},
50 {0, C1_10, C2_10, C4_11},
51 {0, C1_11, C2_11, C3_11},
52 {0, C1_12, C2_12, C3_12},
53 {0, C1_13, C2_13, C3_13},
54 {0, C1_14, C2_14, C3_14},
55 {0, C1_15, C2_15, C3_15},
56 {0, C1_16, C2_16, C3_16},
57
58 {0, C5_9, C4_9, C6_9},
59 {0, C5_16, C4_16, C6_16},
60
61 {0, C9_9, C8_9, C7_9},
62 {0, C9_10, C8_10, C7_10},
63 {0, C9_11, C8_11, C7_11},
64 {0, C9_12, C8_12, C7_12},
65 {0, C9_13, C8_13, C7_13},
66 {0, C9_14, C8_14, C7_14},
67 {0, C9_15, C8_15, C6_14},
68 {0, C9_16, C7_15, C6_15},
69
70// right CA
71 {1, C1_1, C3_2, C4_2},
72 {1, C1_2, C2_2, C4_3},
73 {1, C1_3, C2_3, C3_3},
74 {1, C1_4, C2_4, C3_4},
75 {1, C1_5, C2_5, C3_5},
76 {1, C1_6, C2_6, C3_6},
77 {1, C1_7, C2_7, C3_7},
78 {1, C1_8, C2_8, C3_8},
79
80 {1, C5_1, C4_1, C6_1},
81 {1, C5_8, C4_8, C6_8},
82
83 {1, C9_1, C8_1, C7_1},
84 {1, C9_2, C8_2, C7_2},
85 {1, C9_3, C8_3, C7_3},
86 {1, C9_4, C8_4, C7_4},
87 {1, C9_5, C8_5, C7_5},
88 {1, C9_6, C8_6, C7_6},
89 {1, C9_7, C8_7, C6_6},
90 {1, C9_8, C7_7, C6_7},
91// right CB
92 {1, C1_9, C3_10, C4_10},
93 {1, C1_10, C2_10, C4_11},
94 {1, C1_11, C2_11, C3_11},
95 {1, C1_12, C2_12, C3_12},
96 {1, C1_13, C2_13, C3_13},
97 {1, C1_14, C2_14, C3_14},
98 {1, C1_15, C2_15, C3_15},
99 {1, C1_16, C2_16, C3_16},
100
101 {1, C5_9, C4_9, C6_9},
102 {1, C5_16, C4_16, C6_16},
103
104 {1, C9_9, C8_9, C7_9},
105 {1, C9_10, C8_10, C7_10},
106 {1, C9_11, C8_11, C7_11},
107 {1, C9_12, C8_12, C7_12},
108 {1, C9_13, C8_13, C7_13},
109 {1, C9_14, C8_14, C7_14},
110 {1, C9_15, C8_15, C6_14},
111 {1, C9_16, C7_15, C6_15},
112};
113
114led_config_t g_led_config = {
115 {
116 { 0, 1, 2, 3, 4, 5, 6, 36, 37, 38, 39, 40, 41, 42},
117 { 8, 9, 10, 11, 12, 13, 7, 45, 46, 47, 48, 49, 50, 51},
118 { 26,27, 18, 14, 15, 16, 17, 54, 55, 56, 57, 58, 59, 53},
119 { 29,30, 31, 19, 20, 21, 22, 23, 62, 63, 64, 65, 66, 61},
120 { 35,34, 33, NO_LED, NO_LED, NO_LED, 24, 44, NO_LED, NO_LED, 68, 69, 70, 71},
121 },
122 {
123 { 32, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{ 96, 64},{ 96, 64},
124 { 0, 32},{ 16, 32},
125 { 0, 48},{ 0, 48},{ 16, 48},{ 32, 48},{ 64, 64},{ 32, 64},{ 16, 64},{ 0, 64},
126 { 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16},
127 { 0, 16},{ 16, 16},
128 { 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 48, 32},{ 64, 32},{ 80, 32},{ 96, 32},
129
130 {128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{216, 0},{224, 0},
131 {112, 0},{128, 16},
132 {144, 16},{160, 16},{176, 16},{192, 16},{208, 16},{224, 16},{224, 32},{216, 32},
133 {128, 32},{144, 32},{160, 32},{176, 32},{192, 32},{208, 32},{208, 48},{224, 48},
134 {128, 48},{144, 48},
135 {160, 48},{176, 48},{192, 48},{142, 64},{160, 64},{176, 64},{208, 64},{224, 64}
136 },
137 {
138 4, 4, 4, 4, 4, 4, 4, 4,
139 1, 4,
140 4, 4, 1, 1, 1, 4, 4, 4,
141
142 1, 4, 4, 4, 4, 4, 4, 4,
143 1, 4,
144 4, 4, 4, 4, 4, 4, 4, 4,
145
146 4, 4, 4, 4, 4, 4, 1, 1,
147 4, 4,
148 4, 4, 4, 4, 4, 1, 1, 1,
149
150 4, 4, 4, 4, 4, 4, 4, 1,
151 1, 4,
152 4, 4, 4, 4, 1, 1, 1, 1,
153 }
154};
155
156#endif
157
158#ifdef WEBUSB_ENABLE
159#include "webusb.h"
160#include "dynamic_keymap.h"
161
162
163webusb_pos_t webusb_keymap[] = {
164 {0, 0}, {0, 1}, {0, 2}, {0, 3}, {0, 4}, {0, 5}, {0, 6}, {4, 7}, {0, 7}, {0, 8}, {0, 9}, {0, 10}, {0, 11}, {0, 13},
165
166 {1, 0}, {1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, {1, 7}, {1, 8}, {1, 9}, {1, 10}, {1, 11}, {1, 12}, {1, 13},
167
168 {2, 0}, {2, 1}, {2, 2}, {2, 3}, {2, 4}, {2, 5}, {2, 6}, {2, 7}, {2, 8}, {2, 9}, {2, 10}, {2, 11}, {2, 13},
169
170 {3, 0}, {3, 2}, {3, 3}, {3, 4}, {3, 5}, {3, 6}, {3, 7}, {3, 8}, {3, 9}, {3, 10}, {3, 11}, {3, 13},
171
172 {4, 0}, {4, 1}, {4, 2}, {4, 6}, {4, 10}, {4, 11}, {4, 12}, {4, 13},
173};
174#endif
175
176#ifndef RAW_ENABLE
177bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
178#else
179bool process_record_user(uint16_t keycode, keyrecord_t *record) {
180#endif
181 if (record->event.pressed) {
182 switch(keycode) {
183 #ifdef RGBLIGHT_ENABLE
184 #ifdef RGB_MATRIX_ENABLE
185 case KC_F13: // toggle rgb matrix
186 rgb_matrix_toggle();
187 return false;
188 case KC_F14:
189 rgb_matrix_step();
190 return false;
191 #endif
192 #endif
193 default:
194 break;
195 }
196 }
197 return true;
198}