#ifndef JOYSTICKANDROID_H #define JOYSTICKANDROID_H #include "Joystick.h" #include "Vehicle.h" #include "MultiVehicleManager.h" #include #include #include #include #include class JoystickAndroid : public Joystick, public QtAndroidPrivate::GenericMotionEventListener, public QtAndroidPrivate::KeyEventListener { public: JoystickAndroid(const QString& name, int axisCount, int buttonCount, int id, MultiVehicleManager* multiVehicleManager); ~JoystickAndroid(); static bool init(JoystickManager *manager); static QMap discover(MultiVehicleManager* _multiVehicleManager); private: bool handleKeyEvent(jobject event); bool handleGenericMotionEvent(jobject event); static void setNativeMethods(JoystickManager *manager); virtual bool _open(); virtual void _close(); virtual bool _update(); virtual bool _getButton(int i); virtual int _getAxis(int i); virtual uint8_t _getHat(int hat,int i); int *btnCode; int *axisCode; bool *btnValue; int *axisValue; static int * _androidBtnList; //list of all possible android buttons static int _androidBtnListCount; static int ACTION_DOWN, ACTION_UP; static QMutex m_mutex; int deviceId; }; #endif // JOYSTICKANDROID_H