const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { case MACRO_QWERTY: if (record->event.pressed) { persistant_default_layer_set(1UL<<LAYER_QWERTY); #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); #endif /* AUDIO_ENABLE */ } break; case MACRO_COLEMAK: if (record->event.pressed) { persistant_default_layer_set(1UL<<LAYER_COLEMAK); #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); #endif /* AUDIO_ENABLE */ } break; case MACRO_DVORAK: if (record->event.pressed) { persistant_default_layer_set(1UL<<LAYER_DVORAK); #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); #endif /* AUDIO_ENABLE */ } break; case MACRO_LOWER: if (record->event.pressed) { layer_on(LAYER_LOWER); update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } else { layer_off(LAYER_LOWER); update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } break; case MACRO_RAISE: if (record->event.pressed) { layer_on(LAYER_RAISE); update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } else { layer_off(LAYER_RAISE); update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } break; case MACRO_FUNCTION: if (record->event.pressed) { layer_on(LAYER_FUNCTION); } else { layer_off(LAYER_FUNCTION); } break; #ifdef MOUSEKEY_ENABLE case MACRO_MOUSE: if (record->event.pressed) { layer_invert(LAYER_MOUSE); } break; #endif /* MOUSEKEY_ENABLE */ #ifdef AUDIO_ENABLE case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); break; case MACRO_TIMBRE_2: if (record->event.pressed) set_timbre(TIMBRE_25); break; case MACRO_TIMBRE_3: if (record->event.pressed) set_timbre(TIMBRE_50); break; case MACRO_TIMBRE_4: if (record->event.pressed) set_timbre(TIMBRE_75); break; case MACRO_TEMPO_U: if (record->event.pressed) increase_tempo(10); break; case MACRO_TEMPO_D: if (record->event.pressed) decrease_tempo(10); break; case MACRO_TONE_DEFAULT: if (record->event.pressed) { set_timbre(TIMBRE_DEFAULT); set_tempo(TEMPO_DEFAULT); } break; case MACRO_AUDIO_OFF: if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_off(); #endif } break; case MACRO_AUDIO_ON: if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); #endif } break; case MACRO_MUSIC_ON: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); layer_on(LAYER_MUSIC); #endif } break; case MACRO_MUSIC_OFF: if (record->event.pressed) { #ifdef AUDIO_ENABLE layer_off(LAYER_MUSIC); stop_all_notes(); #endif } break; case MACRO_INC_VOICE: if (record->event.pressed) { #ifdef AUDIO_ENABLE voice_iterate(); PLAY_NOTE_ARRAY(music_scale, false, STACCATO); #endif } break; case MACRO_DEC_VOICE: if (record->event.pressed) { #ifdef AUDIO_ENABLE voice_deiterate(); PLAY_NOTE_ARRAY(music_scale, false, STACCATO); #endif } break; #endif /* AUDIO_ENABLE */ default: break; } return MACRO_NONE; };
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case _QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif persistant_default_layer_set(1UL<<_QWERTY); } break; case _COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif persistant_default_layer_set(1UL<<_COLEMAK); } break; case _DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); #endif persistant_default_layer_set(1UL<<_DVORAK); } case _NUMPAD: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); #endif persistant_default_layer_set(1UL<<_NUMPAD); } break; case _LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; case _RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; case M_BL: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE backlight_step(); #endif } else { unregister_code(KC_RSFT); } break; case 6: if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_off(); #endif } break; case 7: if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } break; case 8: if (record->event.pressed) { #ifdef AUDIO_ENABLE layer_off(_MUSIC); stop_all_notes(); #endif } break; case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif } break; case 10: if (record->event.pressed) { #ifdef AUDIO_ENABLE voice_iterate(); PLAY_NOTE_ARRAY(music_scale, false, 0); #endif } break; case 11: if (record->event.pressed) { #ifdef AUDIO_ENABLE voice_deiterate(); PLAY_NOTE_ARRAY(music_scale, false, 0); #endif } break; case 12: if (record->event.pressed) { #ifdef AUDIO_ENABLE stop_all_notes(); PLAY_NOTE_ARRAY(tone_plover, false, 0); #endif layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); layer_off(_MUSIC); layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); } keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; eeconfig_update_keymap(keymap_config.raw); } break; case 13: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); #endif layer_off(_PLOVER); } break; } return MACRO_NONE; };