/*
Copyright 2011, 2012, 2013 Jun Wako <wakojun@gmail.com>
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/>.
*/
static uint32_t last_input_modification_time = 0;
uint32_t
uint32_t
static uint32_t last_matrix_modification_time = 0;
uint32_t
uint32_t
void
static uint32_t last_encoder_modification_time = 0;
uint32_t
uint32_t
void
// Only enable this if console is enabled to print to
static uint32_t matrix_timer = 0;
static uint32_t matrix_scan_count = 0;
static uint32_t last_matrix_scan_count = 0;
void
uint32_t
extern const uint16_t keymaps;
static matrix_row_t
static inline bool
static inline bool
void
/** \brief matrix_setup
*
* FIXME: needs doc
*/
void
/** \brief keyboard_pre_init_user
*
* FIXME: needs doc
*/
void
/** \brief keyboard_pre_init_kb
*
* FIXME: needs doc
*/
void
/** \brief keyboard_post_init_user
*
* FIXME: needs doc
*/
void
/** \brief keyboard_post_init_kb
*
* FIXME: needs doc
*/
void
/** \brief keyboard_setup
*
* FIXME: needs doc
*/
void
/** \brief is_keyboard_master
*
* FIXME: needs doc
*/
bool
/** \brief is_keyboard_left
*
* FIXME: needs doc
*/
bool
/** \brief should_process_keypress
*
* Override this function if you have a condition where keypresses processing should change:
* - splits where the slave side needs to process for rgb/oled functionality
*/
bool
/** \brief housekeeping_task_kb
*
* Override this function if you have a need to execute code for every keyboard main loop iteration.
* This is specific to keyboard-level functionality.
*/
void
/** \brief housekeeping_task_user
*
* Override this function if you have a need to execute code for every keyboard main loop iteration.
* This is specific to user/keymap-level functionality.
*/
void
/** \brief housekeeping_task
*
* Invokes hooks for executing code after QMK is done after each loop iteration.
*/
void
/** \brief keyboard_init
*
* FIXME: needs doc
*/
void
/** \brief key_event_task
*
* This function is responsible for calling into other systems when they need to respond to electrical switch press events.
* This is differnet than keycode events as no layer processing, or filtering occurs.
*/
void
/** \brief Keyboard task: Do keyboard routine jobs
*
* Do routine keyboard jobs:
*
* * scan matrix
* * handle mouse movements
* * run visualizer code
* * handle midi commands
* * light LEDs
*
* This is repeatedly called as fast as possible.
*/
void
/** \brief keyboard set leds
*
* FIXME: needs doc
*/
void