]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/cospad/cospad.h
Cospad QMK Configurator support and refactor (#3319)
[qmk_firmware.git] / keyboards / cospad / cospad.h
1 #ifndef COSPAD_H
2 #define COSPAD_H
3
4 #include "quantum.h"
5
6 // readability
7 #define XXX KC_NO
8
9 /* COSPAD ortho matrix layout
10    * ,-------------------.
11    * | 00 | 01 | 02 | 03 |
12    * |----|----|----|----|
13    * | 10 | 11 | 12 | 13 |
14    * |----|----|----|----|
15    * | 20 | 21 | 22 | 23 |
16    * |----|----|----|----|
17    * | 30 | 31 | 32 | 33 |
18    * |----|----|----|----|
19    * | 40 | 41 | 42 | 43 |
20    * |----|----|----|----|
21    * | 50 | 51 | 52 | 53 |
22    * `-------------------'
23  */
24
25
26 /* COSPAD numpad matrix layout
27    * ,-------------------.
28    * | 00 | 01 | 02 | 03 |
29    * |----|----|----|----|
30    * | 10 | 11 | 12 | 13 |
31    * |----|----|----|----|
32    * | 20 | 21 | 22 |    |
33    * |----|----|----| 23 |
34    * | 30 | 31 | 32 |    |
35    * |----|----|----|----|
36    * | 40 | 41 | 42 |    |
37    * |----|----|----| 43 |
38    * |    50   | 52 |    |
39    * `-------------------'
40  */
41 // The first section contains all of the arguments
42 // The second converts the arguments into a two-dimensional array
43 #define LAYOUT_ortho_6x4( \
44   k00, k01, k02, k03, \
45         k10, k11, k12, k13, \
46         k20, k21, k22, k23, \
47         k30, k31, k32, k33, \
48         k40, k41, k42, k43, \
49         k50, k51, k52, k53  \
50 ) \
51 { \
52         {k00, k01, k02, k03}, \
53         {k10, k11, k12, k13}, \
54         {k20, k21, k22, k23}, \
55         {k30, k31, k32, k33}, \
56         {k40, k41, k42, k43}, \
57         {k50, k51, k52, k53}  \
58 }
59
60 #define LAYOUT_numpad_6x4( \
61   k00, k01, k02, k03,  \
62         k10, k11, k12, k13,  \
63         k20, k21, k22,       \
64         k30, k31, k32, k23,  \
65         k40, k41, k42,       \
66         k50,      k52, k43   \
67 ) \
68 { \
69         {k00, k01,   k02, k03},   \
70         {k10, k11,   k12, k13},   \
71         {k20, k21,   k22, k23},   \
72         {k30, k31,   k32, KC_NO}, \
73         {k40, k41,   k42, k43},   \
74         {k50, KC_NO, k52, KC_NO}  \
75 }
76 void matrix_init_user(void);
77 void matrix_scan_user(void);
78
79 inline void cospad_bl_led_on(void)      { PORTF &= ~(1<<7); }
80 inline void cospad_bl_led_off(void)     { PORTF |= (1<<7); }
81
82 inline void cospad_bl_led_togg(void) {
83    uint8_t bl_mask = PORTF&(1<<7);
84    if (bl_mask) {
85       PORTF &= ~(1<<7);
86    } else {
87       PORTF |= (1<<7);
88    }
89 }
90 #endif