mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-29 22:20:48 +00:00
input: move raw mouse register logic to own function
This commit is contained in:
parent
3dfbd14de2
commit
b56f9490f5
@ -284,35 +284,48 @@ void raw_mouse_handler::Init(const u32 max_connect)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (max_connect && !m_raw_mice.empty())
|
register_raw_input_devices();
|
||||||
{
|
|
||||||
// Initialize and center all mice
|
|
||||||
for (auto& [handle, mouse] : m_raw_mice)
|
|
||||||
{
|
|
||||||
mouse.update_window_handle();
|
|
||||||
mouse.center_cursor();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the window handle of the first mouse
|
|
||||||
raw_mouse& mouse = m_raw_mice.begin()->second;
|
|
||||||
|
|
||||||
std::vector<RAWINPUTDEVICE> raw_input_devices;
|
|
||||||
raw_input_devices.push_back(RAWINPUTDEVICE {
|
|
||||||
.usUsagePage = HID_USAGE_PAGE_GENERIC,
|
|
||||||
.usUsage = HID_USAGE_GENERIC_MOUSE,
|
|
||||||
.dwFlags = 0,
|
|
||||||
.hwndTarget = mouse.window_handle()
|
|
||||||
});
|
|
||||||
if (!RegisterRawInputDevices(raw_input_devices.data(), ::size32(raw_input_devices), sizeof(RAWINPUTDEVICE)))
|
|
||||||
{
|
|
||||||
input_log.error("raw_mouse_handler: RegisterRawInputDevices failed: %s", fmt::win_error{GetLastError(), nullptr});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
type = mouse_handler::raw;
|
type = mouse_handler::raw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
void raw_mouse_handler::register_raw_input_devices()
|
||||||
|
{
|
||||||
|
if (m_registered_raw_input_devices || !m_info.max_connect || m_raw_mice.empty())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize and center all mice
|
||||||
|
for (auto& [handle, mouse] : m_raw_mice)
|
||||||
|
{
|
||||||
|
mouse.update_window_handle();
|
||||||
|
mouse.center_cursor();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the window handle of the first mouse
|
||||||
|
raw_mouse& mouse = m_raw_mice.begin()->second;
|
||||||
|
|
||||||
|
std::vector<RAWINPUTDEVICE> raw_input_devices;
|
||||||
|
raw_input_devices.push_back(RAWINPUTDEVICE {
|
||||||
|
.usUsagePage = HID_USAGE_PAGE_GENERIC,
|
||||||
|
.usUsage = HID_USAGE_GENERIC_MOUSE,
|
||||||
|
.dwFlags = 0,
|
||||||
|
.hwndTarget = mouse.window_handle()
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!RegisterRawInputDevices(raw_input_devices.data(), ::size32(raw_input_devices), sizeof(RAWINPUTDEVICE)))
|
||||||
|
{
|
||||||
|
input_log.error("raw_mouse_handler: RegisterRawInputDevices failed: %s", fmt::win_error{GetLastError(), nullptr});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_registered_raw_input_devices = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void raw_mouse_handler::enumerate_devices(u32 max_connect)
|
void raw_mouse_handler::enumerate_devices(u32 max_connect)
|
||||||
{
|
{
|
||||||
input_log.notice("raw_mouse_handler: enumerating devices (max_connect=%d)", max_connect);
|
input_log.notice("raw_mouse_handler: enumerating devices (max_connect=%d)", max_connect);
|
||||||
|
@ -89,6 +89,11 @@ public:
|
|||||||
private:
|
private:
|
||||||
void enumerate_devices(u32 max_connect);
|
void enumerate_devices(u32 max_connect);
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
void register_raw_input_devices();
|
||||||
|
bool m_registered_raw_input_devices = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
bool m_ignore_config = false;
|
bool m_ignore_config = false;
|
||||||
std::map<void*, raw_mouse> m_raw_mice;
|
std::map<void*, raw_mouse> m_raw_mice;
|
||||||
std::function<void(const std::string&, s32, bool)> m_mouse_press_callback;
|
std::function<void(const std::string&, s32, bool)> m_mouse_press_callback;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user