]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/joystick.cpp
Rationalised OnIdle
[wxWidgets.git] / src / gtk1 / joystick.cpp
index e783f1276df15bfcca2abebad01f3ace5d523401..710841201ad5f68b084d0cc5614939fb26879240 100644 (file)
@@ -6,13 +6,19 @@
 // Created:     05/23/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Guilhem Lavaux
 // Created:     05/23/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Guilhem Lavaux
-// Licence:    wxWindows license
+// Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
 #pragma implementation "joystick.h"
 #endif
 
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
 #pragma implementation "joystick.h"
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_JOYSTICK
+
+#include "wx/joystick.h"
+
 #include <linux/joystick.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <linux/joystick.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -20,9 +26,9 @@
 #include <sys/ioctl.h>
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/ioctl.h>
 #include <fcntl.h>
 #include <unistd.h>
+
 #include "wx/event.h"
 #include "wx/window.h"
 #include "wx/event.h"
 #include "wx/window.h"
-#include "wx/gtk/joystick.h"
 
 #define JOYSTICK_AXE_MAX 32767
 #define JOYSTICK_AXE_MIN -32767
 
 #define JOYSTICK_AXE_MAX 32767
 #define JOYSTICK_AXE_MIN -32767
@@ -33,9 +39,9 @@ wxJoystick::wxJoystick(int joystick)
 {
   wxString dev_name;
   // Assume it's the same device name on all Linux systems ...
 {
   wxString dev_name;
   // Assume it's the same device name on all Linux systems ...
-  dev_name.Printf("/dev/js%d", (joystick == wxJOYSTICK1) ? 0 : 1);
+  dev_name.Printf( wxT("/dev/js%d"), (joystick == wxJOYSTICK1) ? 0 : 1);  // FIXME Unicode?
 
 
-  m_joystick = open(dev_name, O_RDWR);
+  m_joystick = open(dev_name.fn_str(), O_RDWR);
   m_lastposition = wxPoint(-1, -1);
   for (int i=0;i<15;i++)
     m_axe[i] = 0;
   m_lastposition = wxPoint(-1, -1);
   for (int i=0;i<15;i++)
     m_axe[i] = 0;
@@ -54,7 +60,6 @@ void *wxJoystick::Entry(void)
   struct timeval time_out = {0, 0};
 
   FD_ZERO(&read_fds);
   struct timeval time_out = {0, 0};
 
   FD_ZERO(&read_fds);
-  DeferDestroy(TRUE);
   while (1) {
     TestDestroy();
 
   while (1) {
     TestDestroy();
 
@@ -134,12 +139,12 @@ int wxJoystick::GetButtonState(void) const
 
 int wxJoystick::GetPOVPosition(void) const
 {
 
 int wxJoystick::GetPOVPosition(void) const
 {
-  return 0;
+  return -1;
 }
 
 int wxJoystick::GetPOVCTSPosition(void) const
 {
 }
 
 int wxJoystick::GetPOVCTSPosition(void) const
 {
-  return 0;
+  return -1;
 }
 
 int wxJoystick::GetRudderPosition(void) const
 }
 
 int wxJoystick::GetRudderPosition(void) const
@@ -181,8 +186,8 @@ int wxJoystick::GetNumberJoysticks(void) const
   int fd, j;
 
   for (j=0;j<2;j++) {
   int fd, j;
 
   for (j=0;j<2;j++) {
-    dev_name.Printf("/dev/js%d", j);
-    fd = open(dev_name, O_RDONLY);
+    dev_name.Printf(wxT("/dev/js%d"), j);
+    fd = open(dev_name.fn_str(), O_RDONLY);
     if (fd == -1)
       return j;
     close(fd);
     if (fd == -1)
       return j;
     close(fd);
@@ -202,7 +207,11 @@ int wxJoystick::GetProductId(void) const
 
 wxString wxJoystick::GetProductName(void) const
 {
 
 wxString wxJoystick::GetProductName(void) const
 {
-  return "";
+  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
 }
 
 int wxJoystick::GetXMin(void) const
@@ -342,7 +351,7 @@ bool wxJoystick::HasPOVCTS(void) const
 // Operations
 ////////////////////////////////////////////////////////////////////////////
 
 // Operations
 ////////////////////////////////////////////////////////////////////////////
 
-bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq = 0)
+bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq)
 {
   m_catchwin = win;
   m_polling = pollingFreq;
 {
   m_catchwin = win;
   m_polling = pollingFreq;
@@ -355,4 +364,5 @@ bool wxJoystick::ReleaseCapture(void)
   m_polling = 0;
   return TRUE;
 }
   m_polling = 0;
   return TRUE;
 }
+#endif  // wxUSE_JOYSTICK