From a58771e2b7cd1391ee03dc7ea40846cb3812bff2 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 17 Aug 2020 10:17:09 +0200 Subject: [PATCH] Allow displaying modelID and/or Bind/Range sperately --- radio/src/gui/colorlcd/model_setup.cpp | 84 +++++++++++++------------- radio/src/pulses/modules_helpers.h | 3 + 2 files changed, 46 insertions(+), 41 deletions(-) diff --git a/radio/src/gui/colorlcd/model_setup.cpp b/radio/src/gui/colorlcd/model_setup.cpp index c5ab4baf2..1b125dd7e 100644 --- a/radio/src/gui/colorlcd/model_setup.cpp +++ b/radio/src/gui/colorlcd/model_setup.cpp @@ -764,7 +764,7 @@ class ModuleWindow : public FormGroup { // Module parameters // Bind and Range buttons - if (!isModuleRFAccess(moduleIdx) && isModuleBindRangeAvailable(moduleIdx)) { + if (!isModuleRFAccess(moduleIdx) && (isModuleModelIndexAvailable(moduleIdx)|| isModuleBindRangeAvailable(moduleIdx))) { uint8_t thirdColumn = 0; new StaticText(this, grid.getLabelSlot(true), STR_RECEIVER); @@ -774,49 +774,51 @@ class ModuleWindow : public FormGroup { new NumberEdit(this, grid.getFieldSlot(3, 0), 0, getMaxRxNum(moduleIdx), GET_SET_DEFAULT(g_model.header.modelId[moduleIdx])); } - bindButton = new TextButton(this, grid.getFieldSlot(2+thirdColumn, 0+thirdColumn), STR_MODULE_BIND); - bindButton->setPressHandler([=]() -> uint8_t { - if (moduleState[moduleIdx].mode == MODULE_MODE_RANGECHECK) { - rangeButton->check(false); - } - if (moduleState[moduleIdx].mode == MODULE_MODE_BIND) { - moduleState[moduleIdx].mode = MODULE_MODE_NORMAL; - return 0; - } - else { - setMultiBindStatus(moduleIdx, MULTI_BIND_INITIATED); - moduleState[moduleIdx].mode = MODULE_MODE_BIND; - return 1; - } - }); - bindButton->setCheckHandler([=]() { - if (moduleState[moduleIdx].mode != MODULE_MODE_BIND) { - bindButton->check(false); - } + if (isModuleBindRangeAvailable(moduleIdx)) { + bindButton = new TextButton(this, grid.getFieldSlot(2 + thirdColumn, 0 + thirdColumn), STR_MODULE_BIND); + bindButton->setPressHandler([=]() -> uint8_t { + if (moduleState[moduleIdx].mode == MODULE_MODE_RANGECHECK) { + rangeButton->check(false); + } + if (moduleState[moduleIdx].mode == MODULE_MODE_BIND) { + moduleState[moduleIdx].mode = MODULE_MODE_NORMAL; + return 0; + } + else { + setMultiBindStatus(moduleIdx, MULTI_BIND_INITIATED); + moduleState[moduleIdx].mode = MODULE_MODE_BIND; + return 1; + } + }); + bindButton->setCheckHandler([=]() { + if (moduleState[moduleIdx].mode != MODULE_MODE_BIND) { + bindButton->check(false); + } #if defined(MULTIMODULE) - if (getMultiBindStatus(moduleIdx) == MULTI_BIND_FINISHED) { - setMultiBindStatus(moduleIdx, MULTI_BIND_NONE); - moduleState[moduleIdx].mode = MODULE_MODE_NORMAL; - bindButton->check(false); - } + if (getMultiBindStatus(moduleIdx) == MULTI_BIND_FINISHED) { + setMultiBindStatus(moduleIdx, MULTI_BIND_NONE); + moduleState[moduleIdx].mode = MODULE_MODE_NORMAL; + bindButton->check(false); + } #endif - }); + }); - rangeButton = new TextButton(this, grid.getFieldSlot(2+thirdColumn, 1+thirdColumn), STR_MODULE_RANGE); - rangeButton->setPressHandler([=]() -> uint8_t { - if (moduleState[moduleIdx].mode == MODULE_MODE_BIND) { - bindButton->check(false); - moduleState[moduleIdx].mode = MODULE_MODE_NORMAL; - } - if (moduleState[moduleIdx].mode == MODULE_MODE_RANGECHECK) { - moduleState[moduleIdx].mode = MODULE_MODE_NORMAL; - return 0; - } - else { - moduleState[moduleIdx].mode = MODULE_MODE_RANGECHECK; - return 1; - } - }); + rangeButton = new TextButton(this, grid.getFieldSlot(2 + thirdColumn, 1 + thirdColumn), STR_MODULE_RANGE); + rangeButton->setPressHandler([=]() -> uint8_t { + if (moduleState[moduleIdx].mode == MODULE_MODE_BIND) { + bindButton->check(false); + moduleState[moduleIdx].mode = MODULE_MODE_NORMAL; + } + if (moduleState[moduleIdx].mode == MODULE_MODE_RANGECHECK) { + moduleState[moduleIdx].mode = MODULE_MODE_NORMAL; + return 0; + } + else { + moduleState[moduleIdx].mode = MODULE_MODE_RANGECHECK; + return 1; + } + }); + } grid.nextLine(); } diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index 5de1769dc..24d065893 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -437,6 +437,9 @@ inline bool isModuleModelIndexAvailable(uint8_t idx) if (isModuleMultimodule(idx)) return true; + if (isModuleCrossfire(idx)) + return true; + return false; }