diff --git a/ResourceManager.cpp b/ResourceManager.cpp index f87b9fc5..f240d2c7 100644 --- a/ResourceManager.cpp +++ b/ResourceManager.cpp @@ -658,14 +658,19 @@ void ResourceManager::DetectDevicesThreadFunction() \*-----------------------------------------------------------------------------*/ for(unsigned int hid_detector_idx = 0; hid_detector_idx < hid_device_detectors.size() && detection_is_required.load(); hid_detector_idx++) { - if(( hid_device_detectors[hid_detector_idx].address == addr ) - && ( ( hid_device_detectors[hid_detector_idx].interface == HID_INTERFACE_ANY ) - || ( hid_device_detectors[hid_detector_idx].interface == current_hid_device->interface_number ) ) + if(( ( hid_device_detectors[hid_detector_idx].address == addr ) ) #ifdef USE_HID_USAGE - && ( ( hid_device_detectors[hid_detector_idx].usage_page == HID_USAGE_PAGE_ANY ) - || ( hid_device_detectors[hid_detector_idx].usage_page == current_hid_device->usage_page ) ) - && ( ( hid_device_detectors[hid_detector_idx].usage == HID_USAGE_ANY ) - || ( hid_device_detectors[hid_detector_idx].usage == current_hid_device->usage ) ) + && ( ( hid_device_detectors[hid_detector_idx].usage_page == HID_USAGE_PAGE_ANY ) + || ( hid_device_detectors[hid_detector_idx].usage_page == current_hid_device->usage_page ) ) + && ( ( hid_device_detectors[hid_detector_idx].usage == HID_USAGE_ANY ) + || ( hid_device_detectors[hid_detector_idx].usage == current_hid_device->usage ) ) + && ( ( hid_device_detectors[hid_detector_idx].interface == HID_INTERFACE_ANY ) + || ( ( hid_device_detectors[hid_detector_idx].usage != HID_USAGE_PAGE_ANY ) + || ( hid_device_detectors[hid_detector_idx].usage_page != HID_USAGE_PAGE_ANY ) + || ( hid_device_detectors[hid_detector_idx].interface == current_hid_device->interface_number ) ) ) +#else + && ( ( hid_device_detectors[hid_detector_idx].interface == HID_INTERFACE_ANY ) + || ( hid_device_detectors[hid_detector_idx].interface == current_hid_device->interface_number ) ) #endif ) {