X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/78fc4e5509e42b96304175883cdf5750081c3313..e4161a2a08e622ba55f66610e26892f5fda37e6f:/include/wx/mac/corefoundation/hid.h?ds=sidebyside diff --git a/include/wx/mac/corefoundation/hid.h b/include/wx/mac/corefoundation/hid.h index 9af78ddb07..e6df5cb45f 100644 --- a/include/wx/mac/corefoundation/hid.h +++ b/include/wx/mac/corefoundation/hid.h @@ -8,6 +8,7 @@ // Copyright: (c) Ryan Norton // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// + // =========================================================================== // declarations // =========================================================================== @@ -22,10 +23,6 @@ #include "wx/defs.h" #include "wx/string.h" -// --------------------------------------------------------------------------- -// definitions -// --------------------------------------------------------------------------- - //Mac OSX only #ifdef __DARWIN__ @@ -44,28 +41,24 @@ extern "C" { #include //this actually includes mach_port.h (see above) -//Utility wrapper around CFArray -class wxCFArray -{ -public: - wxCFArray(CFTypeRef pData) : pArray((CFArrayRef) pData) {} - CFTypeRef operator [] (const int& nIndex) {return CFArrayGetValueAtIndex(pArray, nIndex); } - int Count() {return CFArrayGetCount(pArray);} -private: - CFArrayRef pArray; -}; +// =========================================================================== +// definitions +// =========================================================================== + +// --------------------------------------------------------------------------- +// wxHIDDevice // // A wrapper around OS X HID Manager procedures. // The tutorial "Working With HID Class Device Interfaces" Is // Quite good, as is the sample program associated with it // (Depite the author's protests!). -class wxHIDDevice +// --------------------------------------------------------------------------- +class WXDLLIMPEXP_CORE wxHIDDevice { public: wxHIDDevice() : m_ppDevice(NULL), m_ppQueue(NULL), m_pCookies(NULL) {} - //kHIDPage_GenericDesktop - //kHIDUsage_GD_Joystick,kHIDUsage_GD_Mouse,kHIDUsage_GD_Keyboard + bool Create (int nClass = -1, int nType = -1, int nDev = 1); static size_t GetCount(int nClass = -1, int nType = -1); @@ -78,12 +71,13 @@ public: //builds the cookie array - //first call InitCookies to initialize the cookie //array, then AddCookie to add a cookie at a certain point in an array - virtual void BuildCookies(wxCFArray& Array) = 0; + virtual void BuildCookies(CFArrayRef Array) = 0; //checks to see whether the cookie at nIndex is active (element value != 0) bool IsActive(int nIndex); - //checks to see whether the cookie at nIndex exists + //checks to see whether an element in the internal cookie array + //exists bool HasElement(int nIndex); //closes the device and cleans the queue and cookies @@ -97,17 +91,26 @@ protected: wxString m_szProductName; //product name int m_nProductId; //product id int m_nManufacturerId; //manufacturer id - mach_port_t m_pPort; + mach_port_t m_pPort; //mach port to use }; -class wxHIDKeyboard : public wxHIDDevice +// --------------------------------------------------------------------------- +// wxHIDKeyboard +// +// Semi-simple implementation that opens a connection to the first +// keyboard of the machine. Used in wxGetKeyState. +// --------------------------------------------------------------------------- +class WXDLLIMPEXP_CORE wxHIDKeyboard : public wxHIDDevice { public: - bool Create(); - virtual void BuildCookies(wxCFArray& Array); + static int GetCount(); + bool Create(int nDev = 1); + void AddCookie(CFTypeRef Data, int i); + virtual void BuildCookies(CFArrayRef Array); + void DoBuildCookies(CFArrayRef Array); }; #endif //__DARWIN__ #endif - //WX_MACCARBONHID_H + // _WX_MACCARBONHID_H_