You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.0 KiB
C
77 lines
2.0 KiB
C
2 years ago
|
/*
|
||
|
The zlib/libpng License
|
||
|
|
||
|
Copyright (c) 2005-2007 Phillip Castaneda (pjcast -- www.wreckedgames.com)
|
||
|
|
||
|
This software is provided 'as-is', without any express or implied warranty. In no event will
|
||
|
the authors be held liable for any damages arising from the use of this software.
|
||
|
|
||
|
Permission is granted to anyone to use this software for any purpose, including commercial
|
||
|
applications, and to alter it and redistribute it freely, subject to the following
|
||
|
restrictions:
|
||
|
|
||
|
1. The origin of this software must not be misrepresented; you must not claim that
|
||
|
you wrote the original software. If you use this software in a product,
|
||
|
an acknowledgment in the product documentation would be appreciated but is
|
||
|
not required.
|
||
|
|
||
|
2. Altered source versions must be plainly marked as such, and must not be
|
||
|
misrepresented as being the original software.
|
||
|
|
||
|
3. This notice may not be removed or altered from any source distribution.
|
||
|
*/
|
||
|
#ifndef MAC_Joystick_H
|
||
|
#define MAC_Joystick_H
|
||
|
#include "OISJoyStick.h"
|
||
|
#include "mac/MacPrereqs.h"
|
||
|
#include "mac/MacHIDManager.h"
|
||
|
|
||
|
namespace OIS
|
||
|
{
|
||
|
struct AxisInfo
|
||
|
{
|
||
|
int min;
|
||
|
int max;
|
||
|
|
||
|
AxisInfo(int min, int max)
|
||
|
: min(min), max(max) {}
|
||
|
};
|
||
|
|
||
|
typedef struct cookie_struct
|
||
|
{
|
||
|
std::map<IOHIDElementCookie, AxisInfo> axisCookies;
|
||
|
std::vector<IOHIDElementCookie> buttonCookies;
|
||
|
} cookie_struct_t;
|
||
|
|
||
|
//class HidDeviceInfo
|
||
|
|
||
|
class MacJoyStick : public JoyStick
|
||
|
{
|
||
|
public:
|
||
|
MacJoyStick(const std::string& vendor, bool buffered, HidInfo* info, InputManager* creator, int devID);
|
||
|
|
||
|
virtual ~MacJoyStick();
|
||
|
|
||
|
/** @copydoc Object::setBuffered */
|
||
|
virtual void setBuffered(bool buffered);
|
||
|
|
||
|
/** @copydoc Object::capture */
|
||
|
virtual void capture();
|
||
|
|
||
|
/** @copydoc Object::queryInterface */
|
||
|
virtual Interface* queryInterface(Interface::IType type);
|
||
|
|
||
|
/** @copydoc Object::_initialize */
|
||
|
virtual void _initialize();
|
||
|
|
||
|
void _enumerateCookies();
|
||
|
|
||
|
IOHIDQueueInterface** _createQueue(unsigned int depth = 8);
|
||
|
protected:
|
||
|
HidInfo* mInfo;
|
||
|
cookie_struct_t mCookies;
|
||
|
IOHIDQueueInterface** mQueue;
|
||
|
};
|
||
|
}
|
||
|
#endif
|