X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=common%2Fkeyboard.c;h=020be8eadf2f09ad9bc1e94a32e7e83c5730c09d;hb=eb90ed6238426db9367e294abfaefb5de07564f5;hp=91f321d9ca24b02838b38cc89bc6005544c8cebc;hpb=9e9a85c1426650148d0d83c900e432003ff174fb;p=max%2Ftmk_keyboard.git diff --git a/common/keyboard.c b/common/keyboard.c index 91f321d9..020be8ea 100644 --- a/common/keyboard.c +++ b/common/keyboard.c @@ -28,9 +28,17 @@ along with this program. If not, see . #include "command.h" #include "util.h" #include "sendchar.h" -#include "bootloader.h" +#include "bootmagic.h" +#include "eeconfig.h" +#include "backlight.h" #ifdef MOUSEKEY_ENABLE -#include "mousekey.h" +# include "mousekey.h" +#endif +#ifdef PS2_MOUSE_ENABLE +# include "ps2_mouse.h" +#endif +#ifdef SERIAL_MOUSE_ENABLE +#include "serial_mouse.h" #endif @@ -54,31 +62,22 @@ static bool has_ghost_in_row(uint8_t row) void keyboard_init(void) { - // TODO: configuration of sendchar impl - print_sendchar_func = sendchar; - timer_init(); matrix_init(); - - /* matrix scan for boot magic keys */ -#ifdef DEBOUNCE - uint8_t scan = DEBOUNCE * 2; - while (scan--) { matrix_scan(); _delay_ms(1); } -#else - matrix_scan(); +#ifdef PS2_MOUSE_ENABLE + ps2_mouse_init(); #endif - - /* boot magic keys */ -#ifdef IS_BOOTMAGIC_BOOTLOADER - /* kick up bootloader */ - if (IS_BOOTMAGIC_BOOTLOADER()) bootloader_jump(); +#ifdef SERIAL_MOUSE_ENABLE + serial_mouse_init(); #endif -#ifdef IS_BOOTMAGIC_DEBUG - if (IS_BOOTMAGIC_DEBUG()) debug_enable = true; + + +#ifdef BOOTMAGIC_ENABLE + bootmagic(); #endif -#ifdef PS2_MOUSE_ENABLE - ps2_mouse_init(); +#ifdef BACKLIGHT_ENABLE + backlight_init(); #endif } @@ -124,10 +123,20 @@ void keyboard_task(void) action_exec(TICK); MATRIX_LOOP_END: + #ifdef MOUSEKEY_ENABLE // mousekey repeat & acceleration mousekey_task(); #endif + +#ifdef PS2_MOUSE_ENABLE + ps2_mouse_task(); +#endif + +#ifdef SERIAL_MOUSE_ENABLE + serial_mouse_task(); +#endif + // update LED if (led_status != host_keyboard_leds()) { led_status = host_keyboard_leds(); @@ -137,5 +146,6 @@ MATRIX_LOOP_END: void keyboard_set_leds(uint8_t leds) { + if (debug_keyboard) { debug("keyboard_set_led: "); debug_hex8(leds); debug("\n"); } led_set(leds); }