131f9d9b19
Proposed fixes for the wxWindows joystick code under MSW. Some of these would be valid for other platforms, too. Events for buttons are named wrong, docs say different. Docs say EVT_JOY_BUTTON_DOWN and EVT_JOY_BUTTON_UP, but the code says EVT_JOY_DOWN and EVT_JOY_UP. I suggest changing the code to match the docs. wxJoystick::GetNumberJoysticks() should be a static member function. Having to create a joystick object to see if there are joysticks is silly. Docs for GetNumberJoysticks() must be changed; it returns the number of potentially connected joysticks, not the number of actually connected. Alternatively, GetNumberJoysticks() and others must be rewritten to conform with documentation, including remapping of wxWindows sequential joystick ID's to match MSW non-sequential joystick ID's. dwSize is not set when joyGetPosEx() is called. SEVERE ERROR. Error return value from functions should not be a legal return, for instance, wxJoystick::GetPOVCTSPosition() returns 0 for error, but this is a legal return value. GetButtonState() supports only four (out of 32) buttons. Also, should return as bitmap (LSB = button 1). (Win32 does this, although not documented as such). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
95 lines
2.5 KiB
C++
95 lines
2.5 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: joystick.h
|
|
// Purpose: wxJoystick class
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 01/02/97
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_JOYSTICK_H_
|
|
#define _WX_JOYSTICK_H_
|
|
|
|
#ifdef __GNUG__
|
|
#pragma interface "joystick.h"
|
|
#endif
|
|
|
|
#include "wx/event.h"
|
|
|
|
class WXDLLEXPORT wxJoystick: public wxObject
|
|
{
|
|
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
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
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;
|
|
};
|
|
|
|
#endif
|
|
// _WX_JOYSTICK_H_
|