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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user