Skip to content

Commit

Permalink
Get the current WGI controller list at startup
Browse files Browse the repository at this point in the history
On Win32 this list is empty and we always get controller added events. On UWP, this list is populated and we don't get controlle added events for currently connected controllers.
  • Loading branch information
slouken committed Nov 27, 2021
1 parent 12895ec commit 09b7ca2
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/joystick/windows/SDL_windows_gaming_input.c
Expand Up @@ -532,6 +532,24 @@ WGI_JoystickInit(void)
if (!SUCCEEDED(hr)) {
SDL_SetError("add_RawGameControllerRemoved() failed: 0x%lx\n", hr);
}

__FIVectorView_1_Windows__CGaming__CInput__CRawGameController *controllers;
hr = __x_ABI_CWindows_CGaming_CInput_CIRawGameControllerStatics_get_RawGameControllers(wgi.statics, &controllers);
if (SUCCEEDED(hr)) {
unsigned i, count = 0;

hr = __FIVectorView_1_Windows__CGaming__CInput__CRawGameController_get_Size(controllers, &count);
if (SUCCEEDED(hr)) {
for (i = 0; i < count; ++i) {
__x_ABI_CWindows_CGaming_CInput_CIRawGameController *e = NULL;

hr = __FIVectorView_1_Windows__CGaming__CInput__CRawGameController_GetAt(controllers, i, &e);
if (SUCCEEDED(hr) && e) {
IEventHandler_CRawGameControllerVtbl_InvokeAdded(&controller_added, (IInspectable *)controllers, e);
}
}
}
}
}

return 0;
Expand Down

0 comments on commit 09b7ca2

Please sign in to comment.