1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 13:47:01 -04:00

Add support for gamepad axis configuration

This commit is contained in:
Jon Beniston
2023-04-24 11:38:52 +01:00
parent 62e0ae41f3
commit fe3aeaed5b
11 changed files with 463 additions and 17 deletions
@@ -19,6 +19,7 @@
#include <QGamepadManager>
#include "gamepadinputcontroller.h"
#include "gamepadconfigurationdialog.h"
GamepadInputController::GamepadInputController(int deviceId) :
m_gamepad(deviceId),
@@ -54,6 +55,28 @@ int GamepadInputController::getNumberOfAxes() const
return 4;
}
bool GamepadInputController::supportsConfiguration() const
{
// Should only return true on Linux evdev or Android
return QGamepadManager::instance()->isConfigurationNeeded(m_gamepad.deviceId());
}
void GamepadInputController::configure()
{
disconnect(&m_gamepad, &QGamepad::axisRightXChanged, this, &GamepadInputController::axisRightXChanged);
disconnect(&m_gamepad, &QGamepad::axisRightYChanged, this, &GamepadInputController::axisRightYChanged);
disconnect(&m_gamepad, &QGamepad::axisLeftXChanged, this, &GamepadInputController::axisLeftXChanged);
disconnect(&m_gamepad, &QGamepad::axisLeftYChanged, this, &GamepadInputController::axisLeftYChanged);
GamepadConfigurationDialog dialog(&m_gamepad);
dialog.exec();
connect(&m_gamepad, &QGamepad::axisRightXChanged, this, &GamepadInputController::axisRightXChanged);
connect(&m_gamepad, &QGamepad::axisRightYChanged, this, &GamepadInputController::axisRightYChanged);
connect(&m_gamepad, &QGamepad::axisLeftXChanged, this, &GamepadInputController::axisLeftXChanged);
connect(&m_gamepad, &QGamepad::axisLeftYChanged, this, &GamepadInputController::axisLeftYChanged);
}
void GamepadInputController::axisRightXChanged(double value)
{
m_rightX = value;