14 #ifndef WINRAWINPUTDEVICE_H 15 #define WINRAWINPUTDEVICE_H 21 #if defined(_WIN32) && !defined(CPPPARSER) 23 class WinInputDeviceManager;
29 class EXPCL_PANDA_DEVICE WinRawInputDevice final :
public InputDevice {
31 WinRawInputDevice(WinInputDeviceManager *manager,
const char *path);
34 bool on_arrival(HANDLE handle,
const RID_DEVICE_INFO &info, std::string name);
36 void on_input(PRAWINPUT input);
37 void process_report(PCHAR ptr,
size_t size);
40 virtual void do_poll();
43 const std::string _path;
46 ULONG _max_data_count;
53 Index() : _button(-1), _axis(-1) {}
55 static Index button(
int index) {
60 static Index axis(
int index,
bool is_signed=
true) {
63 idx._signed = is_signed;
75 int _hat_data_minimum;
78 WinInputDeviceManager *_manager;
79 friend class WinInputDeviceManager;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL vector.