Skip to content

Commit

Permalink
Fixed PS3 controller initialization over Bluetooth
Browse files Browse the repository at this point in the history
Now that we have hidapi that knows whether the controller is connected via Bluetooth or USB, this is much easier to fix.
  • Loading branch information
slouken committed Jun 8, 2023
1 parent e15da19 commit 32d015a
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/joystick/hidapi/SDL_hidapi_ps3.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,14 @@ static SDL_bool HIDAPI_DriverPS3_InitDevice(SDL_HIDAPI_Device *device)
device->context = ctx;

/* Set the controller into report mode over Bluetooth */
{
if (device->is_bluetooth) {
Uint8 data[] = { 0xf4, 0x42, 0x03, 0x00, 0x00 };

SendFeatureReport(device->dev, data, sizeof(data));
}

/* Set the controller into report mode over USB */
{
if (!device->is_bluetooth) {
Uint8 data[USB_PACKET_LENGTH];

int size = ReadFeatureReport(device->dev, 0xf2, data, 17);
Expand Down
1 change: 1 addition & 0 deletions src/joystick/hidapi/SDL_hidapijoystick.c
Original file line number Diff line number Diff line change
Expand Up @@ -866,6 +866,7 @@ static SDL_HIDAPI_Device *HIDAPI_AddDevice(const struct SDL_hid_device_info *inf
device->interface_protocol = info->interface_protocol;
device->usage_page = info->usage_page;
device->usage = info->usage;
device->is_bluetooth = (info->bus_type == SDL_HID_API_BUS_BLUETOOTH);
device->dev_lock = SDL_CreateMutex();

/* Need the device name before getting the driver to know whether to ignore this device */
Expand Down

0 comments on commit 32d015a

Please sign in to comment.