Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/devices/corsair_void.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ void void_init(struct device** device)

device_void.capabilities = B(CAP_SIDETONE) | B(CAP_BATTERY_STATUS) | B(CAP_NOTIFICATION_SOUND) | B(CAP_LIGHTS);
device_void.capability_details[CAP_SIDETONE] = (struct capability_detail) { .usagepage = 0xff00, .usageid = 0x1, .interface = 0 };
device_void.capability_details[CAP_BATTERY_STATUS] = (struct capability_detail) { .usagepage = 0xffc5, .usageid = 0x1, .interface = 0 };
device_void.capability_details[CAP_NOTIFICATION_SOUND] = (struct capability_detail) { .usagepage = 0xffc5, .usageid = 0x1, .interface = 0 };
device_void.capability_details[CAP_LIGHTS] = (struct capability_detail) { .usagepage = 0xffc5, .usageid = 0x1, .interface = 0 };
device_void.capability_details[CAP_BATTERY_STATUS] = (struct capability_detail) { .usagepage = 0xffc5, .usageid = 0x1, .interface = 3 };
device_void.capability_details[CAP_NOTIFICATION_SOUND] = (struct capability_detail) { .usagepage = 0xffc5, .usageid = 0x1, .interface = 3 };
device_void.capability_details[CAP_LIGHTS] = (struct capability_detail) { .usagepage = 0xffc5, .usageid = 0x1, .interface = 3 };

device_void.send_sidetone = &void_send_sidetone;
device_void.request_battery = &void_request_battery;
Expand Down
8 changes: 7 additions & 1 deletion src/hid_utility.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* @param vid The device vendor ID.
* @param pid The device product ID.
* @param iid The device interface ID. A value of zero means to take the
* first enumerated (sub-) device.
* first enumerated (sub-) device. (Ignored on macOS)
* @param usagepageid The device usage page id, see usageid
* @param usageid The device usage id in context to usagepageid.
* Only used on Windows currently, and when not 0;
Expand All @@ -32,6 +32,12 @@ char* get_hid_path(uint16_t vid, uint16_t pid, int iid, uint16_t usagepageid, ui
return ret;
}

// Because of a MacOS Bug beginning with Ventura 13.3, we ignore the interfaceid
// See https://github.com/Sapd/HeadsetControl/issues/281
#ifdef __APPLE__
iid = 0;
#endif

// usageid is more specific to interface id, so we try it first
// It is a good idea, to do it on all platforms, however googling shows
// that older versions of hidapi have a bug where the value is not correctly
Expand Down