/* Based on userspace written by @drashna 2017 Copyright 2018 Hsian Chang <ishtob@gmail.com> @ishtob This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "ishtob.h" #include "action.h" #include "action_layer.h" // #include "dynamic_macro.h" #ifdef AUDIO_ENABLE #include "audio.h" #endif // Add reconfigurable functions here, for keymap customization // This allows for a global, userspace functions, and continued // customization of the keymap. Use _keymap instead of _user // functions in the keymaps __attribute__ ((weak)) void matrix_init_keymap(void) {} __attribute__ ((weak)) void matrix_scan_keymap(void) {} __attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } __attribute__ ((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; } // Call user matrix init, then call the keymap's init function void matrix_init_user(void) { matrix_init_keymap(); } // No global matrix scan code, so just run keymap's matix // scan function void matrix_scan_user(void) { matrix_scan_keymap(); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case DFU: if (record->event.pressed) { clear_keyboard(); reset_keyboard(); } return false; break; } return process_record_keymap(keycode, record) && process_record_secrets(keycode, record); }