]> git.saurik.com Git - wxWidgets.git/blob - interface/wx/joystick.h
Make storing non-trivial data in wxThreadSpecificInfo possible.
[wxWidgets.git] / interface / wx / joystick.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: joystick.h
3 // Purpose: interface of wxJoystick
4 // Author: wxWidgets team
5 // Licence: wxWindows licence
6 /////////////////////////////////////////////////////////////////////////////
7
8 /**
9 @class wxJoystick
10
11 wxJoystick allows an application to control one or more joysticks.
12
13 @library{wxadv}
14 @category{misc}
15
16 @see wxJoystickEvent
17 */
18 class wxJoystick : public wxObject
19 {
20 public:
21 /**
22 Constructor.
23
24 @a joystick may be one of wxJOYSTICK1, wxJOYSTICK2, indicating the joystick
25 controller of interest.
26 */
27 wxJoystick(int joystick = wxJOYSTICK1);
28
29 /**
30 Destroys the wxJoystick object.
31 */
32 virtual ~wxJoystick();
33
34 /**
35 Returns the state of the joystick buttons.
36 Every button is mapped to a single bit in the returned integer, with the
37 first button being mapped to the least significant bit, and so on.
38
39 A bitlist of wxJOY_BUTTONn identifiers, where n is 1, 2, 3 or 4 is available
40 for historical reasons.
41 */
42 int GetButtonState() const;
43
44 /**
45 Returns the state of the specified joystick button.
46
47 @param id
48 The button id to report, from 0 to GetNumberButtons() - 1
49 */
50 bool GetButtonState(unsigned int id) const;
51
52 /**
53 Returns the manufacturer id.
54 */
55 int GetManufacturerId() const;
56
57 /**
58 Returns the movement threshold, the number of steps outside which the joystick
59 is deemed to have
60 moved.
61 */
62 int GetMovementThreshold() const;
63
64 /**
65 Returns the number of axes for this joystick.
66 */
67 int GetNumberAxes() const;
68
69 /**
70 Returns the number of buttons for this joystick.
71 */
72 int GetNumberButtons() const;
73
74 /**
75 Returns the number of joysticks currently attached to the computer.
76 */
77 static int GetNumberJoysticks();
78
79 /**
80 Returns the point-of-view position, expressed in continuous, one-hundredth of a
81 degree units.
82
83 Returns -1 on error.
84 */
85 int GetPOVCTSPosition() const;
86
87 /**
88 Returns the point-of-view position, expressed in continuous, one-hundredth of a
89 degree units, but limited to return 0, 9000, 18000 or 27000.
90
91 Returns -1 on error.
92 */
93 int GetPOVPosition() const;
94
95 /**
96 Returns the maximum polling frequency.
97 */
98 int GetPollingMax() const;
99
100 /**
101 Returns the minimum polling frequency.
102 */
103 int GetPollingMin() const;
104
105 /**
106 Returns the x, y position of the joystick.
107 */
108 wxPoint GetPosition() const;
109
110 /**
111 Returns the position of the specified joystick axis.
112
113 @param axis
114 The joystick axis to report, from 0 to GetNumberAxes() - 1.
115 */
116 int GetPosition(unsigned int axis) const;
117
118 /**
119 Returns the product id for the joystick.
120 */
121 int GetProductId() const;
122
123 /**
124 Returns the product name for the joystick.
125 */
126 wxString GetProductName() const;
127
128 /**
129 Returns the maximum rudder position.
130 */
131 int GetRudderMax() const;
132
133 /**
134 Returns the minimum rudder position.
135 */
136 int GetRudderMin() const;
137
138 /**
139 Returns the rudder position.
140 */
141 int GetRudderPosition() const;
142
143 /**
144 Returns the maximum U position.
145 */
146 int GetUMax() const;
147
148 /**
149 Returns the minimum U position.
150 */
151 int GetUMin() const;
152
153 /**
154 Gets the position of the fifth axis of the joystick, if it exists.
155 */
156 int GetUPosition() const;
157
158 /**
159 Returns the maximum V position.
160 */
161 int GetVMax() const;
162
163 /**
164 Returns the minimum V position.
165 */
166 int GetVMin() const;
167
168 /**
169 Gets the position of the sixth axis of the joystick, if it exists.
170 */
171 int GetVPosition() const;
172
173 /**
174 Returns the maximum x position.
175 */
176 int GetXMax() const;
177
178 /**
179 Returns the minimum x position.
180 */
181 int GetXMin() const;
182
183 /**
184 Returns the maximum y position.
185 */
186 int GetYMax() const;
187
188 /**
189 Returns the minimum y position.
190 */
191 int GetYMin() const;
192
193 /**
194 Returns the maximum z position.
195 */
196 int GetZMax() const;
197
198 /**
199 Returns the minimum z position.
200 */
201 int GetZMin() const;
202
203 /**
204 Returns the z position of the joystick.
205 */
206 int GetZPosition() const;
207
208 /**
209 Returns @true if the joystick has a point of view control.
210 */
211 bool HasPOV() const;
212
213 /**
214 Returns @true if the joystick point-of-view supports discrete values
215 (centered, forward, backward, left, and right).
216 */
217 bool HasPOV4Dir() const;
218
219 /**
220 Returns @true if the joystick point-of-view supports continuous degree bearings.
221 */
222 bool HasPOVCTS() const;
223
224 /**
225 Returns @true if there is a rudder attached to the computer.
226 */
227 bool HasRudder() const;
228
229 /**
230 Returns @true if the joystick has a U axis.
231 */
232 bool HasU() const;
233
234 /**
235 Returns @true if the joystick has a V axis.
236 */
237 bool HasV() const;
238
239 /**
240 Returns @true if the joystick has a Z axis.
241 */
242 bool HasZ() const;
243
244 /**
245 Returns @true if the joystick is functioning.
246 */
247 bool IsOk() const;
248
249 /**
250 Releases the capture set by @b SetCapture.
251
252 @return @true if the capture release succeeded.
253
254 @see SetCapture(), wxJoystickEvent
255 */
256 bool ReleaseCapture();
257
258 /**
259 Sets the capture to direct joystick events to @a win.
260
261 @param win
262 The window that will receive joystick events.
263 @param pollingFreq
264 If zero, movement events are sent when above the threshold.
265 If greater than zero, events are received every @a pollingFreq milliseconds.
266
267 @return @true if the capture succeeded.
268
269 @see ReleaseCapture(), wxJoystickEvent
270 */
271 bool SetCapture(wxWindow* win, int pollingFreq = 0);
272
273 /**
274 Sets the movement threshold, the number of steps outside which the joystick is
275 deemed to have moved.
276 */
277 void SetMovementThreshold(int threshold);
278 };
279