Squashed 'tmk_core/' changes from b9e0ea0..caca2c0
caca2c0 Add mouse support to ADB
5b0835a Merge commit '1fe4406f37
'
f2f7556 Remove unneeded tap delays #201
8124195 Fix URL of HID Usage Tables pdf
0bb4679 Fix typo of doc/keycode.txt
b24fa1a Fix handling of consumer usage #199
6ae1a3d Improve anti-ghosting behavior for fast typing
a4c9763 Fix dfu-programmer parameters
b62b3f2 Move ring_buffer.h file
6ec424f Fix debug print
502fb0c Fix ibm4704 protocol with using interrupt
git-subtree-dir: tmk_core
git-subtree-split: caca2c01553394d959550034c817520d575c7fa0
This commit is contained in:
parent
1fe4406f37
commit
4d116a04e9
13 changed files with 213 additions and 75 deletions
|
@ -39,6 +39,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#ifdef SERIAL_MOUSE_ENABLE
|
||||
#include "serial_mouse.h"
|
||||
#endif
|
||||
#ifdef ADB_MOUSE_ENABLE
|
||||
#include "adb.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef MATRIX_HAS_GHOST
|
||||
|
@ -69,6 +72,9 @@ void keyboard_init(void)
|
|||
#ifdef SERIAL_MOUSE_ENABLE
|
||||
serial_mouse_init();
|
||||
#endif
|
||||
#ifdef ADB_MOUSE_ENABLE
|
||||
adb_mouse_init();
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef BOOTMAGIC_ENABLE
|
||||
|
@ -87,6 +93,9 @@ void keyboard_init(void)
|
|||
void keyboard_task(void)
|
||||
{
|
||||
static matrix_row_t matrix_prev[MATRIX_ROWS];
|
||||
#ifdef MATRIX_HAS_GHOST
|
||||
static matrix_row_t matrix_ghost[MATRIX_ROWS];
|
||||
#endif
|
||||
static uint8_t led_status = 0;
|
||||
matrix_row_t matrix_row = 0;
|
||||
matrix_row_t matrix_change = 0;
|
||||
|
@ -96,13 +105,21 @@ void keyboard_task(void)
|
|||
matrix_row = matrix_get_row(r);
|
||||
matrix_change = matrix_row ^ matrix_prev[r];
|
||||
if (matrix_change) {
|
||||
if (debug_matrix) matrix_print();
|
||||
#ifdef MATRIX_HAS_GHOST
|
||||
if (has_ghost_in_row(r)) {
|
||||
matrix_prev[r] = matrix_row;
|
||||
/* Keep track of whether ghosted status has changed for
|
||||
* debugging. But don't update matrix_prev until un-ghosted, or
|
||||
* the last key would be lost.
|
||||
*/
|
||||
if (debug_matrix && matrix_ghost[r] != matrix_row) {
|
||||
matrix_print();
|
||||
}
|
||||
matrix_ghost[r] = matrix_row;
|
||||
continue;
|
||||
}
|
||||
matrix_ghost[r] = matrix_row;
|
||||
#endif
|
||||
if (debug_matrix) matrix_print();
|
||||
for (uint8_t c = 0; c < MATRIX_COLS; c++) {
|
||||
if (matrix_change & ((matrix_row_t)1<<c)) {
|
||||
action_exec((keyevent_t){
|
||||
|
@ -136,6 +153,10 @@ MATRIX_LOOP_END:
|
|||
serial_mouse_task();
|
||||
#endif
|
||||
|
||||
#ifdef ADB_MOUSE_ENABLE
|
||||
adb_mouse_task();
|
||||
#endif
|
||||
|
||||
// update LED
|
||||
if (led_status != host_keyboard_leds()) {
|
||||
led_status = host_keyboard_leds();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue