1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        joystick.h
3 // Purpose:     wxJoystick class
4 // Author:      Julian Smart
5 // Modified by:
6 // Created:     01/02/97
7 // RCS-ID:      $Id: joystick.h 35650 2005-09-23 12:56:45Z MR $
8 // Copyright:   (c) Julian Smart
9 // Licence:     wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11 
12 #ifndef _WX_JOYSTICK_H_
13 #define _WX_JOYSTICK_H_
14 
15 #include "wx/event.h"
16 
17 class WXDLLIMPEXP_ADV wxJoystick: public wxObject
18 {
19   DECLARE_DYNAMIC_CLASS(wxJoystick)
20  public:
21   /*
22    * Public interface
23    */
24 
25   wxJoystick(int joystick = wxJOYSTICK1);
26 
27   // Attributes
28   ////////////////////////////////////////////////////////////////////////////
29 
30   wxPoint GetPosition(void) const;
31   int GetZPosition(void) const;
32   int GetButtonState(void) const;
33   int GetPOVPosition(void) const;
34   int GetPOVCTSPosition(void) const;
35   int GetRudderPosition(void) const;
36   int GetUPosition(void) const;
37   int GetVPosition(void) const;
38   int GetMovementThreshold(void) const;
39   void SetMovementThreshold(int threshold) ;
40 
41   // Capabilities
42   ////////////////////////////////////////////////////////////////////////////
43 
44   static int GetNumberJoysticks(void);
45 
46   bool IsOk(void) const; // Checks that the joystick is functioning
47   int GetManufacturerId(void) const ;
48   int GetProductId(void) const ;
49   wxString GetProductName(void) const ;
50   int GetXMin(void) const;
51   int GetYMin(void) const;
52   int GetZMin(void) const;
53   int GetXMax(void) const;
54   int GetYMax(void) const;
55   int GetZMax(void) const;
56   int GetNumberButtons(void) const;
57   int GetNumberAxes(void) const;
58   int GetMaxButtons(void) const;
59   int GetMaxAxes(void) const;
60   int GetPollingMin(void) const;
61   int GetPollingMax(void) const;
62   int GetRudderMin(void) const;
63   int GetRudderMax(void) const;
64   int GetUMin(void) const;
65   int GetUMax(void) const;
66   int GetVMin(void) const;
67   int GetVMax(void) const;
68 
69   bool HasRudder(void) const;
70   bool HasZ(void) const;
71   bool HasU(void) const;
72   bool HasV(void) const;
73   bool HasPOV(void) const;
74   bool HasPOV4Dir(void) const;
75   bool HasPOVCTS(void) const;
76 
77   // Operations
78   ////////////////////////////////////////////////////////////////////////////
79 
80   // pollingFreq = 0 means that movement events are sent when above the threshold.
81   // If pollingFreq > 0, events are received every this many milliseconds.
82   bool SetCapture(wxWindow* win, int pollingFreq = 0);
83   bool ReleaseCapture(void);
84 
85 protected:
86   int       m_joystick;
87 };
88 
89 #endif
90     // _WX_JOYSTICK_H_
91