Orxonox  0.0.5 Codename: Arcturus
OISPrereqs.h
Go to the documentation of this file.
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 OIS_Prereqs_H
24 #define OIS_Prereqs_H
25 //----------------------------------------------------------------------------//
26 // This Header File contains: forward declared classes
27 // * Forward Declarations of all public API classes
28 // * Several typedef's used around the library
29 // * Base class component types
30 // * Preprocessor definitons
31 //----------------------------------------------------------------------------//
32 
33 //-------------- Common STL Containers ---------------------------------------//
34 #include <vector>
35 #include <string>
36 #include <map>
37 #include "OISConfig.h"
38 
39 // Default is blank for most OS's
40 #define _OISExport
41 
42 //-------------- Determine Compiler ---------------------------------
43 #if defined( _MSC_VER )
44 # define OIS_MSVC_COMPILER
45 #elif defined( __GNUC__ )
46 # if defined( __WIN32__ ) || defined( _WIN32 )
47 # define OIS_MINGW_COMPILER
48 # else
49 # define OIS_GCC_COMPILER
50 # endif
51 #elif defined( __BORLANDC__ )
52 # define OIS_BORLAND_COMPILER
53 #else
54 # error No Recognized Compiler!
55 #endif
56 
57 // --------------- Determine Operating System Platform ---------------
58 #if defined( __WIN32__ ) || defined( _WIN32 ) // Windows 2000, XP, ETC
59 # if defined ( _XBOX )
60 # define OIS_XBOX_PLATFORM
61 # else
62 # define OIS_WIN32_PLATFORM
63 # if !defined( OIS_STATIC_LIB )
64 # undef _OISExport
65  //Ignorable Dll interface warning...
66 # if !defined(OIS_MINGW_COMPILER)
67 # pragma warning (disable : 4251)
68 # endif
69 # if defined( OIS_NONCLIENT_BUILD )
70 # define _OISExport __declspec( dllexport )
71 # else
72 # if defined(OIS_MINGW_COMPILER)
73 # define _OISExport
74 # else
75 # define _OISExport __declspec( dllimport )
76 # endif
77 # endif
78 # endif
79 # endif
80 #elif defined( __APPLE_CC__ ) // Apple OS X
81  // Device Simulator
82 # if __IPHONE_OS_VERSION_MIN_REQUIRED >= 20201 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 20000
83 //# if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30000 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 30000
84 # define OIS_IPHONE_PLATFORM
85 # else
86 # define OIS_APPLE_PLATFORM
87 # endif
88 # undef _OISExport
89 # define _OISExport __attribute__((visibility("default")))
90 #else //Probably Linux
91 # define OIS_LINUX_PLATFORM
92 #endif
93 
94 //Is Processor 32 or 64 bits...
95 #if defined(__x86_64__)
96 # define OIS_ARCH_64
97 #else
98 # define OIS_ARCH_32
99 #endif
100 
101 //-------------- Common Classes, Enums, and Typdef's -------------------------//
102 #define OIS_VERSION_MAJOR 1
103 #define OIS_VERSION_MINOR 3
104 #define OIS_VERSION_PATCH 0
105 #define OIS_VERSION_NAME "1.3.0"
106 
107 #define OIS_VERSION ((OIS_VERSION_MAJOR << 16) | (OIS_VERSION_MINOR << 8) | OIS_VERSION_PATCH)
108 
109 namespace OIS
110 {
111  //Forward Declarations
112  class InputManager;
113  class FactoryCreator;
114  class Object;
115  class Keyboard;
116  class Mouse;
117  class JoyStick;
118  class MultiTouch;
119  class KeyListener;
120  class MouseListener;
121  class MultiTouchListener;
122  class JoyStickListener;
123  class Interface;
124  class ForceFeedback;
125  class Effect;
126  class Exception;
127 
129  typedef std::multimap<std::string, std::string> ParamList;
130 
132  typedef std::vector<FactoryCreator*> FactoryList;
133 
135  typedef std::map<Object*, FactoryCreator*> FactoryCreatedObject;
136 
138  enum Type
139  {
142  OISMouse = 2,
146  };
147 
149  typedef std::multimap<Type, std::string> DeviceList;
150 
151  //-------- Shared common components ------------------------//
152 
155  {
157  OIS_Button = 1, //ie. Key, mouse button, joy button, etc
158  OIS_Axis = 2, //ie. A joystick or mouse axis
159  OIS_Slider = 3, //
160  OIS_POV = 4, //ie. Arrow direction keys
161  OIS_Vector3 = 5 //ie. WiiMote orientation
162  };
163 
166  {
167  public:
168  Component() : cType(OIS_Unknown) {};
169  Component(ComponentType type) : cType(type) {};
172  };
173 
175  class _OISExport Button : public Component
176  {
177  public:
178  Button() : Component(OIS_Button), pushed(false) {}
179  Button(bool bPushed) : Component(OIS_Button), pushed(bPushed) {}
181  bool pushed;
182  };
183 
185  class _OISExport Axis : public Component
186  {
187  public:
188  Axis() : Component(OIS_Axis), abs(0), rel(0), absOnly(false) {};
189 
191  int abs, rel;
192 
194  bool absOnly;
195 
197  void clear()
198  {
199  abs = rel = 0;
200  }
201  };
202 
204  class _OISExport Vector3 : public Component
205  {
206  public:
207  Vector3() {}
208  Vector3(float _x, float _y, float _z) : Component(OIS_Vector3), x(_x), y(_y), z(_z) {};
209 
211  float x;
212 
214  float y;
215 
217  float z;
218 
219  void clear()
220  {
221  x = y = z = 0.0f;
222  }
223  };
224 }
225 
226 #endif //end if prereq header defined
Definition: OISPrereqs.h:160
Button()
Definition: OISPrereqs.h:178
#define _OISExport
Definition: OISPrereqs.h:40
A 3D Vector component (perhaps an orientation, as in the WiiMote)
Definition: OISPrereqs.h:204
Definition: OISPrereqs.h:142
ComponentType
Base type for all device components (button, axis, etc)
Definition: OISPrereqs.h:154
Definition: OISPrereqs.h:157
Definition: OISPrereqs.h:144
Definition: OISPrereqs.h:156
Definition: OISPrereqs.h:145
void clear()
Definition: OISPrereqs.h:219
Definition: OISException.h:51
Definition: OISPrereqs.h:159
Button(bool bPushed)
Definition: OISPrereqs.h:179
Base of all device components (button, axis, etc)
Definition: OISPrereqs.h:165
bool absOnly
Indicates if this Axis only supports Absoulte (ie JoyStick)
Definition: OISPrereqs.h:194
int rel
Definition: OISPrereqs.h:188
std::map< Object *, FactoryCreator * > FactoryCreatedObject
Map of FactoryCreator created Objects.
Definition: OISPrereqs.h:135
Definition: InputPrereqs.h:445
bool pushed
true if pushed, false otherwise
Definition: OISPrereqs.h:181
Definition: OISPrereqs.h:161
float x
X component of vector.
Definition: OISPrereqs.h:208
std::vector< FactoryCreator * > FactoryList
List of FactoryCreator&#39;s.
Definition: OISPrereqs.h:132
float z
Z component of vector.
Definition: OISPrereqs.h:217
Type
Each Input class has a General Type variable, a form of RTTI.
Definition: OISPrereqs.h:138
Definition: OISPrereqs.h:141
Definition: OISPrereqs.h:143
Definition: OISPrereqs.h:140
Axis component.
Definition: OISPrereqs.h:185
std::multimap< Type, std::string > DeviceList
Map of device objects connected and their respective vendors.
Definition: OISPrereqs.h:149
Definition: EventHelpers.h:31
Definition: OISPrereqs.h:158
Vector3()
Definition: OISPrereqs.h:207
float y
Y component of vector.
Definition: OISPrereqs.h:214
Definition: InputPrereqs.h:446
void clear()
Used internally by OIS.
Definition: OISPrereqs.h:197
Component()
Definition: OISPrereqs.h:168
ComponentType cType
Indicates what type of coponent this is.
Definition: OISPrereqs.h:169
std::multimap< std::string, std::string > ParamList
Way to send OS nuetral parameters.. ie OS Window handles, modes, flags.
Definition: OISPrereqs.h:126
Button can be a keyboard key, mouse button, etc.
Definition: OISPrereqs.h:175