11 #include "addons/kodi-dev-kit/include/kodi/addon-instance/peripheral/PeripheralUtils.h" 12 #include "threads/CriticalSection.h" 19 class CJNIViewInputDevice;
30 int GetDeviceId()
const {
return m_deviceId; }
32 unsigned int GetButtonCount()
const {
return static_cast<unsigned int>(m_buttons.size()); }
33 unsigned int GetAxisCount()
const {
return static_cast<unsigned int>(m_axes.size()); }
39 bool Initialize(
const CJNIViewInputDevice& inputDevice);
55 void GetEvents(std::vector<kodi::addon::PeripheralEvent>& events);
59 bool SetAxisValue(
const std::vector<int>& axisIds, JOYSTICK_STATE_AXIS axisValue);
61 void GetButtonEvents(std::vector<kodi::addon::PeripheralEvent>& events);
62 void GetAxisEvents(std::vector<kodi::addon::PeripheralEvent>& events)
const;
64 static float Contain(
float value,
float min,
float max);
65 static float Scale(
float value,
float max,
float scaledMax);
66 static float Deadzone(
float value,
float deadzone);
76 float resolution = 0.0f;
79 using JoystickAxes = std::vector<JoystickAxis>;
81 static JoystickAxes::const_iterator GetAxis(
const std::vector<int>& axisIds,
82 const JoystickAxes& axes);
83 static bool ContainsAxis(
int axisId,
const JoystickAxes& axes);
84 static bool GetAxesIndex(
const std::vector<int>& axisIds,
85 const JoystickAxes& axes,
90 JoystickAxes m_buttons;
93 std::vector<JOYSTICK_STATE_AXIS> m_analogState;
95 CCriticalSection m_eventMutex;
96 std::vector<kodi::addon::PeripheralEvent> m_digitalEvents;
void GetEvents(std::vector< kodi::addon::PeripheralEvent > &events)
Definition: AndroidJoystickState.cpp:266
Definition: RetroPlayerInput.h:15
bool ProcessEvent(const AInputEvent *event)
Definition: AndroidJoystickState.cpp:203
void Deinitialize()
Definition: AndroidJoystickState.cpp:194
Definition: AndroidJoystickState.h:23
bool Initialize(const CJNIViewInputDevice &inputDevice)
Definition: AndroidJoystickState.cpp:84