Skip to content

Commit 559efd5

Browse files
endriftslouken
authored andcommitted
joystick: Add headset stub to GIP driver
1 parent 7cc3fee commit 559efd5

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/joystick/hidapi/SDL_hidapi_gip.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ typedef enum
257257
GIP_TYPE_FLIGHT_STICK = 3,
258258
GIP_TYPE_NAVIGATION_CONTROLLER = 4,
259259
GIP_TYPE_CHATPAD = 5,
260+
GIP_TYPE_HEADSET = 6,
260261
} GIP_AttachmentType;
261262

262263
typedef enum
@@ -290,6 +291,7 @@ SDL_COMPILE_TIME_ASSERT(GUID, sizeof(GUID) == 16);
290291
MAKE_GUID(GUID_ArcadeStick, 0x332054cc, 0xa34b, 0x41d5, 0xa3, 0x4a, 0xa6, 0xa6, 0x71, 0x1e, 0xc4, 0xb3);
291292
MAKE_GUID(GUID_DynamicLatencyInput, 0x87f2e56b, 0xc3bb, 0x49b1, 0x82, 0x65, 0xff, 0xff, 0xf3, 0x77, 0x99, 0xee);
292293
MAKE_GUID(GUID_FlightStick, 0x03f1a011, 0xefe9, 0x4cc1, 0x96, 0x9c, 0x38, 0xdc, 0x55, 0xf4, 0x04, 0xd0);
294+
MAKE_GUID(GUID_IHeadset, 0xbc25d1a3, 0xc24e, 0x4992, 0x9d, 0xda, 0xef, 0x4f, 0x12, 0x3e, 0xf5, 0xdc);
293295
MAKE_GUID(GUID_IConsoleFunctionMap_InputReport, 0xecddd2fe, 0xd387, 0x4294, 0xbd, 0x96, 0x1a, 0x71, 0x2e, 0x3d, 0xc7, 0x7d);
294296
MAKE_GUID(GUID_IConsoleFunctionMap_OverflowInputReport, 0x137d4bd0, 0x9347, 0x4472, 0xaa, 0x26, 0x8c, 0x34, 0xa0, 0x8f, 0xf9, 0xbd);
295297
MAKE_GUID(GUID_IController, 0x9776ff56, 0x9bfd, 0x4581, 0xad, 0x45, 0xb6, 0x45, 0xbb, 0xa5, 0x26, 0xd6);
@@ -308,7 +310,6 @@ MAKE_GUID(GUID_Wheel, 0x646979cf, 0x6b71, 0x4e96, 0x8d, 0xf9, 0x59, 0xe3, 0x98,
308310
* MAKE_GUID(GUID_IControllerProfileModeState, 0xf758dc66, 0x022c, 0x48b8, 0xa4, 0xf6, 0x45, 0x7b, 0xa8, 0x0e, 0x2a, 0x5b);
309311
* MAKE_GUID(GUID_ICustomAudio, 0x63fd9cc9, 0x94ee, 0x4b5d, 0x9c, 0x4d, 0x8b, 0x86, 0x4c, 0x14, 0x9c, 0xac);
310312
* MAKE_GUID(GUID_IExtendedDeviceFlags, 0x34ad9b1e, 0x36ad, 0x4fb5, 0x8a, 0xc7, 0x17, 0x23, 0x4c, 0x9f, 0x54, 0x6f);
311-
* MAKE_GUID(GUID_IHeadset, 0xbc25d1a3, 0xc24e, 0x4992, 0x9d, 0xda, 0xef, 0x4f, 0x12, 0x3e, 0xf5, 0xdc);
312313
* MAKE_GUID(GUID_IProgrammableGamepad, 0x31c1034d, 0xb5b7, 0x4551, 0x98, 0x13, 0x87, 0x69, 0xd4, 0xa0, 0xe4, 0xf9);
313314
* MAKE_GUID(GUID_IVirtualDevice, 0xdfd26825, 0x110a, 0x4e94, 0xb9, 0x37, 0xb2, 0x7c, 0xe4, 0x7b, 0x25, 0x40);
314315
* MAKE_GUID(GUID_OnlineDevAuth, 0x632b1fd1, 0xa3e9, 0x44f9, 0x84, 0x20, 0x5c, 0xe3, 0x44, 0xa0, 0x64, 0x04);
@@ -779,7 +780,8 @@ static bool GIP_SendVendorMessage(
779780

780781
static bool GIP_AttachmentIsController(GIP_Attachment *attachment)
781782
{
782-
return attachment->attachment_type != GIP_TYPE_CHATPAD;
783+
return attachment->attachment_type != GIP_TYPE_CHATPAD &&
784+
attachment->attachment_type != GIP_TYPE_HEADSET;
783785
}
784786

785787
static void GIP_MetadataFree(GIP_Metadata *metadata)
@@ -1510,6 +1512,11 @@ static bool GIP_HandleCommandMetadataRespose(
15101512
attachment->attachment_type = GIP_TYPE_CHATPAD;
15111513
break;
15121514
}
1515+
if (SDL_strcmp(type, "Windows.Xbox.Input.Headset") == 0) {
1516+
attachment->attachment_type = GIP_TYPE_HEADSET;
1517+
expected_guid = &GUID_IHeadset;
1518+
break;
1519+
}
15131520
}
15141521

15151522
found_expected_guid = !expected_guid;

0 commit comments

Comments
 (0)