mirror of https://github.com/encounter/SDL.git
Don't call hid_enumerate() if the HIDAPI drivers are all disabled
This commit is contained in:
parent
aaffbb2ef6
commit
dc714389f0
|
@ -96,6 +96,7 @@ static SDL_HIDAPI_DeviceDriver *SDL_HIDAPI_drivers[] = {
|
|||
&SDL_HIDAPI_DriverXboxOne,
|
||||
#endif
|
||||
};
|
||||
static int SDL_HIDAPI_numdrivers = 0;
|
||||
static SDL_HIDAPI_Device *SDL_HIDAPI_devices;
|
||||
static int SDL_HIDAPI_numjoysticks = 0;
|
||||
|
||||
|
@ -656,6 +657,14 @@ SDL_HIDAPIDriverHintChanged(void *userdata, const char *name, const char *oldVal
|
|||
}
|
||||
}
|
||||
|
||||
SDL_HIDAPI_numdrivers = 0;
|
||||
for (i = 0; i < SDL_arraysize(SDL_HIDAPI_drivers); ++i) {
|
||||
SDL_HIDAPI_DeviceDriver *driver = SDL_HIDAPI_drivers[i];
|
||||
if (driver->enabled) {
|
||||
++SDL_HIDAPI_numdrivers;
|
||||
}
|
||||
}
|
||||
|
||||
/* Update device list if driver availability changes */
|
||||
while (device) {
|
||||
if (device->driver) {
|
||||
|
@ -869,6 +878,7 @@ HIDAPI_UpdateDeviceList(void)
|
|||
}
|
||||
|
||||
/* Enumerate the devices */
|
||||
if (SDL_HIDAPI_numdrivers > 0) {
|
||||
devs = hid_enumerate(0, 0);
|
||||
if (devs) {
|
||||
for (info = devs; info; info = info->next) {
|
||||
|
@ -881,6 +891,7 @@ HIDAPI_UpdateDeviceList(void)
|
|||
}
|
||||
hid_free_enumeration(devs);
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove any devices that weren't seen */
|
||||
device = SDL_HIDAPI_devices;
|
||||
|
|
Loading…
Reference in New Issue