Commit 87bbb74d authored by Jacob Walser's avatar Jacob Walser

Fix joystick tx mode initialization

parent add505fa
...@@ -75,6 +75,8 @@ Joystick::Joystick(const QString& name, int axisCount, int buttonCount, int hatC ...@@ -75,6 +75,8 @@ Joystick::Joystick(const QString& name, int axisCount, int buttonCount, int hatC
_rgButtonValues[i] = false; _rgButtonValues[i] = false;
} }
_updateTXModeSettingsKey(_multiVehicleManager->activeVehicle());
_loadSettings(); _loadSettings();
connect(_multiVehicleManager, &MultiVehicleManager::activeVehicleChanged, this, &Joystick::_activeVehicleChanged); connect(_multiVehicleManager, &MultiVehicleManager::activeVehicleChanged, this, &Joystick::_activeVehicleChanged);
...@@ -119,7 +121,7 @@ void Joystick::_setDefaultCalibration(void) { ...@@ -119,7 +121,7 @@ void Joystick::_setDefaultCalibration(void) {
_saveSettings(); _saveSettings();
} }
void Joystick::_activeVehicleChanged(Vehicle *activeVehicle) void Joystick::_updateTXModeSettingsKey(Vehicle* activeVehicle)
{ {
if(activeVehicle) { if(activeVehicle) {
if(activeVehicle->fixedWing()) { if(activeVehicle->fixedWing()) {
...@@ -137,7 +139,16 @@ void Joystick::_activeVehicleChanged(Vehicle *activeVehicle) ...@@ -137,7 +139,16 @@ void Joystick::_activeVehicleChanged(Vehicle *activeVehicle)
qWarning() << "No valid joystick TXmode settings key for selected vehicle"; qWarning() << "No valid joystick TXmode settings key for selected vehicle";
return; return;
} }
} else {
_txModeSettingsKey = NULL;
}
}
void Joystick::_activeVehicleChanged(Vehicle* activeVehicle)
{
_updateTXModeSettingsKey(activeVehicle);
if(activeVehicle) {
QSettings settings; QSettings settings;
settings.beginGroup(_settingsGroup); settings.beginGroup(_settingsGroup);
int mode = settings.value(_txModeSettingsKey, activeVehicle->firmwarePlugin()->defaultJoystickTXMode()).toInt(); int mode = settings.value(_txModeSettingsKey, activeVehicle->firmwarePlugin()->defaultJoystickTXMode()).toInt();
...@@ -152,8 +163,10 @@ void Joystick::_loadSettings(void) ...@@ -152,8 +163,10 @@ void Joystick::_loadSettings(void)
settings.beginGroup(_settingsGroup); settings.beginGroup(_settingsGroup);
if(_txModeSettingsKey) Vehicle* activeVehicle = _multiVehicleManager->activeVehicle();
_transmitterMode = settings.value(_txModeSettingsKey, 2).toInt();
if(_txModeSettingsKey && activeVehicle)
_transmitterMode = settings.value(_txModeSettingsKey, activeVehicle->firmwarePlugin()->defaultJoystickTXMode()).toInt();
settings.beginGroup(_name); settings.beginGroup(_name);
......
...@@ -181,6 +181,7 @@ private: ...@@ -181,6 +181,7 @@ private:
virtual int _getAxis(int i) = 0; virtual int _getAxis(int i) = 0;
virtual uint8_t _getHat(int hat,int i) = 0; virtual uint8_t _getHat(int hat,int i) = 0;
void _updateTXModeSettingsKey(Vehicle* activeVehicle);
int _mapFunctionMode(int mode, int function); int _mapFunctionMode(int mode, int function);
void _remapAxes(int currentMode, int newMode, int (&newMapping)[maxFunction]); void _remapAxes(int currentMode, int newMode, int (&newMapping)[maxFunction]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment