From f3648cc3c5c7b9b9e9b9036a205d520f975603bd Mon Sep 17 00:00:00 2001 From: Lawstorant Date: Wed, 21 Aug 2024 12:21:54 +0200 Subject: [PATCH] Add support for Moza FH5 compatibility mode --- hid-ids.h | 9 +++++++++ hid-pidff-wrapper.c | 12 +++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/hid-ids.h b/hid-ids.h index a12a798..09658ee 100644 --- a/hid-ids.h +++ b/hid-ids.h @@ -2,6 +2,7 @@ #ifndef __HID_IDS_H #define __HID_IDS_H +// Moza Racing #define USB_VENDOR_ID_MOZA 0x346e #define USB_DEVICE_ID_MOZA_R3 0x0005 #define USB_DEVICE_ID_MOZA_R5 0x0004 @@ -9,6 +10,14 @@ #define USB_DEVICE_ID_MOZA_R12 0x0006 #define USB_DEVICE_ID_MOZA_R16_R21 0x0000 +// Moza Racing FH5 mode +#define USB_DEVICE_ID_MOZA_R3_FH5 0x0015 +#define USB_DEVICE_ID_MOZA_R5_FH5 0x0014 +#define USB_DEVICE_ID_MOZA_R9_FH5 0x0012 +#define USB_DEVICE_ID_MOZA_R12_FH5 0x0016 +#define USB_DEVICE_ID_MOZA_R16_R21_FH5 0x0010 + +// Cammus #define USB_VENDOR_ID_CAMMUS 0x3416 #define USB_DEVICE_ID_CAMMUS_C5 0x0301 #define USB_DEVICE_ID_CAMMUS_C12 0x0302 diff --git a/hid-pidff-wrapper.c b/hid-pidff-wrapper.c index 0330355..8c4a648 100644 --- a/hid-pidff-wrapper.c +++ b/hid-pidff-wrapper.c @@ -27,6 +27,16 @@ static const struct hid_device_id pidff_wheel_devices[] = { .driver_data = PIDFF_QUIRK_FIX_WHEEL_DIRECTION }, { HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R16_R21), .driver_data = PIDFF_QUIRK_FIX_WHEEL_DIRECTION }, + { HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R3_FH5), + .driver_data = PIDFF_QUIRK_FIX_WHEEL_DIRECTION }, + { HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R5_FH5), + .driver_data = PIDFF_QUIRK_FIX_WHEEL_DIRECTION }, + { HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R9_FH5), + .driver_data = PIDFF_QUIRK_FIX_WHEEL_DIRECTION }, + { HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R12_FH5), + .driver_data = PIDFF_QUIRK_FIX_WHEEL_DIRECTION }, + { HID_USB_DEVICE(USB_VENDOR_ID_MOZA, USB_DEVICE_ID_MOZA_R16_R21_FH5), + .driver_data = PIDFF_QUIRK_FIX_WHEEL_DIRECTION }, { HID_USB_DEVICE(USB_VENDOR_ID_CAMMUS, USB_DEVICE_ID_CAMMUS_C5), .driver_data = PIDFF_QUIRK_NO_DELAY_EFFECT }, { HID_USB_DEVICE(USB_VENDOR_ID_CAMMUS, USB_DEVICE_ID_CAMMUS_C12), @@ -71,7 +81,7 @@ static int universal_pidff_input_mapping(struct hid_device *hdev, struct hid_inp int code = button + BTN_JOYSTICK; // Detect the end of JOYSTICK buttons range - // KEY_AUDIO_DESC = 0x270 + // KEY_NEXT_FAVORITE = 0x270 if (code > BTN_DEAD) code = button + KEY_NEXT_FAVORITE - JOY_RANGE;