From e10305a4e6f2129aad808557543b2522af0e9b27 Mon Sep 17 00:00:00 2001 From: bsongis Date: Thu, 27 Mar 2014 10:03:42 +0100 Subject: [PATCH] Issue #869 - Trim in Mixes back also in Companion --- companion/src/firmwares/opentx/opentxeeprom.cpp | 9 ++++++--- companion/src/modeledit/mixerdialog.cpp | 17 +++++++---------- companion/src/modeledit/mixes.cpp | 12 +++++------- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index d9c9d7d8a..b0cb459c2 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -781,7 +781,9 @@ class MixField: public TransformedField { if (IS_TARANIS(board) && version >= 216) { internalField.Append(new UnsignedField<8>(_destCh)); internalField.Append(new UnsignedField<16>(mix.phases)); - internalField.Append(new UnsignedField<8>((unsigned int &)mix.mltpx)); + internalField.Append(new UnsignedField<2>((unsigned int &)mix.mltpx)); + internalField.Append(new UnsignedField<1>((unsigned int &)mix.carryTrim)); + internalField.Append(new SpareBitsField<5>()); internalField.Append(new SignedField<16>(_weight)); internalField.Append(new SwitchField<8>(mix.swtch, board, version)); internalField.Append(new CurveReferenceField(mix.curve, board, version)); @@ -916,7 +918,7 @@ class MixField: public TransformedField { virtual void afterImport() { - if (IS_TARANIS(board) || version < 216) { + if (IS_TARANIS(board) && version < 216) { if (mix.srcRaw.type == SOURCE_TYPE_STICK && mix.srcRaw.index < NUM_STICKS) { if (!mix.noExpo) { mix.srcRaw = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, mix.srcRaw.index, model); @@ -948,10 +950,11 @@ class MixField: public TransformedField { concatGvarParam(mix.sOffset, _offset, _offsetMode, board, version); } - if (IS_TARANIS(board) || version < 216) { + if (IS_TARANIS(board) && version < 216) { if (mix.sOffset >= -500 && mix.sOffset <= 500 && mix.weight >= -500 && mix.weight <= 500) { mix.sOffset = divRoundClosest(mix.sOffset * mix.weight, 100); } + if (mix.carryTrim < 0) mix.carryTrim = 0; } } diff --git a/companion/src/modeledit/mixerdialog.cpp b/companion/src/modeledit/mixerdialog.cpp index 7ef03fdca..a2e2757af 100644 --- a/companion/src/modeledit/mixerdialog.cpp +++ b/companion/src/modeledit/mixerdialog.cpp @@ -27,12 +27,6 @@ MixerDialog::MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, i gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, md->weight, 100, -limit, limit); gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, md->sOffset, 0, -limit, limit); - - if (GetEepromInterface()->getCapability(VirtualInputs)) { - ui->trimLabel->hide(); - ui->trimCB->hide(); - } - curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, md->curve); ui->MixDR_CB->setChecked(md->noExpo==0); @@ -41,10 +35,13 @@ MixerDialog::MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, i ui->label_MixDR->hide(); } - ui->trimCB->addItem(tr("Rud"), 1); - ui->trimCB->addItem(tr("Ele"), 2); - ui->trimCB->addItem(tr("Thr"), 3); - ui->trimCB->addItem(tr("Ail"), 4); + if (!GetEepromInterface()->getCapability(VirtualInputs)) { + ui->trimCB->addItem(tr("Rud")); + ui->trimCB->addItem(tr("Ele")); + ui->trimCB->addItem(tr("Thr")); + ui->trimCB->addItem(tr("Ail")); + } + ui->trimCB->setCurrentIndex(1 - md->carryTrim); int namelength = GetEepromInterface()->getCapability(HasMixerNames); diff --git a/companion/src/modeledit/mixes.cpp b/companion/src/modeledit/mixes.cpp index 44569b9ee..77ee3f8ac 100644 --- a/companion/src/modeledit/mixes.cpp +++ b/companion/src/modeledit/mixes.cpp @@ -115,13 +115,11 @@ void MixesPanel::update() str += " " + tr("Switch(%1)").arg(md->swtch.toString()); } - if (!GetEepromInterface()->getCapability(VirtualInputs)) { - if (md->carryTrim>0) { - str += " " + tr("No Trim"); - } - else if (md->carryTrim<0) { - str += " " + RawSource(SOURCE_TYPE_TRIM, (-(md->carryTrim)-1)).toString(); - } + if (md->carryTrim>0) { + str += " " + tr("No Trim"); + } + else if (md->carryTrim<0) { + str += " " + RawSource(SOURCE_TYPE_TRIM, (-(md->carryTrim)-1)).toString(); } if (md->noExpo) str += " " + tr("No DR/Expo");