mirror of https://github.com/encounter/SDL.git
Wii: don't bother reading the extension type for the Wii U Pro controller, we already know what it is
This commit is contained in:
parent
c3ecb9d099
commit
a35642fa3e
|
@ -501,7 +501,7 @@ static void SDLCALL SDL_PlayerLEDHintChanged(void *userdata, const char *name, c
|
||||||
}
|
}
|
||||||
|
|
||||||
static EWiiExtensionControllerType
|
static EWiiExtensionControllerType
|
||||||
ReadControllerType(SDL_HIDAPI_Device *device)
|
ReadExtensionControllerType(SDL_HIDAPI_Device *device)
|
||||||
{
|
{
|
||||||
EWiiExtensionControllerType eExtensionControllerType = k_eWiiExtensionControllerType_Unknown;
|
EWiiExtensionControllerType eExtensionControllerType = k_eWiiExtensionControllerType_Unknown;
|
||||||
|
|
||||||
|
@ -572,7 +572,13 @@ static SDL_bool
|
||||||
HIDAPI_DriverWii_InitDevice(SDL_HIDAPI_Device *device)
|
HIDAPI_DriverWii_InitDevice(SDL_HIDAPI_Device *device)
|
||||||
{
|
{
|
||||||
if (device->vendor_id == USB_VENDOR_NINTENDO) {
|
if (device->vendor_id == USB_VENDOR_NINTENDO) {
|
||||||
EWiiExtensionControllerType eExtensionControllerType = ReadControllerType(device);
|
EWiiExtensionControllerType eExtensionControllerType;
|
||||||
|
|
||||||
|
if (device->product_id == USB_PRODUCT_NINTENDO_WII_PRO) {
|
||||||
|
eExtensionControllerType = k_eWiiExtensionControllerType_WiiUPro;
|
||||||
|
} else {
|
||||||
|
eExtensionControllerType = ReadExtensionControllerType(device);
|
||||||
|
}
|
||||||
device->guid.data[15] = eExtensionControllerType;
|
device->guid.data[15] = eExtensionControllerType;
|
||||||
UpdateDeviceIdentity(device);
|
UpdateDeviceIdentity(device);
|
||||||
}
|
}
|
||||||
|
@ -1125,8 +1131,6 @@ static void HandleInput(SDL_DriverWii_Context *ctx, SDL_Joystick *joystick)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const Uint32 FIFTEEN_MINUTES_IN_MS = 15 * 60 * 1000;
|
|
||||||
|
|
||||||
static SDL_bool
|
static SDL_bool
|
||||||
HIDAPI_DriverWii_UpdateDevice(SDL_HIDAPI_Device *device)
|
HIDAPI_DriverWii_UpdateDevice(SDL_HIDAPI_Device *device)
|
||||||
{
|
{
|
||||||
|
@ -1160,19 +1164,22 @@ HIDAPI_DriverWii_UpdateDevice(SDL_HIDAPI_Device *device)
|
||||||
/* Bluetooth may have disconnected, try reopening the controller */
|
/* Bluetooth may have disconnected, try reopening the controller */
|
||||||
size = -1;
|
size = -1;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Request a status update periodically to make sure our battery value is up to date */
|
} else {
|
||||||
if (!ctx->m_unLastStatus ||
|
const Uint32 FIFTEEN_MINUTES_IN_MS = 15 * 60 * 1000;
|
||||||
SDL_TICKS_PASSED(now, ctx->m_unLastStatus + FIFTEEN_MINUTES_IN_MS) ||
|
|
||||||
ctx->m_eCommState == k_eWiiCommunicationState_Error) {
|
|
||||||
Uint8 data[2];
|
|
||||||
|
|
||||||
data[0] = k_eWiiOutputReportIDs_StatusRequest;
|
/* Request a status update periodically to make sure our battery value is up to date */
|
||||||
data[1] = ctx->m_bRumbleActive;
|
if (!ctx->m_unLastStatus ||
|
||||||
WriteOutput(ctx, data, sizeof(data), SDL_FALSE);
|
SDL_TICKS_PASSED(now, ctx->m_unLastStatus + FIFTEEN_MINUTES_IN_MS) ||
|
||||||
|
ctx->m_eCommState == k_eWiiCommunicationState_Error) {
|
||||||
|
Uint8 data[2];
|
||||||
|
|
||||||
ctx->m_unLastStatus = now;
|
data[0] = k_eWiiOutputReportIDs_StatusRequest;
|
||||||
|
data[1] = ctx->m_bRumbleActive;
|
||||||
|
WriteOutput(ctx, data, sizeof(data), SDL_FALSE);
|
||||||
|
|
||||||
|
ctx->m_unLastStatus = now;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size < 0) {
|
if (size < 0) {
|
||||||
|
|
Loading…
Reference in New Issue