98 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "pvinis.h"
 | |
| #include "version.h"
 | |
| 
 | |
| #ifdef AUDIO_ENABLE
 | |
| #    include "audio.h"
 | |
| 
 | |
| float song_sonic_ring[][2] = SONG(SONIC_RING);
 | |
| float song_coin_sound[][2] = SONG(COIN_SOUND);
 | |
| float song_test[][2]       = SONG(QWERTY_SOUND);
 | |
| #endif
 | |
| 
 | |
| // SYMBOL + SYSCTL = KBCTL
 | |
| layer_state_t layer_state_set_user(layer_state_t state) {
 | |
|     uint32_t intermediate_state = update_tri_layer_state(state, LR_SYMBOL, LR_SYSCTL, LR_KBCTL);
 | |
|     intermediate_state          = layer_state_set_user_keymap(intermediate_state);
 | |
|     return intermediate_state;
 | |
| }
 | |
| 
 | |
| // functions for the individual keymaps to implement if they need something extra
 | |
| __attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
 | |
| 
 | |
| // Handle my own keycodes.
 | |
| bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | |
|     switch (keycode) {
 | |
|         case PV_VRSN:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
 | |
|             }
 | |
|             return false;
 | |
| 
 | |
|         case PV_MAKE:
 | |
|             // make ergodox_ez:pvinis:teensy
 | |
|             if (!record->event.pressed) {
 | |
|                 SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
 | |
| #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
 | |
|                             ":dfu"
 | |
| #elif defined(BOOTLOADER_HALFKAY)
 | |
|                             ":teensy"
 | |
| #elif defined(BOOTLOADER_CATERINA)
 | |
|                             ":avrdude"
 | |
| #endif
 | |
|                             SS_TAP(X_ENTER));
 | |
|             }
 | |
|             return false;
 | |
| 
 | |
|         case PV_FLSH:
 | |
|             reset_keyboard();
 | |
|             return false;
 | |
| 
 | |
|         case PV_SSNC:
 | |
|             if (record->event.pressed) {
 | |
| #ifdef AUDIO_ENABLE
 | |
|                 PLAY_SONG(song_sonic_ring);
 | |
| #endif
 | |
|             }
 | |
|             return false;
 | |
| 
 | |
|         case PV_SCIN:
 | |
|             if (record->event.pressed) {
 | |
| #ifdef AUDIO_ENABLE
 | |
|                 PLAY_SONG(song_coin_sound);
 | |
| #endif
 | |
|             }
 | |
|             return false;
 | |
| 
 | |
|         case PV_TEST:
 | |
|             if (record->event.pressed) {
 | |
| #ifdef AUDIO_ENABLE
 | |
|                 PLAY_SONG(song_test);
 | |
| #endif
 | |
|             }
 | |
|             return false;
 | |
|     }
 | |
|     return process_record_keymap(keycode, record);
 | |
| }
 | |
| 
 | |
| #ifdef TAP_DANCE_ENABLE
 | |
| qk_tap_dance_action_t tap_dance_actions[] = {};
 | |
| #endif
 | |
| 
 | |
| void keyboard_post_init_rgb_light(void) {
 | |
|     rgblight_sethsv(HSV_GOLD);
 | |
|     rgblight_mode(RGBLIGHT_MODE_BREATHING);
 | |
|     // rgblight_mode(RGBLIGHT_MODE_KNIGHT+1);
 | |
| }
 | |
| 
 | |
| // Init stuff.
 | |
| void keyboard_post_init_user(void) {
 | |
| #if defined(RGBLIGHT_ENABLE)
 | |
|     keyboard_post_init_rgb_light();
 | |
| #endif
 | |
|     keyboard_post_init_user_keymap();
 | |
| }
 | |
| 
 | |
| // Default functions.
 | |
| __attribute__((weak)) void keyboard_post_init_user_keymap(void) {}
 | |
| 
 | |
| __attribute__((weak)) uint32_t layer_state_set_user_keymap(uint32_t state) { return state; }
 | 
