| [7506] | 1 | /* | 
|---|
 | 2 |  The zlib/libpng License | 
|---|
 | 3 |   | 
|---|
 | 4 |  Copyright (c) 2005-2007 Phillip Castaneda (pjcast -- www.wreckedgames.com) | 
|---|
 | 5 |   | 
|---|
 | 6 |  This software is provided 'as-is', without any express or implied warranty. In no event will | 
|---|
 | 7 |  the authors be held liable for any damages arising from the use of this software. | 
|---|
 | 8 |   | 
|---|
 | 9 |  Permission is granted to anyone to use this software for any purpose, including commercial | 
|---|
 | 10 |  applications, and to alter it and redistribute it freely, subject to the following | 
|---|
 | 11 |  restrictions: | 
|---|
 | 12 |   | 
|---|
 | 13 |  1. The origin of this software must not be misrepresented; you must not claim that | 
|---|
 | 14 |  you wrote the original software. If you use this software in a product, | 
|---|
 | 15 |  an acknowledgment in the product documentation would be appreciated but is | 
|---|
 | 16 |  not required. | 
|---|
 | 17 |   | 
|---|
 | 18 |  2. Altered source versions must be plainly marked as such, and must not be | 
|---|
 | 19 |  misrepresented as being the original software. | 
|---|
 | 20 |   | 
|---|
 | 21 |  3. This notice may not be removed or altered from any source distribution. | 
|---|
 | 22 |  */ | 
|---|
 | 23 | #ifndef MAC_Joystick_H | 
|---|
 | 24 | #define MAC_Joystick_H | 
|---|
 | 25 | #include "OISJoyStick.h" | 
|---|
 | 26 | #include "mac/MacPrereqs.h" | 
|---|
 | 27 | #include "mac/MacHIDManager.h" | 
|---|
 | 28 |  | 
|---|
 | 29 | namespace OIS | 
|---|
 | 30 | { | 
|---|
 | 31 |         struct AxisInfo | 
|---|
 | 32 |         { | 
|---|
 | 33 |                 int min; | 
|---|
 | 34 |                 int max; | 
|---|
 | 35 |                  | 
|---|
 | 36 |                 AxisInfo(int min, int max) | 
|---|
 | 37 |                         : min(min), max(max) {} | 
|---|
 | 38 |         }; | 
|---|
 | 39 |          | 
|---|
 | 40 |         typedef struct cookie_struct  | 
|---|
 | 41 |         {  | 
|---|
 | 42 |                 std::map<IOHIDElementCookie, AxisInfo> axisCookies;                      | 
|---|
 | 43 |                 std::vector<IOHIDElementCookie> buttonCookies;  | 
|---|
 | 44 |         } cookie_struct_t;  | 
|---|
 | 45 |          | 
|---|
 | 46 |         //class HidDeviceInfo | 
|---|
 | 47 |          | 
|---|
 | 48 |         class MacJoyStick : public JoyStick | 
|---|
 | 49 |         { | 
|---|
 | 50 |         public: | 
|---|
 | 51 |                 MacJoyStick(const std::string& vendor, bool buffered, HidInfo* info, InputManager* creator, int devID); | 
|---|
 | 52 |                  | 
|---|
 | 53 |                 virtual ~MacJoyStick(); | 
|---|
 | 54 |                  | 
|---|
 | 55 |                 /** @copydoc Object::setBuffered */ | 
|---|
 | 56 |                 virtual void setBuffered(bool buffered); | 
|---|
 | 57 |                  | 
|---|
 | 58 |                 /** @copydoc Object::capture */ | 
|---|
 | 59 |                 virtual void capture(); | 
|---|
 | 60 |                  | 
|---|
 | 61 |                 /** @copydoc Object::queryInterface */ | 
|---|
 | 62 |                 virtual Interface* queryInterface(Interface::IType type); | 
|---|
 | 63 |                  | 
|---|
 | 64 |                 /** @copydoc Object::_initialize */ | 
|---|
 | 65 |                 virtual void _initialize(); | 
|---|
 | 66 |                  | 
|---|
 | 67 |                 void _enumerateCookies(); | 
|---|
 | 68 |                  | 
|---|
 | 69 |                 IOHIDQueueInterface** _createQueue(unsigned int depth = 8); | 
|---|
 | 70 |         protected: | 
|---|
 | 71 |                 HidInfo* mInfo; | 
|---|
 | 72 |                 cookie_struct_t mCookies; | 
|---|
 | 73 |                 IOHIDQueueInterface** mQueue; | 
|---|
 | 74 |         }; | 
|---|
 | 75 | } | 
|---|
 | 76 | #endif | 
|---|