ARGoS  3
A parallel, multi-engine simulator for swarm robotics
qtopengl_joystick.h
Go to the documentation of this file.
1 
10 #ifndef QT_OPENGL_JOYSTICK_H
11 #define QT_OPENGL_JOYSTICK_H
12 
13 #include <QObject>
14 #include <QMap>
15 #include <QTime>
16 #include <QTimer>
17 #include <QStringList>
18 #include <SDL/SDL.h>
19 
20 #define SDL_JOYSTICK_DEFAULT_EVENT_TIMEOUT 25
21 #define SDL_JOYSTICK_DEFAULT_AUTOREPEAT_DELAY 250
22 
23 namespace argos {
24 
25  class CQTOpenGLJoystick : public QObject
26  {
27  Q_OBJECT
28 
29  public:
30  QStringList joystickNames;
31  SDL_Joystick *joystick;
32  int numAxes;
34  int numHats;
38  bool autoRepeat;
39  QTimer joystickTimer;
40  QMap<int, int> deadzones;
41  QMap<int, int> sensitivities;
42 
43  CQTOpenGLJoystick(QObject *parent = 0,
44  int joystickEventTimeout = SDL_JOYSTICK_DEFAULT_EVENT_TIMEOUT,
45  bool doAutoRepeat = TRUE,
48  void open(int);
49  void close();
50  inline bool isOpen() const { return joystick != NULL; }
51  int getAxisValue(int);
52  inline bool connected() const { return !joystickNames.isEmpty(); }
53 
54  private:
55  QMap<int, Sint16> axes;
56  QMap<int, Uint8> buttons;
57  QMap<int, Uint8> hats;
58  QMap<int, QTime> axisRepeatTimers;
59  QMap<int, QTime> buttonRepeatTimers;
60  QMap<int, QTime> hatRepeatTimers;
61 
62  signals:
63  void axisValueChanged(int axis, int value);
64  void buttonValueChanged(int button, bool value);
65  void hatValueChanged(int hat, int value);
66  void trackballValueChanged(int trackball, int deltaX, int deltaY);
67 
68  public slots:
69  void processEvents();
70  };
71 
72 }
73 
74 #endif
argos::CQTOpenGLJoystick::eventTimeout
int eventTimeout
Definition: qtopengl_joystick.h:36
argos::CQTOpenGLJoystick::sensitivities
QMap< int, int > sensitivities
Definition: qtopengl_joystick.h:41
argos::CQTOpenGLJoystick::numAxes
int numAxes
Definition: qtopengl_joystick.h:32
argos::CQTOpenGLJoystick
Definition: qtopengl_joystick.h:25
argos
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12
argos::CQTOpenGLJoystick::numTrackballs
int numTrackballs
Definition: qtopengl_joystick.h:35
argos::CQTOpenGLJoystick::isOpen
bool isOpen() const
Definition: qtopengl_joystick.h:50
argos::CQTOpenGLJoystick::open
void open(int)
Definition: qtopengl_joystick.cpp:54
SDL_JOYSTICK_DEFAULT_EVENT_TIMEOUT
#define SDL_JOYSTICK_DEFAULT_EVENT_TIMEOUT
Definition: qtopengl_joystick.h:20
argos::CQTOpenGLJoystick::getAxisValue
int getAxisValue(int)
Definition: qtopengl_joystick.cpp:153
argos::CQTOpenGLJoystick::axisValueChanged
void axisValueChanged(int axis, int value)
argos::CQTOpenGLJoystick::autoRepeat
bool autoRepeat
Definition: qtopengl_joystick.h:38
SDL_JOYSTICK_DEFAULT_AUTOREPEAT_DELAY
#define SDL_JOYSTICK_DEFAULT_AUTOREPEAT_DELAY
Definition: qtopengl_joystick.h:21
argos::CQTOpenGLJoystick::numHats
int numHats
Definition: qtopengl_joystick.h:34
argos::CQTOpenGLJoystick::hatValueChanged
void hatValueChanged(int hat, int value)
argos::CQTOpenGLJoystick::~CQTOpenGLJoystick
~CQTOpenGLJoystick()
Definition: qtopengl_joystick.cpp:43
argos::CQTOpenGLJoystick::processEvents
void processEvents()
Definition: qtopengl_joystick.cpp:86
argos::CQTOpenGLJoystick::joystickTimer
QTimer joystickTimer
Definition: qtopengl_joystick.h:39
argos::CQTOpenGLJoystick::buttonValueChanged
void buttonValueChanged(int button, bool value)
argos::CQTOpenGLJoystick::numButtons
int numButtons
Definition: qtopengl_joystick.h:33
argos::CQTOpenGLJoystick::joystick
SDL_Joystick * joystick
Definition: qtopengl_joystick.h:31
argos::CQTOpenGLJoystick::autoRepeatDelay
int autoRepeatDelay
Definition: qtopengl_joystick.h:37
argos::CQTOpenGLJoystick::connected
bool connected() const
Definition: qtopengl_joystick.h:52
argos::CQTOpenGLJoystick::CQTOpenGLJoystick
CQTOpenGLJoystick(QObject *parent=0, int joystickEventTimeout=SDL_JOYSTICK_DEFAULT_EVENT_TIMEOUT, bool doAutoRepeat=TRUE, int autoRepeatDelay=SDL_JOYSTICK_DEFAULT_AUTOREPEAT_DELAY)
Definition: qtopengl_joystick.cpp:19
argos::CQTOpenGLJoystick::joystickNames
QStringList joystickNames
Definition: qtopengl_joystick.h:30
argos::CQTOpenGLJoystick::close
void close()
Definition: qtopengl_joystick.cpp:74
argos::CQTOpenGLJoystick::deadzones
QMap< int, int > deadzones
Definition: qtopengl_joystick.h:40
argos::CQTOpenGLJoystick::trackballValueChanged
void trackballValueChanged(int trackball, int deltaX, int deltaY)