From a690352100140e142befcfbf3b5b9876c4ba9591 Mon Sep 17 00:00:00 2001 From: bsongis Date: Wed, 19 Nov 2014 20:27:57 +0100 Subject: [PATCH] Fixes #1852 Conflicts: companion/src/firmwares/opentx/opentxeeprom.cpp companion/src/modeledit/customfunctions.cpp --- companion/src/eeprominterface.cpp | 2 ++ companion/src/eeprominterface.h | 1 + companion/src/firmwares/opentx/opentxeeprom.cpp | 9 ++++++--- companion/src/modeledit/customfunctions.cpp | 13 +++++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index 64c7676de..3d88ba9ee 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -854,6 +854,8 @@ QString CustomFunctionData::funcToString() return QObject::tr("Play Both"); else if (func == FuncPlayValue) return QObject::tr("Play Value"); + else if (func == FuncPlayScript) + return QObject::tr("Play Script"); else if (func == FuncLogs) return QObject::tr("Start Logs"); else if (func == FuncVolume) diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 13554eb9a..ac3981217 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -629,6 +629,7 @@ enum AssignFunc { FuncPlayPrompt, FuncPlayBoth, FuncPlayValue, + FuncPlayScript, FuncLogs, FuncVolume, FuncBacklight, diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 84f3555c3..d839b2dc6 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -1879,7 +1879,10 @@ class CustomFunctionsConversionTable: public ConversionTable { addConversion(FuncPlayValue, val++); if (IS_ARM(board)) { addConversion(FuncReserve, val++); - addConversion(FuncReserve, val++); + if (IS_TARANIS(board)) + addConversion(FuncPlayScript, val++); + else + addConversion(FuncReserve, val++); addConversion(FuncReserve, val++); addConversion(FuncBackgroundMusic, val++); addConversion(FuncBackgroundMusicPause, val++); @@ -2023,7 +2026,7 @@ class ArmCustomFunctionField: public TransformedField { *((uint8_t *)(_param+3)) = fn.func - FuncSetTimer1; } } - else if (fn.func == FuncPlayPrompt || fn.func == FuncBackgroundMusic) { + else if (fn.func == FuncPlayPrompt || fn.func == FuncBackgroundMusic || fn.func == FuncPlayScript) { memcpy(_param, fn.paramarm, sizeof(_param)); } else if (fn.func >= FuncAdjustGV1 && fn.func <= FuncAdjustGVLast) { @@ -2107,7 +2110,7 @@ class ArmCustomFunctionField: public TransformedField { fn.func = AssignFunc(fn.func + index); fn.param = value; } - else if (fn.func == FuncPlayPrompt || fn.func == FuncBackgroundMusic) { + else if (fn.func == FuncPlayPrompt || fn.func == FuncBackgroundMusic || fn.func == FuncPlayScript) { memcpy(fn.paramarm, _param, sizeof(fn.paramarm)); } else if (fn.func == FuncVolume) { diff --git a/companion/src/modeledit/customfunctions.cpp b/companion/src/modeledit/customfunctions.cpp index d571fb39b..f9b4b0f7f 100644 --- a/companion/src/modeledit/customfunctions.cpp +++ b/companion/src/modeledit/customfunctions.cpp @@ -475,6 +475,18 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM; } } + else if (func==FuncPlayScript) { + widgetsMask |= CUSTOM_FUNCTION_FILE_PARAM; + if (modified) { + memset(cfn.paramarm, 0, sizeof(cfn.paramarm)); + int vml = 8/*TODO*/; + if (fswtchParamArmT[i]->currentText() != "----") { + for (int j=0; jcurrentText().length(), vml); j++) { + cfn.paramarm[j] = fswtchParamArmT[i]->currentText().toAscii().at(j); + } + } + } + } else if (func==FuncBacklight && IS_TARANIS_PLUS(GetEepromInterface()->getBoard())) { if (modified) cfn.param = (uint8_t)fswtchBLcolor[i]->value(); fswtchBLcolor[i]->setValue(cfn.param); @@ -597,6 +609,7 @@ void CustomFunctionsPanel::populateFuncCB(QComboBox *b, unsigned int value) for (unsigned int i=0; i=FuncOverrideCH1 && i<=FuncOverrideCH32) && (!model || !firmware->getCapability(SafetyChannelCustomFunction))) || ((i==FuncVolume || i==FuncBackgroundMusic || i==FuncBackgroundMusicPause) && !firmware->getCapability(HasVolume)) || + ((i==FuncPlayScript && !IS_TARANIS(firmware->getBoard()))) || ((i==FuncPlayHaptic) && !firmware->getCapability(Haptic)) || ((i==FuncPlayBoth) && !firmware->getCapability(HasBeeper)) || ((i==FuncLogs) && !firmware->getCapability(HasSDLogs)) ||