diff --git a/radio/src/gui/colorlcd/sourcechoice.cpp b/radio/src/gui/colorlcd/sourcechoice.cpp index 23d11dd1d..34be26933 100644 --- a/radio/src/gui/colorlcd/sourcechoice.cpp +++ b/radio/src/gui/colorlcd/sourcechoice.cpp @@ -28,7 +28,8 @@ #include "draw_functions.h" #include "opentx.h" -class SourceChoiceMenuToolbar : public MenuToolbar { +class SourceChoiceMenuToolbar : public MenuToolbar +{ public: SourceChoiceMenuToolbar(SourceChoice * choice, Menu * menu): MenuToolbar(choice, menu) @@ -84,13 +85,9 @@ void SourceChoice::fillMenu(Menu * menu, const std::function & fi menu->removeLines(); for (int i = vmin; i <= vmax; ++i) { - if (filter && !filter(i)) - continue; - if (isValueAvailable && !isValueAvailable(i)) - continue; - menu->addLine(getSourceString(i), [=]() { - setValue(i); - }); + if (filter && !filter(i)) continue; + if (isValueAvailable && !isValueAvailable(i)) continue; + menu->addLine(getSourceString(i), [=]() { setValue(i); }); if (value == i) { current = count; } diff --git a/radio/src/strhelpers.cpp b/radio/src/strhelpers.cpp index 894343547..d80c3acf5 100644 --- a/radio/src/strhelpers.cpp +++ b/radio/src/strhelpers.cpp @@ -436,12 +436,24 @@ char * getSourceString(char * dest, mixsrc_t idx) } #endif else if (idx <= MIXSRC_LAST_POT) { - idx -= MIXSRC_Rud; - if (g_eeGeneral.anaNames[idx][0]) { - zchar2str(dest, g_eeGeneral.anaNames[idx], LEN_ANA_NAME); - dest[LEN_ANA_NAME] = '\0'; + + if (g_eeGeneral.anaNames[idx - MIXSRC_Rud][0]) { + + //TODO: add correct symbol + if(idx <= MIXSRC_LAST_STICK) { + dest[0] = CHAR_STICK; + } else if (idx < MIXSRC_FIRST_SLIDER) { + dest[0] = CHAR_POT; + } else { + dest[0] = CHAR_SLIDER; + } + + idx -= MIXSRC_Rud; + memcpy(dest+1, g_eeGeneral.anaNames[idx], LEN_ANA_NAME); + dest[LEN_ANA_NAME+1] = '\0'; } else { + idx -= MIXSRC_Rud; getStringAtIndex(dest, STR_VSRCRAW, idx + 1); } }