Add network request for requesting list of HID devices in local client mode

This commit is contained in:
Adam Honse
2026-07-01 17:49:07 -05:00
parent 7c059fa3e3
commit df0137c2b0
8 changed files with 257 additions and 16 deletions

View File

@@ -24,10 +24,17 @@
#include "ProfileManager.h"
#include "LogManager.h"
#include "SettingsManager.h"
#include "StringUtils.h"
#include "NetworkClient.h"
#include "NetworkServer.h"
#include "filesystem.h"
/*---------------------------------------------------------*\
| Put these last to avoid some include order issues |
\*---------------------------------------------------------*/
#include <hidapi.h>
#include <libusb.h>
#ifdef __linux__
#include <sys/resource.h>
#endif
@@ -308,6 +315,43 @@ unsigned short ResourceManager::GetDefaultServerPort()
return(default_server_port);
}
std::vector<HIDDeviceInfo> ResourceManager::GetHIDDeviceInfo()
{
if(IsLocalClient())
{
return(GetLocalClient()->GetHIDDeviceInfo());
}
else
{
hid_device_info* hid_devices;
std::vector<HIDDeviceInfo> hid_info;
hid_devices = hid_enumerate(0,0);
while(hid_devices)
{
HIDDeviceInfo hid_device_info;
hid_device_info.vendor_id = hid_devices->vendor_id;
hid_device_info.product_id = hid_devices->product_id;
hid_device_info.release_number = hid_devices->release_number;
hid_device_info.usage_page = hid_devices->usage_page;
hid_device_info.usage = hid_devices->usage;
hid_device_info.interface_number = hid_devices->interface_number;
hid_device_info.serial_number = StringUtils::wchar_to_string(hid_devices->serial_number);
hid_device_info.manufacturer_string = StringUtils::wchar_to_string(hid_devices->manufacturer_string);
hid_device_info.product_string = StringUtils::wchar_to_string(hid_devices->product_string);
hid_device_info.path = hid_devices->path;
hid_info.push_back(hid_device_info);
hid_devices = hid_devices->next;
}
return(hid_info);
}
}
std::vector<i2c_smbus_interface*> & ResourceManager::GetI2CBuses()
{
return DetectionManager::get()->GetI2CBuses();