Use polling thread instead of relying on MM_JOYXXX events to allow receiving events from all the supported buttons. See https://github.com/wxWidgets/wxWidgets/pull/942 Closes #1142.
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/msw/joystick.h
 | 
						|
// Purpose:     wxJoystick class
 | 
						|
// Author:      Julian Smart
 | 
						|
// Modified by:
 | 
						|
// Created:     01/02/97
 | 
						|
// Copyright:   (c) Julian Smart
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_JOYSTICK_H_
 | 
						|
#define _WX_JOYSTICK_H_
 | 
						|
 | 
						|
#include "wx/event.h"
 | 
						|
 | 
						|
class wxJoystickThread;
 | 
						|
 | 
						|
class WXDLLIMPEXP_ADV wxJoystick: public wxObject
 | 
						|
{
 | 
						|
  wxDECLARE_DYNAMIC_CLASS(wxJoystick);
 | 
						|
public:
 | 
						|
  /*
 | 
						|
   * Public interface
 | 
						|
   */
 | 
						|
 | 
						|
  wxJoystick(int joystick = wxJOYSTICK1);
 | 
						|
  virtual ~wxJoystick();
 | 
						|
 | 
						|
  // Attributes
 | 
						|
  ////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
  wxPoint GetPosition(void) const;
 | 
						|
  int GetPosition(unsigned axis) const;
 | 
						|
  bool GetButtonState(unsigned button) 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
 | 
						|
  ////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
  static int GetNumberJoysticks(void);
 | 
						|
 | 
						|
  bool IsOk(void) const; // Checks that the joystick is functioning
 | 
						|
  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);
 | 
						|
 | 
						|
protected:
 | 
						|
  int                   m_joystick;
 | 
						|
  wxJoystickThread*     m_thread;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 | 
						|
    // _WX_JOYSTICK_H_
 |