[android] hid: enumerate by vendor/product ids

This commit is contained in:
DH 2025-03-04 01:24:15 +03:00 committed by Megamouse
parent 853310e4d5
commit c24dc695f1
2 changed files with 19 additions and 3 deletions

View file

@ -19,7 +19,7 @@
LOG_CHANNEL(hid_log, "HID");
#ifdef ANDROID
std::vector<int> g_android_usb_devices;
std::vector<android_usb_device> g_android_usb_devices;
std::mutex g_android_usb_devices_mutex;
#endif
@ -192,7 +192,15 @@ void hid_pad_handler<Device>::enumerate_devices()
std::lock_guard lock(g_android_usb_devices_mutex);
for (auto device : g_android_usb_devices)
{
device_paths.insert(device);
auto filter = [&](id_pair id)
{
return id.m_vid == device.vendorId && id.m_pid == device.productId;
};
if (std::find_if(m_ids.begin(), m_ids.end(), filter) != m_ids.end())
{
device_paths.insert(device.fd);
}
}
}
#else

View file

@ -15,8 +15,16 @@
#ifdef ANDROID
using hid_enumerated_device_type = int;
using hid_enumerated_device_view = int;
struct android_usb_device
{
int fd;
u16 vendorId;
u16 productId;
};
inline constexpr auto hid_enumerated_device_default = -1;
extern std::vector<int> g_android_usb_devices;
extern std::vector<android_usb_device> g_android_usb_devices;
extern std::mutex g_android_usb_devices_mutex;
#else
using hid_enumerated_device_type = std::string;