From d146966a18d33fb93cea944bea5e84134de032bf Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 8 Feb 2014 17:12:26 +0100 Subject: [PATCH] Issue #594 (SetTimer) - Companion part done --- companion/src/firmwares/opentx/opentxeeprom.cpp | 10 ++++++++-- companion/src/modeledit/customfunctions.cpp | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index efbcf74fa..b36ed2c50 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -1458,8 +1458,10 @@ class ArmCustomFunctionField: public TransformedField { *((uint8_t *)(_param+3)) = fn.func - FuncTrainer; } else if (fn.func >= FuncSetTimer1 && fn.func <= FuncSetTimer2) { - if (version >= 216) + if (version >= 216) { + *((uint16_t *)_param) = fn.param; *((uint8_t *)(_param+3)) = fn.func - FuncSetTimer1; + } } else if (fn.func == FuncPlayPrompt || fn.func == FuncBackgroundMusic) { memcpy(_param, fn.paramarm, sizeof(_param)); @@ -1528,10 +1530,14 @@ class ArmCustomFunctionField: public TransformedField { fn.func = AssignFunc(fn.func + index); fn.param = (int)value; } - else if (fn.func >= FuncTrainer && fn.func <= FuncTrainerAIL) { + else if (fn.func >= FuncSetTimer1 && fn.func <= FuncSetTimer2) { fn.func = AssignFunc(fn.func + index); fn.param = (int)value; } + else if (fn.func >= FuncTrainer && fn.func <= FuncTrainerAIL) { + fn.func = AssignFunc(fn.func + index); + fn.param = value; + } else if (fn.func == FuncPlayPrompt || fn.func == FuncBackgroundMusic) { memcpy(fn.paramarm, _param, sizeof(fn.paramarm)); } diff --git a/companion/src/modeledit/customfunctions.cpp b/companion/src/modeledit/customfunctions.cpp index d2468bc19..49f7630e8 100644 --- a/companion/src/modeledit/customfunctions.cpp +++ b/companion/src/modeledit/customfunctions.cpp @@ -347,6 +347,15 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param); widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM | CUSTOM_FUNCTION_ENABLE; } + else if (index>=FuncSetTimer1 && index<=FuncSetTimer2) { + if (modified) model.funcSw[i].param = fswtchParam[i]->value(); + fswtchParam[i]->setDecimals(0); + fswtchParam[i]->setSingleStep(1); + fswtchParam[i]->setMinimum(0); + fswtchParam[i]->setMaximum(59*60+59); + fswtchParam[i]->setValue(model.funcSw[i].param); + widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_ENABLE; + } else if (index==FuncVolume) { if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt(); populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);