16 #ifndef osxHIDPointingDevice_h
17 #define osxHIDPointingDevice_h
19 #include <pointing/input/osx/osxHIDInputDevice.h>
20 #include <pointing/input/PointingDevice.h>
21 #include <pointing/utils/URI.h>
22 #include <pointing/utils/TimeStamp.h>
24 #include <mach/mach_time.h>
30 struct PointingReport {
31 TimeStamp::inttime t ;
35 PointingReport(
void) ;
36 PointingReport& operator = (PointingReport& src) ;
38 bool isOlderThan(TimeStamp::inttime t)
const ;
39 bool setButton(uint32_t index, uint32_t value) ;
40 std::string toString(
void)
const ;
43 TimeStamp::inttime epoch ;
44 TimeStamp::inttime epoch_mach ;
45 mach_timebase_info_data_t mach_timebaseinfo ;
47 int vendorID, productID ;
48 int primaryUsagePage, primaryUsage ;
50 osxHIDInputDevice *hiddev ;
52 void *callback_context ;
53 bool use_report_callback ;
54 bool use_queue_callback ;
55 PointingReport qreport ;
57 double forced_cpi, forced_hz ;
60 bool isBluetooth(
void) ;
62 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
63 static void hidReportCallback(
void *context, IOReturn result,
void *sender,
64 IOHIDReportType type, uint32_t reportID,
65 uint8_t *report, CFIndex reportLength,
68 static void hidReportCallback(
void *context, IOReturn result,
void *sender,
69 IOHIDReportType type, uint32_t reportID,
70 uint8_t *report, CFIndex reportLength) ;
73 static void hidQueueCallback(
void *context, IOReturn result,
void *sender) ;
75 void report(osxHIDPointingDevice::PointingReport &r) ;
90 URI
getURI(
bool expanded=
false,
bool crossplatform=
false)
const ;
std::string getProduct(void) const
Readable product name.
Definition: osxHIDPointingDevice.cpp:166
double getResolution(double *defval=0) const
Resolution of the mouse in CPI (counts per inch).
Definition: osxHIDPointingDevice.cpp:175
void(* PointingCallback)(void *context, TimeStamp::inttime timestamp, int dx, int dy, int buttons)
Definition: PointingDevice.h:74
The PointingDevice class is used to represent Pointing Devices connected to the computer or pseudo-de...
Definition: PointingDevice.h:36
void setDebugLevel(int level)
Sets the level of information for debugging purposes (default = 0).
Definition: osxHIDPointingDevice.cpp:207
bool isActive(void) const
Indicates whether the current device is active.
Definition: osxHIDPointingDevice.cpp:96
double getUpdateFrequency(double *defval=0) const
Update frequency of the mouse in Hz.
Definition: osxHIDPointingDevice.cpp:188
URI getURI(bool expanded=false, bool crossplatform=false) const
Constructs the URI according to the parameters of the device.
Definition: osxHIDPointingDevice.cpp:101
std::string getVendor(void) const
Readable vendor name.
Definition: osxHIDPointingDevice.cpp:152
int getVendorID(void) const
Vendor identifier number.
Definition: osxHIDPointingDevice.cpp:145
int getProductID(void) const
Product identifier number.
Definition: osxHIDPointingDevice.cpp:159
Definition: osxHIDPointingDevice.h:28
void setPointingCallback(PointingCallback callback, void *context=0)
Sets the callback function which is called when device events occur.
Definition: osxHIDPointingDevice.cpp:212