Add Sixaxis init for Monterey

This commit is contained in:
nastys 2022-01-23 13:52:21 +01:00 committed by Megamouse
parent 9c712bbe82
commit 8b43a97a93
2 changed files with 21 additions and 0 deletions

View File

@ -622,6 +622,14 @@ extern "C" {
*/
int HID_API_EXPORT HID_API_CALL hid_write_control(hid_device *device, const unsigned char *data, size_t length);
#ifdef __APPLE__
/** RPCS3 EDIT: Initializes a USB Sixaxis/DualShock 3 controller,
* which requires report_id to be separate from the data packet.
* Required on macOS Monterey.
*/
int HID_API_EXPORT hid_init_sixaxis_usb(hid_device *dev);
#endif
#ifdef __cplusplus
}
#endif

View File

@ -1555,3 +1555,16 @@ HID_API_EXPORT const wchar_t * HID_API_CALL hid_error(hid_device *dev)
return L"Success";
return last_global_error_str;
}
int HID_API_EXPORT hid_init_sixaxis_usb(hid_device *dev)
{
const char data[] = { 0x42, 0x0C, 0x00, 0x00 };
size_t length = sizeof(data);
const unsigned char report_id = 0xF4;
if (IOHIDDeviceSetReport(dev->device_handle, kIOHIDReportTypeFeature, report_id, data, length) == kIOReturnSuccess) {
return length;
}
return -1;
}