Etterna 0.74.4
Loading...
Searching...
No Matches
MouseDevice.h
1#ifndef MOUSE_DEVICE_H
2#define MOUSE_DEVICE_H
3
4#include "HIDDevice.h"
5#include "Etterna/Singletons/InputFilter.h"
6
7struct Mouse
8{
9 float x{ 0 };
10 float y{ 0 };
11 InputDevice id;
12 IOHIDElementCookie x_axis, y_axis;
13 int x_min, x_max;
14 int y_min, y_max;
15 std::vector<int> z_min, z_max;
16
17 std::vector<IOHIDElementCookie> z_axis;
18
19 Mouse();
20};
21float
22MACMouseX();
23float
24MACMouseY();
25float
26MACMouseScroll();
27
28class MouseDevice : public HIDDevice
29{
30 private:
31 __gnu_cxx::hash_map<IOHIDElementCookie, DeviceButton> m_Mapping;
32 Mouse m_Mouse;
33
34 protected:
35 bool AddLogicalDevice(int usagePage, int usage);
36 void AddElement(int usagePage,
37 int usage,
38 IOHIDElementCookie cookie,
39 const CFDictionaryRef properties);
40 void Open();
41
42 // just in case -aj
43 Mouse GetMouse() { return m_Mouse; }
44
45 public:
46 void GetButtonPresses(
47 std::vector<DeviceInput>& vPresses,
48 IOHIDElementCookie cookie,
49 int value,
50 const std::chrono::time_point<std::chrono::steady_clock>& now) const;
51 void GetDevicesAndDescriptions(std::vector<InputDeviceInfo>& vDevices) const;
52};
53
54#endif
Definition HIDDevice.h:70
Definition MouseDevice.h:29
Definition MouseDevice.h:8