aboutsummaryrefslogtreecommitdiff
path: root/rmidevice/hiddevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'rmidevice/hiddevice.h')
-rwxr-xr-x[-rw-r--r--]rmidevice/hiddevice.h36
1 files changed, 26 insertions, 10 deletions
diff --git a/rmidevice/hiddevice.h b/rmidevice/hiddevice.h
index 05a11fa..b947f62 100644..100755
--- a/rmidevice/hiddevice.h
+++ b/rmidevice/hiddevice.h
@@ -20,8 +20,15 @@
#include <linux/hidraw.h>
#include <string>
+#include <stdint.h>
#include "rmidevice.h"
+enum rmi_hid_mode_type {
+ HID_RMI4_MODE_MOUSE = 0,
+ HID_RMI4_MODE_ATTN_REPORTS = 1,
+ HID_RMI4_MODE_NO_PACKED_ATTN_REPORTS = 2,
+};
+
class HIDDevice : public RMIDevice
{
public:
@@ -30,7 +37,11 @@ public:
m_inputReportSize(0),
m_outputReportSize(0),
m_featureReportSize(0),
- m_deviceOpen(false)
+ m_deviceOpen(false),
+ m_mode(HID_RMI4_MODE_ATTN_REPORTS),
+ m_initialMode(HID_RMI4_MODE_MOUSE),
+ m_transportDeviceName(""),
+ m_driverPath("")
{}
virtual int Open(const char * filename);
virtual int Read(unsigned short addr, unsigned char *buf,
@@ -48,6 +59,9 @@ public:
virtual void PrintDeviceInfo();
+ virtual bool FindDevice(enum RMIDeviceType type = RMI_DEVICE_TYPE_ANY);
+ virtual bool CheckABSEvent();
+
private:
int m_fd;
@@ -67,21 +81,23 @@ private:
bool m_deviceOpen;
- enum mode_type {
- HID_RMI4_MODE_MOUSE = 0,
- HID_RMI4_MODE_ATTN_REPORTS = 1,
- HID_RMI4_MODE_NO_PACKED_ATTN_REPORTS = 2,
- };
+ rmi_hid_mode_type m_mode;
+ rmi_hid_mode_type m_initialMode;
+
+ std::string m_transportDeviceName;
+ std::string m_driverPath;
int GetReport(int *reportId, struct timeval * timeout = NULL);
void PrintReport(const unsigned char *report);
- void ParseReportSizes();
+ void ParseReportDescriptor();
+
+ bool WaitForHidRawDevice(int notifyFd, std::string & hidraw);
// static HID utility functions
- static bool LookupHidDeviceName(int bus, int vendorId, int productId, std::string &deviceName);
- static bool FindTransportDevice(int bus, std::string & hidDeviceName,
+ static bool LookupHidDeviceName(uint32_t bus, int16_t vendorId, int16_t productId, std::string &deviceName);
+ static bool LookupHidDriverName(std::string &deviceName, std::string &driverName);
+ static bool FindTransportDevice(uint32_t bus, std::string & hidDeviceName,
std::string & transportDeviceName, std::string & driverPath);
- static bool FindHidRawFile(std::string & hidDeviceName, std::string & hidrawFile);
};
#endif /* _HIDDEVICE_H_ */