diff options
Diffstat (limited to 'wrapper/wrapper.cpp')
| -rw-r--r-- | wrapper/wrapper.cpp | 36 |
1 files changed, 4 insertions, 32 deletions
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index 71a8cf6..50a3596 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -1,6 +1,5 @@ #pragma once -#include <algorithm> #include <type_traits> #include <msclr\marshal_cppstd.h> @@ -277,30 +276,6 @@ public: } }; -struct device_info { - std::wstring name; - std::wstring id; -}; - -std::vector<device_info> get_unique_device_info() { - std::vector<device_info> info; - - rawinput_foreach_with_interface([&](const auto& dev, const WCHAR* name) { - info.push_back({ - L"", // get_property_wstr(name, &DEVPKEY_Device_FriendlyName), /* doesn't work */ - dev_id_from_interface(name) - }); - }); - - std::sort(info.begin(), info.end(), - [](auto&& l, auto&& r) { return l.id < r.id; }); - auto last = std::unique(info.begin(), info.end(), - [](auto&& l, auto&& r) { return l.id == r.id; }); - info.erase(last, info.end()); - - return info; -} - public ref struct RawInputInterop { static void AddHandlesFromID(String^ deviceID, List<IntPtr>^ rawInputHandles) @@ -318,18 +293,15 @@ public ref struct RawInputInterop } } - static List<ValueTuple<String^, String^>>^ GetDeviceIDs() + static List<String^>^ GetDeviceIDs() { try { - auto managed = gcnew List<ValueTuple<String^, String^>>(); + auto managed = gcnew List<String^>(); - for (auto&& [name, id] : get_unique_device_info()) + for (auto&& id : rawinput_dev_id_list()) { - managed->Add( - ValueTuple<String^, String^>( - msclr::interop::marshal_as<String^>(name), - msclr::interop::marshal_as<String^>(id))); + managed->Add(msclr::interop::marshal_as<String^>(id)); } return managed; |