/////////////////////////////////////////////////////////////////////////////
-// Name: joystick.h
+// Name: wx/unix/joystick.h
// Purpose: wxJoystick class
// Author: Guilhem Lavaux
// Modified by:
// Created: 01/02/97
-// RCS-ID: $Id$
-// Copyright:
-// Licence: wxWindows licence
+// Copyright: (c) Guilhem Lavaux
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __JOYSTICKH__
-#define __JOYSTICKH__
-
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "joystick.h"
-#endif
+#ifndef _WX_UNIX_JOYSTICK_H_
+#define _WX_UNIX_JOYSTICK_H_
#include "wx/event.h"
-#include "wx/thread.h"
-
-class WXDLLEXPORT wxJoystick: public wxObject, public wxThread
-{
- DECLARE_DYNAMIC_CLASS(wxJoystick)
- public:
- /*
- * Public interface
- */
-
- wxJoystick(int joystick = wxJOYSTICK1);
-
- // Attributes
- ////////////////////////////////////////////////////////////////////////////
-
- wxPoint GetPosition(void) const;
- int GetZPosition(void) const;
- int GetButtonState(void) const;
- int GetPOVPosition(void) const;
- int GetPOVCTSPosition(void) const;
- int GetRudderPosition(void) const;
- int GetUPosition(void) const;
- int GetVPosition(void) const;
- int GetMovementThreshold(void) const;
- void SetMovementThreshold(int threshold) ;
- // Capabilities
- ////////////////////////////////////////////////////////////////////////////
+class WXDLLIMPEXP_FWD_CORE wxJoystickThread;
- bool IsOk(void) const; // Checks that the joystick is functioning
- int GetNumberJoysticks(void) const ;
- int GetManufacturerId(void) const ;
- int GetProductId(void) const ;
- wxString GetProductName(void) const ;
- int GetXMin(void) const;
- int GetYMin(void) const;
- int GetZMin(void) const;
- int GetXMax(void) const;
- int GetYMax(void) const;
- int GetZMax(void) const;
- int GetNumberButtons(void) const;
- int GetNumberAxes(void) const;
- int GetMaxButtons(void) const;
- int GetMaxAxes(void) const;
- int GetPollingMin(void) const;
- int GetPollingMax(void) const;
- int GetRudderMin(void) const;
- int GetRudderMax(void) const;
- int GetUMin(void) const;
- int GetUMax(void) const;
- int GetVMin(void) const;
- int GetVMax(void) const;
-
- bool HasRudder(void) const;
- bool HasZ(void) const;
- bool HasU(void) const;
- bool HasV(void) const;
- bool HasPOV(void) const;
- bool HasPOV4Dir(void) const;
- bool HasPOVCTS(void) const;
-
- // Operations
- ////////////////////////////////////////////////////////////////////////////
-
- // pollingFreq = 0 means that movement events are sent when above the threshold.
- // If pollingFreq > 0, events are received every this many milliseconds.
- bool SetCapture(wxWindow* win, int pollingFreq = 0);
- bool ReleaseCapture(void);
+class WXDLLIMPEXP_ADV wxJoystick: public wxObject
+{
+ DECLARE_DYNAMIC_CLASS(wxJoystick)
+ public:
+ /*
+ * Public interface
+ */
+
+ wxJoystick(int joystick = wxJOYSTICK1);
+ virtual ~wxJoystick();
+
+ // Attributes
+ ////////////////////////////////////////////////////////////////////////////
+
+ wxPoint GetPosition() const;
+ int GetPosition(unsigned axis) const;
+ bool GetButtonState(unsigned button) const;
+ int GetZPosition() const;
+ int GetButtonState() const;
+ int GetPOVPosition() const;
+ int GetPOVCTSPosition() const;
+ int GetRudderPosition() const;
+ int GetUPosition() const;
+ int GetVPosition() const;
+ int GetMovementThreshold() const;
+ void SetMovementThreshold(int threshold) ;
+
+ // Capabilities
+ ////////////////////////////////////////////////////////////////////////////
+
+ bool IsOk() const; // Checks that the joystick is functioning
+ static int GetNumberJoysticks() ;
+ int GetManufacturerId() const ;
+ int GetProductId() const ;
+ wxString GetProductName() const ;
+ int GetXMin() const;
+ int GetYMin() const;
+ int GetZMin() const;
+ int GetXMax() const;
+ int GetYMax() const;
+ int GetZMax() const;
+ int GetNumberButtons() const;
+ int GetNumberAxes() const;
+ int GetMaxButtons() const;
+ int GetMaxAxes() const;
+ int GetPollingMin() const;
+ int GetPollingMax() const;
+ int GetRudderMin() const;
+ int GetRudderMax() const;
+ int GetUMin() const;
+ int GetUMax() const;
+ int GetVMin() const;
+ int GetVMax() const;
+
+ bool HasRudder() const;
+ bool HasZ() const;
+ bool HasU() const;
+ bool HasV() const;
+ bool HasPOV() const;
+ bool HasPOV4Dir() const;
+ bool HasPOVCTS() const;
+
+ // Operations
+ ////////////////////////////////////////////////////////////////////////////
+
+ // pollingFreq = 0 means that movement events are sent when above the threshold.
+ // If pollingFreq > 0, events are received every this many milliseconds.
+ bool SetCapture(wxWindow* win, int pollingFreq = 0);
+ bool ReleaseCapture();
protected:
- int m_joystick;
- wxPoint m_lastposition;
- int m_axe[15];
- int m_buttons;
- wxWindow *m_catchwin;
- int m_polling;
-
- void *Entry(void);
+ int m_device;
+ int m_joystick;
+ wxJoystickThread* m_thread;
};
-#endif
- // __JOYSTICKH__
-
+#endif // _WX_UNIX_JOYSTICK_H_