From ea824c6d207f06dbf0b33a31bd9118aec22b8633 Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Thu, 2 Mar 2023 21:40:02 +0300 Subject: [PATCH] hidapi/windows tidy-up. --- src/hidapi/windows/hid.c | 45 +++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/hidapi/windows/hid.c b/src/hidapi/windows/hid.c index c8ddd6393..9f22521e7 100644 --- a/src/hidapi/windows/hid.c +++ b/src/hidapi/windows/hid.c @@ -144,7 +144,7 @@ static HMODULE hid_lib_handle = NULL; static HMODULE cfgmgr32_lib_handle = NULL; static BOOLEAN hidapi_initialized = FALSE; -static void free_library_handles() +static void free_library_handles(void) { if (hid_lib_handle) FreeLibrary(hid_lib_handle); @@ -158,7 +158,7 @@ static void free_library_handles() # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wcast-function-type" #endif -static int lookup_functions() +static int lookup_functions(void) { hid_lib_handle = LoadLibraryW(L"hid.dll"); if (hid_lib_handle == NULL) { @@ -242,7 +242,7 @@ IsWindowsVersionOrGreater(WORD wMajorVersion, WORD wMinorVersion, WORD wServiceP return VerifyVersionInfoW(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) != FALSE; } -static hid_device *new_hid_device() +static hid_device *new_hid_device(void) { hid_device *dev = (hid_device*) calloc(1, sizeof(hid_device)); dev->device_handle = INVALID_HANDLE_VALUE; @@ -446,6 +446,7 @@ static int hid_internal_get_interface_number(const wchar_t* hardware_id) static void hid_internal_get_info(const wchar_t* interface_path, struct hid_device_info* dev) { wchar_t *device_id = NULL, *compatible_ids = NULL, *hardware_ids = NULL; + wchar_t *id; CONFIGRET cr; DEVINST dev_node; @@ -465,11 +466,12 @@ static void hid_internal_get_info(const wchar_t* interface_path, struct hid_devi goto end; /* Search for interface number in hardware ids */ - for (wchar_t* hardware_id = hardware_ids; *hardware_id; hardware_id += wcslen(hardware_id) + 1) { + for (id = hardware_ids; *id; id += wcslen(id) + 1) { /* Normalize to upper case */ - for (wchar_t* p = hardware_id; *p; ++p) *p = towupper(*p); + wchar_t* p = id; + for (; *p; ++p) *p = towupper(*p); - dev->interface_number = hid_internal_get_interface_number(hardware_id); + dev->interface_number = hid_internal_get_interface_number(id); if (dev->interface_number != -1) break; @@ -486,27 +488,28 @@ static void hid_internal_get_info(const wchar_t* interface_path, struct hid_devi goto end; /* Now we can parse parent's compatible IDs to find out the device bus type */ - for (wchar_t* compatible_id = compatible_ids; *compatible_id; compatible_id += wcslen(compatible_id) + 1) { + for (id = compatible_ids; *id; id += wcslen(id) + 1) { /* Normalize to upper case */ - for (wchar_t* p = compatible_id; *p; ++p) *p = towupper(*p); + wchar_t* p = id; + for (; *p; ++p) *p = towupper(*p); /* USB devices https://docs.microsoft.com/windows-hardware/drivers/hid/plug-and-play-support https://docs.microsoft.com/windows-hardware/drivers/install/standard-usb-identifiers */ - if (wcsstr(compatible_id, L"USB") != NULL) { + if (wcsstr(id, L"USB") != NULL) { dev->bus_type = HID_API_BUS_USB; break; } /* Bluetooth devices https://docs.microsoft.com/windows-hardware/drivers/bluetooth/installing-a-bluetooth-device */ - if (wcsstr(compatible_id, L"BTHENUM") != NULL) { + if (wcsstr(id, L"BTHENUM") != NULL) { dev->bus_type = HID_API_BUS_BLUETOOTH; break; } /* Bluetooth LE devices */ - if (wcsstr(compatible_id, L"BTHLEDEVICE") != NULL) { + if (wcsstr(id, L"BTHLEDEVICE") != NULL) { /* HidD_GetProductString/HidD_GetManufacturerString/HidD_GetSerialNumberString is not working for BLE HID devices Request this info via dev node properties instead. https://docs.microsoft.com/answers/questions/401236/hidd-getproductstring-with-ble-hid-device.html */ @@ -518,14 +521,14 @@ static void hid_internal_get_info(const wchar_t* interface_path, struct hid_devi /* I2C devices https://docs.microsoft.com/windows-hardware/drivers/hid/plug-and-play-support-and-power-management */ - if (wcsstr(compatible_id, L"PNP0C50") != NULL) { + if (wcsstr(id, L"PNP0C50") != NULL) { dev->bus_type = HID_API_BUS_I2C; break; } /* SPI devices https://docs.microsoft.com/windows-hardware/drivers/hid/plug-and-play-for-spi */ - if (wcsstr(compatible_id, L"PNP0C51") != NULL) { + if (wcsstr(id, L"PNP0C51") != NULL) { dev->bus_type = HID_API_BUS_SPI; break; } @@ -570,7 +573,7 @@ static wchar_t *hid_internal_UTF8toUTF16(const char *src) static int hid_get_bluetooth_info(const char *path, struct hid_device_info* dev) { wchar_t *interface_path = NULL, *device_id = NULL, *compatible_ids = NULL; - wchar_t *compatible_id; + wchar_t *id; CONFIGRET cr; DEVINST dev_node; int is_bluetooth = 0; @@ -597,29 +600,29 @@ static int hid_get_bluetooth_info(const char *path, struct hid_device_info* dev) goto end; /* Now we can parse parent's compatible IDs to find out the device bus type */ - for (compatible_id = compatible_ids; *compatible_id; compatible_id += wcslen(compatible_id) + 1) { + for (id = compatible_ids; *id; id += wcslen(id) + 1) { /* Normalize to upper case */ - wchar_t* p = compatible_id; + wchar_t* p = id; for (; *p; ++p) *p = towupper(*p); /* USB devices https://docs.microsoft.com/windows-hardware/drivers/hid/plug-and-play-support https://docs.microsoft.com/windows-hardware/drivers/install/standard-usb-identifiers */ - if (wcsstr(compatible_id, L"USB") != NULL) { + if (wcsstr(id, L"USB") != NULL) { /*dev->bus_type = HID_API_BUS_USB;*/ break; } /* Bluetooth devices https://docs.microsoft.com/windows-hardware/drivers/bluetooth/installing-a-bluetooth-device */ - if (wcsstr(compatible_id, L"BTHENUM") != NULL) { + if (wcsstr(id, L"BTHENUM") != NULL) { /*dev->bus_type = HID_API_BUS_BLUETOOTH;*/ is_bluetooth = 1; break; } /* Bluetooth LE devices */ - if (wcsstr(compatible_id, L"BTHLEDEVICE") != NULL) { + if (wcsstr(id, L"BTHLEDEVICE") != NULL) { /* HidD_GetProductString/HidD_GetManufacturerString/HidD_GetSerialNumberString is not working for BLE HID devices Request this info via dev node properties instead. https://docs.microsoft.com/answers/questions/401236/hidd-getproductstring-with-ble-hid-device.html */ @@ -633,14 +636,14 @@ static int hid_get_bluetooth_info(const char *path, struct hid_device_info* dev) /* I2C devices https://docs.microsoft.com/windows-hardware/drivers/hid/plug-and-play-support-and-power-management */ - if (wcsstr(compatible_id, L"PNP0C50") != NULL) { + if (wcsstr(id, L"PNP0C50") != NULL) { /*dev->bus_type = HID_API_BUS_I2C;*/ break; } /* SPI devices https://docs.microsoft.com/windows-hardware/drivers/hid/plug-and-play-for-spi */ - if (wcsstr(compatible_id, L"PNP0C51") != NULL) { + if (wcsstr(id, L"PNP0C51") != NULL) { /*dev->bus_type = HID_API_BUS_SPI;*/ break; }