aboutsummaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
authorReibl János Dániel <janos.daniel.reibl@protonmail.com>2020-11-02 22:20:22 +0100
committerGitHub <noreply@github.com>2020-11-02 21:20:22 +0000
commit4ba0cb7ebc7607ba235f34c32a66ccde880ca4a0 (patch)
tree5ce269803a0ad3aa29a947e4615c5585fabe13b8 /users
parent4b839db3841f001f78291373b2b6c3eca34582ed (diff)
downloadqmk_firmware-4ba0cb7ebc7607ba235f34c32a66ccde880ca4a0.tar.gz
qmk_firmware-4ba0cb7ebc7607ba235f34c32a66ccde880ca4a0.zip
Add OLED support for Riblee F411 (#10778)
* Add OLED support for Riblee F422 * Fix typo
Diffstat (limited to 'users')
-rw-r--r--users/riblee/riblee.c64
-rw-r--r--users/riblee/riblee.h6
2 files changed, 68 insertions, 2 deletions
diff --git a/users/riblee/riblee.c b/users/riblee/riblee.c
index e1fe607ef..6e548f1d8 100644
--- a/users/riblee/riblee.c
+++ b/users/riblee/riblee.c
@@ -15,6 +15,8 @@
15 */ 15 */
16 16
17#include "riblee.h" 17#include "riblee.h"
18#include "raw_hid.h"
19#include <string.h>
18 20
19const uint8_t shift = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT); 21const uint8_t shift = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT);
20 22
@@ -150,6 +152,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
150 } 152 }
151 return false; 153 return false;
152 break; 154 break;
155 case HUNGARIAN:
156 if (record->event.pressed) {
157 set_single_persistent_default_layer(_HUNGARIAN);
158 }
159 return false;
160 break;
153 case BACKLIT: 161 case BACKLIT:
154 if (record->event.pressed) { 162 if (record->event.pressed) {
155 register_code(keycode_config(KC_LGUI)); 163 register_code(keycode_config(KC_LGUI));
@@ -164,3 +172,59 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
164 } 172 }
165 return true; 173 return true;
166}; 174};
175
176#ifdef OLED_DRIVER_ENABLE
177
178static char receive_buffer[128] = {};
179static uint8_t receive_buffer_length = 0;
180
181void oled_task_user(void) {
182 // Keyboard Layer Status
183 oled_write_P(PSTR("Layer: "), false);
184
185 switch (get_highest_layer(layer_state)) {
186 case _QWERTY:
187 oled_write_P(PSTR("Default\n"), false);
188 break;
189 case _LOWER:
190 oled_write_P(PSTR("Lower\n"), false);
191 break;
192 case _RAISE:
193 oled_write_P(PSTR("Raise\n"), false);
194 break;
195 case _ADJUST:
196 oled_write_P(PSTR("Adjust\n"), false);
197 break;
198 default:
199 oled_write_P(PSTR("Undefined\n"), false);
200 }
201
202 // Print string received via HID RAW
203 oled_write_ln(receive_buffer, false);
204}
205
206#ifdef RAW_ENABLE
207
208void raw_hid_receive(uint8_t *data, uint8_t length) {
209
210 // Append data to receive_buffer, without the first byte
211 memcpy(receive_buffer + receive_buffer_length, data + 1, length - 1);
212 receive_buffer_length += (length - 1);
213
214 // First byte indicate if we will recive more package for the current string
215 // If it's 1 then this was the last package and we can reset the offset
216 if (data[0] == 1) {
217 // Reset the offset for memcpy to the begining of our buffer
218 receive_buffer_length = 0;
219 }
220
221 // Reset the offset to prevent overwriting memory outside of the buffer
222 if (receive_buffer_length + 32 >= 128) {
223 receive_buffer_length = 0;
224 }
225
226}
227
228#endif
229
230#endif \ No newline at end of file
diff --git a/users/riblee/riblee.h b/users/riblee/riblee.h
index bdaa9f321..a4038765a 100644
--- a/users/riblee/riblee.h
+++ b/users/riblee/riblee.h
@@ -18,8 +18,9 @@
18 18
19#include QMK_KEYBOARD_H 19#include QMK_KEYBOARD_H
20 20
21enum preonic_layers { 21enum layer_names {
22 _QWERTY, 22 _QWERTY,
23 _HUNGARIAN,
23 _COLEMAK, 24 _COLEMAK,
24 _DVORAK, 25 _DVORAK,
25 _LOWER, 26 _LOWER,
@@ -27,8 +28,9 @@ enum preonic_layers {
27 _ADJUST 28 _ADJUST
28}; 29};
29 30
30enum preonic_keycodes { 31enum custom_keycodes {
31 QWERTY = SAFE_RANGE, 32 QWERTY = SAFE_RANGE,
33 HUNGARIAN,
32 COLEMAK, 34 COLEMAK,
33 DVORAK, 35 DVORAK,
34 BACKLIT 36 BACKLIT