From d6036fa49a86313c173c5b54d0f8fd7715c7aad0 Mon Sep 17 00:00:00 2001 From: dekunukem Date: Sat, 12 Mar 2022 00:03:38 +0000 Subject: [PATCH] reduced duplicate mouse packets --- captures/diy_samples/kb_typing_usb.sal | Bin 0 -> 9177 bytes ...leftclick_rightclick_scrollup_scrolldown.sal | Bin 0 -> 13860 bytes user_program/usb4vc_usb_scan.py | 10 +++++++--- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 captures/diy_samples/kb_typing_usb.sal create mode 100644 captures/diy_samples/leftclick_rightclick_scrollup_scrolldown.sal diff --git a/captures/diy_samples/kb_typing_usb.sal b/captures/diy_samples/kb_typing_usb.sal new file mode 100644 index 0000000000000000000000000000000000000000..36631cb065d6574981e56021f163b74764b6262f GIT binary patch literal 9177 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 literal 0 HcmV?d00001 diff --git a/captures/diy_samples/leftclick_rightclick_scrollup_scrolldown.sal b/captures/diy_samples/leftclick_rightclick_scrollup_scrolldown.sal new file mode 100644 index 0000000000000000000000000000000000000000..3b9e234fa6ba446f25b6b0cbc44290c7a7aa9690 GIT binary patch literal 13860 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 DHm+-2 literal 0 HcmV?d00001 diff --git a/user_program/usb4vc_usb_scan.py b/user_program/usb4vc_usb_scan.py index 1890028..1d10470 100644 --- a/user_program/usb4vc_usb_scan.py +++ b/user_program/usb4vc_usb_scan.py @@ -804,6 +804,7 @@ def raw_input_event_worker(): last_mouse_msg = [] last_gamepad_msg = None in_deadzone_list = [] + last_mouse_button_msg = None print("raw_input_event_worker started") while 1: now = time.time() @@ -849,7 +850,8 @@ def raw_input_event_worker(): next_gamepad_hold_check = now + gamepad_hold_check_interval if data[4] != 2: clear_mouse_movement(mouse_status_dict) - pcard_spi.xfer(make_mouse_spi_packet(mouse_status_dict, this_id)) + last_mouse_button_msg = make_mouse_spi_packet(mouse_status_dict, this_id) + pcard_spi.xfer(list(last_mouse_button_msg)) # Gamepad buttons elif BTN_SOUTH <= event_code <= BTN_THUMBR or event_code in gamepad_buttons_as_kb_codes: gamepad_status_dict[this_id][event_code] = data[4] @@ -878,12 +880,14 @@ def raw_input_event_worker(): elif data[0] == EV_SYN and event_code == SYN_REPORT: if this_device['is_mouse']: this_mouse_msg = make_mouse_spi_packet(mouse_status_dict, this_id) + if this_mouse_msg == last_mouse_button_msg: + pass # send spi mouse message if there is moment, or the button is not typematic - if (max(this_mouse_msg[13:18]) != 2 or sum(this_mouse_msg[4:10]) != 0) and (this_mouse_msg[4:] != last_mouse_msg[4:] or sum(this_mouse_msg[4:]) != 0): + elif (max(this_mouse_msg[13:18]) != 2 or sum(this_mouse_msg[4:10]) != 0) and (this_mouse_msg[4:] != last_mouse_msg[4:] or sum(this_mouse_msg[4:]) != 0): pcard_spi.xfer(list(this_mouse_msg)) next_gamepad_hold_check = now + gamepad_hold_check_interval clear_mouse_movement(mouse_status_dict) - last_mouse_msg = list(this_mouse_msg) + last_mouse_msg = list(this_mouse_msg) if this_device['is_gp']: for stick_axes_name in get_stick_axes(this_device): axes_code = usb4vc_shared.code_name_to_value_lookup.get(stick_axes_name)[0]