aboutsummaryrefslogtreecommitdiff
path: root/users/drashna/drashna.c
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2021-02-23 10:57:24 -0800
committerGitHub <noreply@github.com>2021-02-23 10:57:24 -0800
commit0b69e4df818c2515cf4eee3d8b6fd4a07775b887 (patch)
treebdeee9c5a88c2aef8aca366b3e6ea986f44174c0 /users/drashna/drashna.c
parent11146ecd086c6b6736ab3c5947f26a96be642671 (diff)
downloadqmk_firmware-0b69e4df818c2515cf4eee3d8b6fd4a07775b887.tar.gz
qmk_firmware-0b69e4df818c2515cf4eee3d8b6fd4a07775b887.zip
[Keymap] Drashna Updates - Split+OLED edition (#11968)
Diffstat (limited to 'users/drashna/drashna.c')
-rw-r--r--users/drashna/drashna.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index 95c9d2f62..6a13f0d9b 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -111,7 +111,12 @@ void shutdown_user(void) {
111 111
112__attribute__((weak)) void suspend_power_down_keymap(void) {} 112__attribute__((weak)) void suspend_power_down_keymap(void) {}
113 113
114void suspend_power_down_user(void) { suspend_power_down_keymap(); } 114void suspend_power_down_user(void) {
115#ifdef OLED_DRIVER_ENABLE
116 oled_off();
117#endif
118 suspend_power_down_keymap();
119}
115 120
116__attribute__((weak)) void suspend_wakeup_init_keymap(void) {} 121__attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
117 122
@@ -146,17 +151,34 @@ void matrix_scan_user(void) {
146 matrix_scan_keymap(); 151 matrix_scan_keymap();
147} 152}
148 153
154#ifdef AUDIO_ENABLE
155float doom_song[][2] = SONG(E1M1_DOOM);
156#endif
157
149__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; } 158__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
150 159
151// on layer change, no matter where the change was initiated 160// on layer change, no matter where the change was initiated
152// Then runs keymap's layer change check 161// Then runs keymap's layer change check
153layer_state_t layer_state_set_user(layer_state_t state) { 162layer_state_t layer_state_set_user(layer_state_t state) {
154 if (!is_keyboard_master()) { return state; } 163 if (!is_keyboard_master()) {
155 164 return state;
165 }
166
156 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); 167 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
157#if defined(RGBLIGHT_ENABLE) 168#if defined(RGBLIGHT_ENABLE)
158 state = layer_state_set_rgb_light(state); 169 state = layer_state_set_rgb_light(state);
159#endif // RGBLIGHT_ENABLE 170#endif // RGBLIGHT_ENABLE
171#if defined(AUDIO_ENABLE) && !defined(__arm__)
172 static bool is_gamepad_on = false;
173 if (layer_state_cmp(state, _GAMEPAD) != is_gamepad_on) {
174 is_gamepad_on = layer_state_cmp(state, _GAMEPAD);
175 if (is_gamepad_on) {
176 PLAY_LOOP(doom_song);
177 } else {
178 stop_all_notes();
179 }
180 }
181#endif
160 return layer_state_set_keymap(state); 182 return layer_state_set_keymap(state);
161} 183}
162 184
@@ -164,7 +186,9 @@ __attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t
164 186
165// Runs state check and changes underglow color and animation 187// Runs state check and changes underglow color and animation
166layer_state_t default_layer_state_set_user(layer_state_t state) { 188layer_state_t default_layer_state_set_user(layer_state_t state) {
167 if (!is_keyboard_master()) { return state; } 189 if (!is_keyboard_master()) {
190 return state;
191 }
168 192
169 state = default_layer_state_set_keymap(state); 193 state = default_layer_state_set_keymap(state);
170#if 0 194#if 0
@@ -189,6 +213,9 @@ void eeconfig_init_user(void) {
189 userspace_config.rgb_layer_change = true; 213 userspace_config.rgb_layer_change = true;
190 eeconfig_update_user(userspace_config.raw); 214 eeconfig_update_user(userspace_config.raw);
191 eeconfig_init_keymap(); 215 eeconfig_init_keymap();
216#ifdef VIA_ENABLE
217 via_eeprom_reset();
218#endif
192 keyboard_init(); 219 keyboard_init();
193} 220}
194 221