diff --git a/radio/src/gui/colorlcd/model_inputs.cpp b/radio/src/gui/colorlcd/model_inputs.cpp index 61f9c814ba9..ea7f6e69661 100644 --- a/radio/src/gui/colorlcd/model_inputs.cpp +++ b/radio/src/gui/colorlcd/model_inputs.cpp @@ -336,21 +336,19 @@ void ModelInputsPage::newInput() menu->setTitle(STR_MENU_INPUTS); uint8_t chn = 0; - uint8_t index = 0; ExpoData* line = g_model.expoData; // search for unused channels - for (uint8_t i = 0; i < MAX_EXPOS && chn < MAX_INPUTS; i++) { + for (uint8_t i = 0; i < MAX_EXPOS; i++) { if (!EXPO_VALID(line) || (line->chn > chn)) { + if (chn >= MAX_INPUTS) break; std::string name(getSourceString(chn+1)); - menu->addLineBuffered(name.c_str(), [=]() { insertInput(chn, index); }); + menu->addLineBuffered(name.c_str(), [=]() { insertInput(chn, i); }); } - if (EXPO_VALID(line)) { + if (EXPO_VALID(line)) chn = line->chn + 1; - index += 1; - } else { + else chn += 1; - } ++line; }