diff --git a/docs/latex/wx/joystick.tex b/docs/latex/wx/joystick.tex index f9c03f49fb..7520b28603 100644 --- a/docs/latex/wx/joystick.tex +++ b/docs/latex/wx/joystick.tex @@ -33,8 +33,11 @@ Destroys the wxJoystick object. \constfunc{int}{GetButtonState}{\void} -Returns the state of the joystick buttons. A bitlist of wxJOY\_BUTTONn identifiers, -where n is 1, 2, 3 or 4. +Returns the state of the joystick buttons. Every button is mapped to a single +bit in the returned integer, with the first button being mapped to the least +significant bit, and so on. +A bitlist of wxJOY\_BUTTONn identifiers, where n is 1, 2, 3 or 4 +is available for historical reasons. \membersection{wxJoystick::GetManufacturerId}\label{wxjoystickgetmanufacturerid} @@ -101,13 +104,16 @@ Returns the x, y position of the joystick. \constfunc{int}{GetPOVPosition}{\void} -Returns the point-of-view position, expressed in discrete units. +Returns the point-of-view position, expressed in continuous, one-hundredth of a degree units, +but limited to return 0, 9000, 18000 or 27000. +Returns -1 on error. \membersection{wxJoystick::GetPOVCTSPosition}\label{wxjoystickgetpovctsposition} \constfunc{int}{GetPOVCTSPosition}{\void} Returns the point-of-view position, expressed in continuous, one-hundredth of a degree units. +Returns -1 on error. \membersection{wxJoystick::GetRudderMax}\label{wxjoystickgetruddermax} diff --git a/include/wx/msw/joystick.h b/include/wx/msw/joystick.h index 4b15a0245e..18cad55c79 100644 --- a/include/wx/msw/joystick.h +++ b/include/wx/msw/joystick.h @@ -26,7 +26,7 @@ class WXDLLEXPORT wxJoystick: public wxObject * Public interface */ - wxJoystick(int joystick = wxJOYSTICK1) { m_joystick = joystick; }; + wxJoystick(int joystick = wxJOYSTICK1); // Attributes //////////////////////////////////////////////////////////////////////////// @@ -45,8 +45,9 @@ class WXDLLEXPORT wxJoystick: public wxObject // Capabilities //////////////////////////////////////////////////////////////////////////// + static int GetNumberJoysticks(void); + 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 ; diff --git a/src/gtk/joystick.cpp b/src/gtk/joystick.cpp index e53af61ccf..bbc4d826c0 100644 --- a/src/gtk/joystick.cpp +++ b/src/gtk/joystick.cpp @@ -139,12 +139,12 @@ int wxJoystick::GetButtonState(void) const int wxJoystick::GetPOVPosition(void) const { - return 0; + return -1; } int wxJoystick::GetPOVCTSPosition(void) const { - return 0; + return -1; } int wxJoystick::GetRudderPosition(void) const @@ -207,7 +207,11 @@ int wxJoystick::GetProductId(void) const wxString wxJoystick::GetProductName(void) const { - return wxT(""); + wxString dev_name; + // 2002-08-20 johan@linkdata.se + // Return the device name in lieu of a better one + dev_name.Printf( wxT("/dev/js%d"), (m_joystick == wxJOYSTICK1) ? 0 : 1); // FIXME Unicode? + return dev_name; } int wxJoystick::GetXMin(void) const diff --git a/src/gtk1/joystick.cpp b/src/gtk1/joystick.cpp index e53af61ccf..bbc4d826c0 100644 --- a/src/gtk1/joystick.cpp +++ b/src/gtk1/joystick.cpp @@ -139,12 +139,12 @@ int wxJoystick::GetButtonState(void) const int wxJoystick::GetPOVPosition(void) const { - return 0; + return -1; } int wxJoystick::GetPOVCTSPosition(void) const { - return 0; + return -1; } int wxJoystick::GetRudderPosition(void) const @@ -207,7 +207,11 @@ int wxJoystick::GetProductId(void) const wxString wxJoystick::GetProductName(void) const { - return wxT(""); + wxString dev_name; + // 2002-08-20 johan@linkdata.se + // Return the device name in lieu of a better one + dev_name.Printf( wxT("/dev/js%d"), (m_joystick == wxJOYSTICK1) ? 0 : 1); // FIXME Unicode? + return dev_name; } int wxJoystick::GetXMin(void) const diff --git a/src/msw/joystick.cpp b/src/msw/joystick.cpp index 0cd1a0307f..b3c1369e2c 100644 --- a/src/msw/joystick.cpp +++ b/src/msw/joystick.cpp @@ -51,6 +51,37 @@ IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) // Attributes //////////////////////////////////////////////////////////////////////////// +/** + johan@linkdata.se 2002-08-20: + Now returns only valid, functioning + joysticks, counting from the first + available and upwards. +*/ +wxJoystick::wxJoystick(int joystick = wxJOYSTICK1) +{ + JOYINFO joyInfo; + int i, maxsticks; + + maxsticks = joyGetNumDevs(); + for( i=0; i 0) || (res == JOYERR_NOERROR)); -} - -int wxJoystick::GetNumberJoysticks() const -{ - return joyGetNumDevs(); + return (joyGetPos(m_joystick, & joyInfo) == JOYERR_NOERROR); } int wxJoystick::GetManufacturerId() const