#ifndef WX_PRECOMP
#include "wx/event.h"
#include "wx/window.h"
+ #include "wx/log.h"
#endif //WX_PRECOMP
+#include "wx/thread.h"
+
#include <linux/joystick.h>
#include <sys/types.h>
#include <sys/stat.h>
jwx_event.SetEventObject(m_catchwin);
if (m_catchwin)
- m_catchwin->AddPendingEvent(jwx_event);
+ m_catchwin->GetEventHandler()->AddPendingEvent(jwx_event);
}
void* wxJoystickThread::Entry()
if ((j_evt.type & JS_EVENT_AXIS) && (j_evt.number < wxJS_MAX_AXES))
{
+ // Ignore invalid axis.
+ if ( j_evt.number >= wxJS_MAX_AXES )
+ {
+ wxLogDebug(wxS("Invalid axis index %d in joystick message."),
+ j_evt.number);
+ continue;
+ }
+
if ( (m_axe[j_evt.number] + m_threshold < j_evt.value)
|| (m_axe[j_evt.number] - m_threshold > j_evt.value) )
{
if (m_device != -1)
ioctl(m_device, JSIOCGBUTTONS, &nb);
- if (nb > wxJS_MAX_BUTTONS)
+ if ((int)nb > wxJS_MAX_BUTTONS)
nb = wxJS_MAX_BUTTONS;
return nb;
if (m_device != -1)
ioctl(m_device, JSIOCGAXES, &nb);
- if (nb > wxJS_MAX_AXES)
+ if ((int)nb > wxJS_MAX_AXES)
nb = wxJS_MAX_AXES;
return nb;