in Lilypad/DualShock3.cpp [254:295]
void EnumDualShock3s()
{
wchar_t name[30];
XINPUT_STATE state;
SCP_EXTN extn;
if (!pXInputSetState)
{
if (pXInputGetExtended) return;
HMODULE hMod = 0;
if (hMod = LoadLibraryW(L"XInput1_3.dll"))
{
if ((pXInputEnable = (_XInputEnable)GetProcAddress(hMod, "XInputEnable"))
&& (pXInputGetState = (_XInputGetState)GetProcAddress(hMod, "XInputGetState"))
&& (pXInputSetState = (_XInputSetState)GetProcAddress(hMod, "XInputSetState")))
{
pXInputGetExtended = (_XInputGetExtended)GetProcAddress(hMod, "XInputGetExtended");
}
}
if (!pXInputGetExtended)
{
pXInputGetExtended = (_XInputGetExtended)-1;
return;
}
}
pXInputEnable(1);
for (int index = 0; index < 4; index++)
{
if (pXInputGetState(index, &state) == ERROR_SUCCESS && pXInputGetExtended(index, &extn) == ERROR_SUCCESS)
{
wsprintfW(name, L"DualShock 3 #%i", index + 1);
dm->AddDevice(new DualShock3Device(index, name));
}
}
pXInputEnable(0);
}