X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;ds=inline;f=common%2Fkeyboard.c;h=2c88b3e437cacf17b01af040d011b352a6038667;hb=821563417565776d2dc3a02b0265e6fcd5218739;hp=1aff81f54c8e10a8a2edefc4cf022d59d4a62ce7;hpb=d8dddf9f25181e29e3fb82250833a00a11921452;p=max%2Ftmk_keyboard.git diff --git a/common/keyboard.c b/common/keyboard.c index 1aff81f5..2c88b3e4 100644 --- a/common/keyboard.c +++ b/common/keyboard.c @@ -1,5 +1,5 @@ /* -Copyright 2011,2012 Jun Wako +Copyright 2011,2012,2013 Jun Wako 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 @@ -14,6 +14,8 @@ 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 . */ +#include +#include #include "keyboard.h" #include "matrix.h" #include "keymap.h" @@ -34,16 +36,21 @@ along with this program. If not, see . void keyboard_init(void) { - // TODO: to enable debug print magic key bind on boot time - // TODO: configuration of sendchar impl print_sendchar_func = sendchar; timer_init(); matrix_init(); - /* boot magic keys goes here */ + /* matrix scan for boot magic keys */ +#ifdef DEBOUNCE + uint8_t scan = DEBOUNCE * 2; + while (scan--) { matrix_scan(); _delay_ms(1); } +#else matrix_scan(); +#endif + + /* boot magic keys */ #ifdef IS_BOOTMAGIC_BOOTLOADER /* kick up bootloader */ if (IS_BOOTMAGIC_BOOTLOADER()) bootloader_jump(); @@ -80,7 +87,7 @@ void keyboard_task(void) action_exec((keyevent_t){ .key.pos = (keypos_t){ .row = r, .col = c }, .pressed = (matrix_row & (1<