From 40eaff80187f8a90b3835e5a16b3d5b1864473a8 Mon Sep 17 00:00:00 2001 From: vhaudiquet Date: Sun, 1 Oct 2023 14:23:54 +0200 Subject: [PATCH] driver: g-wolves changed unk0 to polling rate --- drivers/g-wolves/g-wolves.h | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/drivers/g-wolves/g-wolves.h b/drivers/g-wolves/g-wolves.h index b5d1eb6..fefac55 100644 --- a/drivers/g-wolves/g-wolves.h +++ b/drivers/g-wolves/g-wolves.h @@ -25,7 +25,7 @@ #define REPORT_MAX_SIZE 0x40 // 64 Bytes -#define REPORT_UNKNOWN_0_SIZE 0x2 +#define REPORT_POLLING_RATE_SIZE 0x2 #define REPORT_DPI_SETTINGS_SIZE 0x39 // 2b with old software, 5 profiles to 7 ? #define REPORT_UNKNOWN_1_SIZE 0x2 #define REPORT_UNKNOWN_2_SIZE 0x24 @@ -38,7 +38,7 @@ #define REPORT_WIRELESS_MOUSE_SIZE 0x1 #define REPORT_WIRELESS_FIRMWARE_VERSION_SIZE 0x4 // -> 0x7 -#define COMMAND_UNKNOWN_0 0x82 +#define COMMAND_POLLING_RATE 0x82 #define COMMAND_DPI_SETTINGS 0x83 #define COMMAND_UNKNOWN_1 0x92 #define COMMAND_UNKNOWN_2 0x84 @@ -87,16 +87,35 @@ struct REPORT_DPI_SETTINGS } __attribute__((packed)); static_assert(sizeof(struct REPORT_DPI_SETTINGS) == REPORT_MAX_SIZE, "Report DPI_SETTINGS not of right size"); -struct REPORT_UNKNOWN_0 +struct REPORT_POLLING_RATE { report_header_t header; + /* + * HTX 4K, wireless: + * 4000 Hz: 40 + * 2000 Hz: 20 + * 1000 Hz: 01 + * 500 Hz: 02 + * 250 Hz: 04 + * 125 Hz: 08 + */ uint8_t value0; + + /* + * HTX 4K, wireless: + * 4000 Hz: 00 + * 2000 Hz: 87 + * 1000 Hz: 3b + * 500 Hz: 08 + * 250 Hz: 00 + * 125 Hz: 3b + */ uint8_t value1; uint8_t zeros[REPORT_MAX_SIZE - sizeof(report_header_t) - 2]; } __attribute__((packed)); -static_assert(sizeof(struct REPORT_UNKNOWN_0) == REPORT_MAX_SIZE, "Report UNKNOWN_0 not of right size"); +static_assert(sizeof(struct REPORT_POLLING_RATE) == REPORT_MAX_SIZE, "Report POLLING_RATE not of right size"); struct REPORT_UNKNOWN_1 { @@ -158,7 +177,7 @@ static_assert(sizeof(struct REPORT_MOTION_SYNC) == REPORT_MAX_SIZE, "Report MOTI struct REPORT_UNKNOWN_6 { report_header_t header; - + uint8_t value0; uint8_t value1; uint8_t value2;