X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=key_process.c;h=9c9ea26c4f9c70c87da55b990653a937fbce5a4a;hb=3e56e80c7d938c2b03bafb0606978b715c2ee0ee;hp=f3b65d10142fa68c237213a6c24b516efc93f30d;hpb=2a562a4191a5b9e88731efb5eabd921821f25f7e;p=max%2Ftmk_keyboard.git diff --git a/key_process.c b/key_process.c index f3b65d10..9c9ea26c 100644 --- a/key_process.c +++ b/key_process.c @@ -8,8 +8,6 @@ #include "util.h" #include "jump_bootloader.h" #include "usb_keyboard.h" -#include "usb_mouse.h" -#include "usb_extra.h" #include "usb_keycodes.h" #include "usb.h" #include "layer.h" @@ -22,6 +20,12 @@ #ifdef PS2_MOUSE_ENABLE # include "ps2_mouse.h" #endif +#ifdef USB_EXTRA_ENABLE +# include "usb_extra.h" +#endif +#ifdef USB_MOUSE_ENABLE +# include "usb_mouse.h" +#endif // TODO: refactoring @@ -53,7 +57,6 @@ void proc_matrix(void) { for (int col = 0; col < matrix_cols(); col++) { if (!matrix_is_on(row, col)) continue; - // TODO: clean code uint8_t code = layer_get_keycode(row, col); if (code == KB_NO) { // do nothing @@ -61,12 +64,13 @@ void proc_matrix(void) { usb_keyboard_add_mod(code); } else if (IS_FN(code)) { fn_bits |= FN_BIT(code); - } else if (IS_MOUSE(code)) { + } #ifdef MOUSEKEY_ENABLE + else if (IS_MOUSEKEY(code)) { mousekey_decode(code); -#endif } - +#endif +#ifdef USB_EXTRA_ENABLE // audio control & system control else if (code == KB_MUTE) { usb_extra_audio_send(AUDIO_MUTE); @@ -88,10 +92,12 @@ void proc_matrix(void) { } _delay_ms(1000); } - - // normal keys - else { +#endif + // normal key + else if (IS_KEY(code)) { usb_keyboard_add_key(code); + } else { + debug("ignore keycode: "); debug_hex(code); debug("\n"); } } } @@ -129,6 +135,7 @@ void proc_matrix(void) { #ifdef PS2_MOUSE_ENABLE print("1: ps2_mouse_init \n"); print("2: ps2_mouse_read \n"); + print("3: ps2_mouse: on/off toggle \n"); #endif _delay_ms(500); print_enable = false; @@ -154,6 +161,16 @@ void proc_matrix(void) { phex(ps2_mouse_y); print("\n"); print("ps2_mouse_error_count: "); phex(ps2_mouse_error_count); print("\n"); break; + case KB_3: + ps2_mouse_enable = !ps2_mouse_enable; + print("ps2_mouse: "); + if (ps2_mouse_enable) + print("on"); + else + print("off"); + print("\n"); + _delay_ms(500); + break; #endif case KB_B: // bootloader usb_keyboard_clear_report(); @@ -248,7 +265,9 @@ void proc_matrix(void) { print("usb_keyboard_protocol:"); phex(usb_keyboard_protocol); print("\n"); print("usb_keyboard_idle_config:"); phex(usb_keyboard_idle_config); print("\n"); print("usb_keyboard_idle_count:"); phex(usb_keyboard_idle_count); print("\n"); +#ifdef USB_MOUSE_ENABLE print("usb_mouse_protocol:"); phex(usb_mouse_protocol); print("\n"); +#endif if (usb_keyboard_nkro) print("USB_NKRO: enabled\n"); else print("USB_NKRO: disabled\n"); _delay_ms(500); break; @@ -256,13 +275,16 @@ void proc_matrix(void) { usb_keyboard_clear_report(); usb_keyboard_send(); usb_keyboard_protocol = !usb_keyboard_protocol; - usb_mouse_protocol = !usb_mouse_protocol; print("keyboard protcol: "); if (usb_keyboard_protocol) print("report"); else print("boot"); print("\n"); + +#ifdef USB_MOUSE_ENABLE + usb_mouse_protocol = !usb_mouse_protocol; print("mouse protcol: "); if (usb_mouse_protocol) print("report"); else print("boot"); print("\n"); +#endif _delay_ms(1000); break; #ifdef USB_NKRO_ENABLE @@ -274,6 +296,7 @@ void proc_matrix(void) { _delay_ms(1000); break; #endif +#ifdef USB_EXTRA_ENABLE case KB_ESC: usb_keyboard_clear_report(); usb_keyboard_send(); @@ -284,6 +307,7 @@ void proc_matrix(void) { } _delay_ms(1000); break; +#endif } } @@ -293,15 +317,11 @@ void proc_matrix(void) { } #ifdef MOUSEKEY_ENABLE - // mouse keys mousekey_usb_send(); #endif #ifdef PS2_MOUSE_ENABLE - // ps2 mouse - //if (ps2_mouse_error_count > 10) { - ps2_mouse_read(); + if (ps2_mouse_read() == 0) ps2_mouse_usb_send(); - //} #endif }