aboutsummaryrefslogtreecommitdiff
path: root/keyboards/getta25/keymaps/oled/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/getta25/keymaps/oled/keymap.c')
-rw-r--r--keyboards/getta25/keymaps/oled/keymap.c204
1 files changed, 204 insertions, 0 deletions
diff --git a/keyboards/getta25/keymaps/oled/keymap.c b/keyboards/getta25/keymaps/oled/keymap.c
new file mode 100644
index 000000000..44833857d
--- /dev/null
+++ b/keyboards/getta25/keymaps/oled/keymap.c
@@ -0,0 +1,204 @@
1#include QMK_KEYBOARD_H
2#include "keymap_jp.h"
3
4#ifdef OLED_DRIVER_ENABLE
5static uint32_t oled_timer = 0;
6#endif
7
8// Each layer gets a name for readability, which is then used in the keymap matrix below.
9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
10// Layer names don't all need to be of the same length, obviously, and you can also skip them
11// entirely and just use numbers.
12enum layer_number {
13 _BASE,
14 _ARROW,
15 _MACRO,
16 _ADJUST,
17};
18
19enum custom_keycodes {
20 RGB_RST = SAFE_RANGE,
21 SEND_SUM,
22 SEND_AVE,
23 SEND_CIF,
24 SEND_MAX,
25 SEND_MIN
26};
27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 [_BASE] = LAYOUT(
30 //,-----------------------------------|
31 KC_ESC, KC_F2, JP_EQL, KC_DEL,
32 //|--------+--------+--------+--------|
33 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
34 //|--------+--------+--------+--------+--------|
35 KC_P7, KC_P8, KC_P9, LCTL(JP_LBRC),
36 //|--------+--------+--------+--------+--------|
37 KC_P4, KC_P5, KC_P6, KC_PPLS, JP_EQL,
38 //|--------+--------+--------+--------+--------|
39 KC_P1, KC_P2, KC_P3, KC_DEL,
40 //|--------+--------+--------+--------+--------|
41LT(_ARROW, KC_P0),LT(_MACRO, KC_PDOT),KC_PENT,KC_BSPC
42 //`--------------------------------------------'
43 ),
44
45 [_ARROW] = LAYOUT(
46 //,-----------------------------------|
47 _______, _______, _______, _______,
48 //|--------+--------+--------+--------|
49 XXXXXXX, _______, _______, _______,
50 //|--------+--------+--------+--------+--------|
51 XXXXXXX, KC_UP, XXXXXXX, _______,
52 //|--------+--------+--------+--------+--------|
53 KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______,
54 //|--------+--------+--------+--------+--------|
55 XXXXXXX, KC_DOWN, XXXXXXX, _______,
56 //|--------+--------+--------+--------+--------|
57 MO(_ARROW), MO(_MACRO), _______, _______
58 //`--------------------------------------------'
59 ),
60
61 [_MACRO] = LAYOUT(
62 //,-----------------------------------|
63 _______, _______, _______, _______,
64 //|--------+--------+--------+--------|
65 SEND_MIN,SEND_MAX,SEND_CIF,SEND_AVE,
66 //|--------+--------+--------+--------+--------|
67 KC_F7, KC_F8, KC_F9, _______,
68 //|--------+--------+--------+--------+--------|
69 KC_F4, KC_F5, KC_F6,SEND_SUM, _______,
70 //|--------+--------+--------+--------+--------|
71 KC_F11, KC_F12, KC_F3, _______,
72 //|--------+--------+--------+--------+--------|
73 _______, _______, JP_RPRN, _______
74 //`--------------------------------------------'
75 ),
76
77 [_ADJUST] = LAYOUT( /* Base */
78 //,-----------------------------------|
79 _______, _______, _______, _______,
80 //|--------+--------+--------+--------|
81 XXXXXXX, XXXXXXX, XXXXXXX, _______,
82 //|--------+--------+--------+--------+--------|
83 RGB_SAD, RGB_SAI, XXXXXXX, _______,
84 //|--------+--------+--------+--------+--------|
85 RGB_HUD, RGB_HUI, XXXXXXX, RGB_TOG, _______,
86 //|--------+--------+--------+--------+--------|
87 RGB_VAD, RGB_VAI, XXXXXXX, _______,
88 //|--------+--------+--------+--------+--------|
89 _______, _______, RGB_MOD, _______
90 //`--------------------------------------------'
91 )
92};
93
94//A description for expressing the layer position in LED mode.
95layer_state_t layer_state_set_user(layer_state_t state) {
96 state = update_tri_layer_state(state, _ARROW, _MACRO, _ADJUST);
97#ifdef RGBLIGHT_ENABLE
98 switch (get_highest_layer(state)) {
99 case _ARROW:
100 rgblight_sethsv_at(HSV_BLUE, 0);
101 break;
102 case _MACRO:
103 rgblight_sethsv_at(HSV_RED, 0);
104 break;
105 case _ADJUST:
106 rgblight_sethsv_at(HSV_PURPLE, 0);
107 break;
108 default: // for any other layers, or the default layer
109 rgblight_sethsv_range( 0, 0, 0, 0, 1);
110 break;
111 }
112 rgblight_set_effect_range( 1, 8);
113#endif
114return state;
115}
116
117int RGB_current_mode;
118bool process_record_user(uint16_t keycode, keyrecord_t *record) {
119 bool result = false;
120 if (record->event.pressed) {
121 #ifdef OLED_DRIVER_ENABLE
122 oled_timer = timer_read32();
123 #endif
124 }
125 switch (keycode) {
126 case SEND_SUM:
127 if (record->event.pressed) {
128 SEND_STRING("_SUM*");
129 }
130 break;
131 case SEND_AVE:
132 if (record->event.pressed) {
133 SEND_STRING("_AVERAGE*");
134 }
135 break;
136 case SEND_CIF:
137 if (record->event.pressed) {
138 SEND_STRING("_COUNTIF*");
139 }
140 break;
141 case SEND_MAX:
142 if (record->event.pressed) {
143 SEND_STRING("_MAX*");
144 }
145 break;
146 case SEND_MIN:
147 if (record->event.pressed) {
148 SEND_STRING("_MIN*");
149 }
150 break;
151 default:
152 result = true;
153 break;
154 }
155
156 return result;
157}
158
159#ifdef OLED_DRIVER_ENABLE
160oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
161
162void render_layer_state(void) {
163 oled_write_P(PSTR(" "), false);
164 oled_write_P(PSTR("LAYER"), false);
165 oled_write_P(PSTR("Arrow"), layer_state_is(_ARROW));
166 oled_write_P(PSTR("Macro"), layer_state_is(_MACRO));
167 oled_write_P(PSTR("Adjus"), layer_state_is(_ADJUST));
168 oled_write_P(PSTR(" "), false);
169}
170
171void render_keylock_status(led_t led_state) {
172 oled_write_P(PSTR("NumL "), led_state.num_lock);
173}
174
175void render_layer_messages(void) {
176 oled_write_P(PSTR("GETtA 25 For Your Good Job. "), false);
177}
178
179void render_status(void) {
180 /* Show Keyboard Layout */
181 render_layer_state();
182 render_keylock_status(host_keyboard_led_state());
183}
184
185void oled_task_user(void) {
186 static const char PROGMEM font_logo[] = {
187 0x80,0x81,0x82,0x83,0x84,
188 0xa0,0xa1,0xa2,0xa3,0xa4,
189 0xc0,0xc1,0xc2,0xc3,0xc4,
190
191 0x85,0x86,0x87,0x88,0x89,
192 0xa5,0xa6,0xa7,0xa8,0xa9,
193 0xc5,0xc6,0xc7,0xc8,0xc9,
194
195 0x8a,0x8b,0x8c,0x8d,0x8e,
196 0xaa,0xab,0xac,0xad,0xae,
197 0xca,0xcb,0xcc,0xcd,0xce,0
198 };
199 oled_write_P(font_logo, false);
200
201 render_status(); // Renders the current keyboard state (layer, lock)
202}
203
204#endif