From 3ee9f56423dd47d8fc6af6e1e0db61458a751ed5 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 22 Jun 2016 22:51:11 +0200 Subject: [PATCH] 3djc/test combined mixer output mon (#3622) * Merge outputs and mixers in a single 'bar' View 8 per page * Cosmetics * Add proper icons for channels3 and 4 * Bars colors now fixed by overwhelmingly popular demand * Fix outL outR display * Add bottom line description to avoid confusion between outputs and mixers * Cosmetics * Typo --- ...utputs1.png => mask_monitor_channels1.png} | Bin ...utputs2.png => mask_monitor_channels2.png} | Bin .../THEMES/Default/mask_monitor_channels3.png | Bin 0 -> 1076 bytes .../THEMES/Default/mask_monitor_channels4.png | Bin 0 -> 1079 bytes radio/src/gui/horus/menus.h | 24 +-- radio/src/gui/horus/themes/darkblue.cpp | 8 +- radio/src/gui/horus/themes/default.cpp | 8 +- radio/src/gui/horus/view_channels.cpp | 157 ++++++++---------- radio/src/translations.cpp | 9 +- radio/src/translations.h | 10 +- radio/src/translations/cz.h.txt | 9 +- radio/src/translations/de.h.txt | 9 +- radio/src/translations/en.h.txt | 9 +- radio/src/translations/es.h.txt | 9 +- radio/src/translations/fi.h.txt | 9 +- radio/src/translations/fr.h.txt | 9 +- radio/src/translations/it.h.txt | 9 +- radio/src/translations/nl.h.txt | 9 +- radio/src/translations/pl.h.txt | 9 +- radio/src/translations/pt.h.txt | 9 +- radio/src/translations/se.h.txt | 9 +- 21 files changed, 158 insertions(+), 157 deletions(-) rename radio/sdcard/horus/THEMES/Default/{mask_monitor_outputs1.png => mask_monitor_channels1.png} (100%) rename radio/sdcard/horus/THEMES/Default/{mask_monitor_outputs2.png => mask_monitor_channels2.png} (100%) create mode 100644 radio/sdcard/horus/THEMES/Default/mask_monitor_channels3.png create mode 100644 radio/sdcard/horus/THEMES/Default/mask_monitor_channels4.png diff --git a/radio/sdcard/horus/THEMES/Default/mask_monitor_outputs1.png b/radio/sdcard/horus/THEMES/Default/mask_monitor_channels1.png similarity index 100% rename from radio/sdcard/horus/THEMES/Default/mask_monitor_outputs1.png rename to radio/sdcard/horus/THEMES/Default/mask_monitor_channels1.png diff --git a/radio/sdcard/horus/THEMES/Default/mask_monitor_outputs2.png b/radio/sdcard/horus/THEMES/Default/mask_monitor_channels2.png similarity index 100% rename from radio/sdcard/horus/THEMES/Default/mask_monitor_outputs2.png rename to radio/sdcard/horus/THEMES/Default/mask_monitor_channels2.png diff --git a/radio/sdcard/horus/THEMES/Default/mask_monitor_channels3.png b/radio/sdcard/horus/THEMES/Default/mask_monitor_channels3.png new file mode 100644 index 0000000000000000000000000000000000000000..d9ba27de714ce48f9a3dd89d5df416509d5382a6 GIT binary patch literal 1076 zcmV-41k3x0P)qX;}PG4bVq z?{#8gLIjqPq#y{;>-D(1yMxQ+g57RUP0a@qi^cHz`ijEB!W2J25U{YYfT^h|=yW<< zUtdEmmqSL9i9`bV`S}2V#>Pe{6w=abwOUxMR@iJd$Yins7l*?^gTcUyiwmZca5yZ+h{xmq)c99m zwOUP$MkCRJf&$Ur-`~$am8^in;c$v$EEZ#PbF;X| z;vR>?A+ecECIU!XhD^YUOr3glb%pu)d0bvzqOPtEqoboR8jbLHJUBW!lI$HG9!5(` z3rb2#vS*caCk_MxEGsLMG*(4L1vfW0IXgSc%F4?Brp6YFg#b7>I7pAjLz~Se+DAr4 zcyx5cmzNhYu*>D5)oSJa{r%^G1AzdQN+q>gEu+z>=)AtZ&hqkdkpkUrw`l9?>LP%D zcb)e4_X&U|lPM*@-92`NQifP ze0-caIXMKtfq?76*4B(MGNw9{HZ(NQ z=ktBoy-!b1Y-?-d&xtDCH)E<#Pfwv%t0iknr4mI&MITacG#W*3Z!h-t_CC+me=5;v zlpP%%k_`Rs#3{hPPJ-D;EEW?f^N)d($)tEqTrL-b!63uo@Nf0@_LiNUooRa_9k5QP uV=|fi-tqR^271~1x6}XigpqyMqwNQJ`Puy0a`;OC0000C1H?&0 zK~zY`#aB&8YFiZkG|37xjM9)Gf(A8+exag}ib#kENkWQ7O`=Jo1Zxsaq?v;zMUxr? z%|fC<5d>xg%A5%&N+MSwLZ@J`Pf@VlK2Ku zyk8Im0f|K7OF?pTb0L?@rHlMqg25nXXJ@I`>j~gXRj=1`c6OG*VDKj#MPQrF_T_-@ z)n>Daz%r5)1Oa-z9{2b6u-okzA0JOm%?A>VM)CUkio(Le6hA=_u(Y&jCe zg-~2v3;>A5V#v$O`>V#WSS+hl)z#I}=kxKsSglqzHa7C|@{;K!6bgwkVzJmiHU1S? ztyZ(Bs7Rs(1qGsgU|@iMDp>)CLZKALXf(=}mKJf3%jJ^TcXxNWwzkG_IQ+H1B{%td2@4<<>lof1v;Hh(bnDFO#uIH zoDL5U34lhUF(ts$(-X(X$0?J^2!O-G!}R<8JU>6@(a{lKUS2*Ae0zIKl}bgmT1}VB zML`f!0`2YXv8t+y09aaD%Jud24{LmJagkk(=jP_bZ;eL7{{DW>&(G8Cb~7H2i?cm7 zHN~8q90K6r;2@*XXbNZ`5MXU>ZT54#yu8ewo*t@HDoJ-Ml}dJWbZ~llnp<02+}YV- zO-&5}aAjph0vZek+1S`9@z0t--rnALe0)rY!$GszOr1_A2_%=xSyWU+09;*N75yF` zAKBd8oWl1R31o6|5(H7OhOO@1Ofq^oSeX5FkoR}0rmCuaJ$`byWQB|--plV zgUMuq#bN;fgu`L<_V&W#@nlaRAE`p2;Ks&AN*&|zxY&f@aF}gvZ5d-^Om!x0XlS6v z#&t=`?;v8$^qZBL{F x*6DOiCX?TLy#2NVz3lzn>HoUI$iC~+_5)ID)B<3jv#J09002ovPDHLkV1khI{6qi% literal 0 HcmV?d00001 diff --git a/radio/src/gui/horus/menus.h b/radio/src/gui/horus/menus.h index 58ed613b0..a2ba0688b 100644 --- a/radio/src/gui/horus/menus.h +++ b/radio/src/gui/horus/menus.h @@ -96,10 +96,10 @@ enum MenuIcons { ICON_STATS_ANALOGS, ICON_STATS_DEBUG, ICON_MONITOR, - ICON_MONITOR_OUTPUTS1, - ICON_MONITOR_OUTPUTS2, - ICON_MONITOR_MIXERS1, - ICON_MONITOR_MIXERS2, + ICON_MONITOR_CHANNELS1, + ICON_MONITOR_CHANNELS2, + ICON_MONITOR_CHANNELS3, + ICON_MONITOR_CHANNELS4, ICON_MONITOR_LOGICAL_SWITCHES, MENUS_ICONS_COUNT }; @@ -162,10 +162,10 @@ const uint8_t STATS_ICONS[] = { const uint8_t MONITOR_ICONS[] = { ICON_MONITOR, - ICON_MONITOR_OUTPUTS1, - ICON_MONITOR_OUTPUTS2, - ICON_MONITOR_MIXERS1, - ICON_MONITOR_MIXERS2, + ICON_MONITOR_CHANNELS1, + ICON_MONITOR_CHANNELS2, + ICON_MONITOR_CHANNELS3, + ICON_MONITOR_CHANNELS4, ICON_MONITOR_LOGICAL_SWITCHES }; @@ -232,10 +232,10 @@ static const MenuHandlerFunc menuTabStats[] PROGMEM = { enum EnumTabMonitors { - e_MonOutputs1, - e_MonOutputs2, - e_MonMixers1, - e_MonMixers2, + e_MonChannels1, + e_MonChannels2, + e_MonChannels3, + e_MonChannels4, e_MonLogicalSwitches, e_MonTabChannelsPagesCount }; diff --git a/radio/src/gui/horus/themes/darkblue.cpp b/radio/src/gui/horus/themes/darkblue.cpp index eb19da425..16edca76e 100644 --- a/radio/src/gui/horus/themes/darkblue.cpp +++ b/radio/src/gui/horus/themes/darkblue.cpp @@ -107,10 +107,10 @@ class DarkblueTheme: public Theme loadMenuIcon(ICON_THEME_VIEW5, "mask_theme_view5.png"); loadMenuIcon(ICON_THEME_ADD_VIEW, "mask_theme_add_view.png"); loadMenuIcon(ICON_MONITOR, "mask_monitor.png"); - loadMenuIcon(ICON_MONITOR_OUTPUTS1, "mask_monitor_outputs1.png"); - loadMenuIcon(ICON_MONITOR_OUTPUTS2, "mask_monitor_outputs2.png"); - loadMenuIcon(ICON_MONITOR_MIXERS1, "mask_monitor_mixes1.png"); - loadMenuIcon(ICON_MONITOR_MIXERS2, "mask_monitor_mixes2.png"); + loadMenuIcon(ICON_MONITOR_CHANNELS1, "mask_monitor_channels1.png"); + loadMenuIcon(ICON_MONITOR_CHANNELS2, "mask_monitor_channels2.png"); + loadMenuIcon(ICON_MONITOR_CHANNELS3, "mask_monitor_channels3.png"); + loadMenuIcon(ICON_MONITOR_CHANNELS4, "mask_monitor_channels4.png"); loadMenuIcon(ICON_MONITOR_LOGICAL_SWITCHES, "/mask_monitor_logsw.png"); } diff --git a/radio/src/gui/horus/themes/default.cpp b/radio/src/gui/horus/themes/default.cpp index 9414078a3..b00e82fb1 100644 --- a/radio/src/gui/horus/themes/default.cpp +++ b/radio/src/gui/horus/themes/default.cpp @@ -123,10 +123,10 @@ class DefaultTheme: public Theme loadMenuIcon(ICON_THEME_ADD_VIEW, "mask_theme_add_view.png"); loadMenuIcon(ICON_LIBRARY, "mask_library.png"); loadMenuIcon(ICON_MONITOR, "mask_monitor.png"); - loadMenuIcon(ICON_MONITOR_OUTPUTS1, "mask_monitor_outputs1.png"); - loadMenuIcon(ICON_MONITOR_OUTPUTS2, "mask_monitor_outputs2.png"); - loadMenuIcon(ICON_MONITOR_MIXERS1, "mask_monitor_mixes1.png"); - loadMenuIcon(ICON_MONITOR_MIXERS2, "mask_monitor_mixes2.png"); + loadMenuIcon(ICON_MONITOR_CHANNELS1, "mask_monitor_channels1.png"); + loadMenuIcon(ICON_MONITOR_CHANNELS2, "mask_monitor_channels2.png"); + loadMenuIcon(ICON_MONITOR_CHANNELS3, "mask_monitor_channels3.png"); + loadMenuIcon(ICON_MONITOR_CHANNELS4, "mask_monitor_channels4.png"); loadMenuIcon(ICON_MONITOR_LOGICAL_SWITCHES, "/mask_monitor_logsw.png"); BitmapBuffer * background = BitmapBuffer::loadMask(getThemePath("mask_currentmenu_bg.png")); diff --git a/radio/src/gui/horus/view_channels.cpp b/radio/src/gui/horus/view_channels.cpp index 71f91b7df..7d967cf32 100644 --- a/radio/src/gui/horus/view_channels.cpp +++ b/radio/src/gui/horus/view_channels.cpp @@ -21,23 +21,25 @@ #include "opentx.h" #define RECT_OFFSET 80 -#define ROW_HEIGHT 21 -#define BAR_HEIGHT 10 -#define COLUMN_SIZE 180 -#define X_OFFSET 30 +#define ROW_HEIGHT 42 +#define BAR_HEIGHT 14 +#define COLUMN_SIZE 200 +#define X_OFFSET 25 #define Y_OFFSET 75 +#define Y_OUTBAR 15 +#define Y_MIXBAR 28 -bool menuOutputs1(evt_t); -bool menuOutputs2(evt_t); -bool menuMixers1(evt_t); -bool menuMixers2(evt_t); +bool menuChannels1(evt_t); +bool menuChannels2(evt_t); +bool menuChannels3(evt_t); +bool menuChannels4(evt_t); bool menuLogicalSwitches(evt_t); const MenuHandlerFunc menuTabMonitors[] PROGMEM = { - menuOutputs1, - menuOutputs2, - menuMixers1, - menuMixers2, + menuChannels1, + menuChannels2, + menuChannels3, + menuChannels4, menuLogicalSwitches }; @@ -51,38 +53,29 @@ uint16_t posOnBar(int16_t value_to100) void drawSingleMixerBar(coord_t x, coord_t y, uint8_t chan) { - char chanString[] = "Ch 32"; int16_t chanVal = calcRESXto100(ex_chans[chan]); - strAppendSigned(&chanString[3], chan + 1, 2); - lcdDrawText(x + X_OFFSET, y + 1, chanString, TINSIZE | TEXT_COLOR | LEFT); - - lcdDrawSizedText(x + X_OFFSET + 50, y + 1, g_model.limitData[chan].name, sizeof(g_model.limitData[chan].name), TINSIZE | TEXT_COLOR | LEFT | ZCHAR); - lcdColorTable[CUSTOM_COLOR_INDEX] = RGB(222, 222, 222); - lcdDrawSolidFilledRect(x + X_OFFSET, y + 11, COLUMN_SIZE, BAR_HEIGHT, CUSTOM_COLOR); + lcdDrawSolidFilledRect(x, y, COLUMN_SIZE, BAR_HEIGHT, CUSTOM_COLOR); - lcd->drawSolidVerticalLine(x + X_OFFSET + posOnBar(chanVal), y + 11, BAR_HEIGHT, HEADER_BGCOLOR); - - strAppendSigned(chanString, chanVal); - lcdDrawText(x + X_OFFSET + COLUMN_SIZE - 2, y + 1, chanString, TINSIZE | TEXT_COLOR | RIGHT); + lcd->drawSolidVerticalLine(x + posOnBar(chanVal), y, BAR_HEIGHT, HEADER_BGCOLOR); lcdColorTable[CUSTOM_COLOR_INDEX] = RGB(25, 150, 50); if (chanVal > 0) { - lcdDrawSolidFilledRect(x + X_OFFSET + COLUMN_SIZE / 2, y + 11, divRoundClosest(chanVal * COLUMN_SIZE, 200), BAR_HEIGHT, CUSTOM_COLOR); + lcdDrawSolidFilledRect(x + COLUMN_SIZE / 2, y, divRoundClosest(chanVal * COLUMN_SIZE, 200), BAR_HEIGHT, CUSTOM_COLOR); } else if (chanVal < 0) { - uint16_t endpoint = x + X_OFFSET + COLUMN_SIZE / 2; + uint16_t endpoint = x + COLUMN_SIZE / 2; uint16_t size = divRoundClosest(-chanVal * COLUMN_SIZE, 200); - lcdDrawSolidFilledRect(endpoint - size, y + 11, size, BAR_HEIGHT, CUSTOM_COLOR); + lcdDrawSolidFilledRect(endpoint - size, y, size, BAR_HEIGHT, CUSTOM_COLOR); } - lcd->drawSolidVerticalLine(x + X_OFFSET + COLUMN_SIZE / 2, y + 11, BAR_HEIGHT, TEXT_COLOR); + lcd->drawSolidVerticalLine(x + COLUMN_SIZE / 2, y, BAR_HEIGHT, TEXT_COLOR); } void drawSingleOutputBar(coord_t x, coord_t y, uint8_t channel) { - char chanString[] = "Ch 32"; + char chanString[] = "Ch32 "; uint16_t limits = (g_model.extendedLimits ? 300 : 200); int16_t chanVal = calcRESXto100(channelOutputs[channel]); LimitData * ld = limitAddress(channel); @@ -92,103 +85,99 @@ void drawSingleOutputBar(coord_t x, coord_t y, uint8_t channel) static const BitmapBuffer * outL_bmp = BitmapBuffer::load(getThemePath("mask_monitor_outL.png")); static const BitmapBuffer * outR_bmp = BitmapBuffer::load(getThemePath("mask_monitor_outR.png")); - strAppendSigned(&chanString[3], channel + 1, 2); - lcdDrawText(x + X_OFFSET, y + 1, chanString, TINSIZE | TEXT_COLOR | LEFT); + strAppendSigned(&chanString[2], channel + 1, 2); + lcdDrawText(x, y, chanString, SMLSIZE | TEXT_COLOR | LEFT); - lcdDrawSizedText(x + X_OFFSET + 50, y + 1, g_model.limitData[channel].name, sizeof(g_model.limitData[channel].name), TINSIZE | TEXT_COLOR | LEFT | ZCHAR); + lcdDrawSizedText(x + 45, y, g_model.limitData[channel].name, sizeof(g_model.limitData[channel].name), SMLSIZE | TEXT_COLOR | LEFT | ZCHAR); + int usValue = PPM_CH_CENTER(channel) + channelOutputs[channel] / 2; + strAppendSigned(chanString, usValue); + if (usValue < 1000) strAppend(&chanString[3], STR_US); + else strAppend(&chanString[4], STR_US); + lcdDrawText(x + 155, y, chanString, SMLSIZE | TEXT_COLOR | RIGHT); lcdColorTable[CUSTOM_COLOR_INDEX] = RGB(222, 222, 222); - lcdDrawSolidFilledRect(x + X_OFFSET, y + 11, COLUMN_SIZE, BAR_HEIGHT, CUSTOM_COLOR); + lcdDrawSolidFilledRect(x, y + Y_OUTBAR, COLUMN_SIZE, BAR_HEIGHT, CUSTOM_COLOR); - lcdDrawText(x + X_OFFSET + posOnBar(-100 + ld->min / 10) + 2, y + 10, "]", TINSIZE | TEXT_COLOR | RIGHT); - lcdDrawText(x + X_OFFSET + posOnBar(100 + ld->max / 10), y + 10, "[", TINSIZE | TEXT_COLOR); + lcdDrawText(x + posOnBar(-100 + ld->min / 10) + 2, y + Y_OUTBAR, "]", TINSIZE | TEXT_COLOR | RIGHT); + lcdDrawText(x + posOnBar(100 + ld->max / 10), y + Y_OUTBAR, "[", TINSIZE | TEXT_COLOR); - lcd->drawSolidVerticalLine(x + X_OFFSET + posOnBar(calcRESXto100(ld->offset)), y + 11, BAR_HEIGHT, MAINVIEW_GRAPHICS_COLOR); - lcd->drawSolidVerticalLine(x + X_OFFSET + posOnBar(chanVal), y + 11, BAR_HEIGHT, HEADER_BGCOLOR); + lcd->drawSolidVerticalLine(x + posOnBar(calcRESXto100(ld->offset)), y + Y_OUTBAR, BAR_HEIGHT, MAINVIEW_GRAPHICS_COLOR); + lcd->drawSolidVerticalLine(x + posOnBar(chanVal), y + Y_OUTBAR, BAR_HEIGHT, HEADER_BGCOLOR); strAppendSigned(chanString, chanVal); if (chanVal < -limits / 2) { - lcd->drawBitmap(x + X_OFFSET + COLUMN_SIZE / 2 - 55, y + 8, outL_bmp); chanVal = -limits / 2; - lcdDrawText(x + X_OFFSET + COLUMN_SIZE - 2, y + 1, chanString, TINSIZE | TEXT_COLOR | RIGHT | INVERS); + lcdDrawText(x + COLUMN_SIZE - 2, y + 1, chanString, SMLSIZE | TEXT_COLOR | RIGHT | INVERS); + lcd->drawBitmap(x + COLUMN_SIZE / 2 + 5, y + 16, outL_bmp); } else if (chanVal > limits / 2) { - lcd->drawBitmap(x + X_OFFSET + COLUMN_SIZE / 2 + 55, y + 8, outR_bmp); chanVal = limits / 2; - lcdDrawText(x + X_OFFSET + COLUMN_SIZE - 2, y + 1, chanString, TINSIZE | TEXT_COLOR | RIGHT | INVERS); + lcdDrawText(x + COLUMN_SIZE - 2, y + 1, chanString, SMLSIZE | TEXT_COLOR | RIGHT | INVERS); + lcd->drawBitmap(x + COLUMN_SIZE / 2 - 5, y + 16, outR_bmp); } else { - lcdDrawText(x + X_OFFSET + COLUMN_SIZE - 2, y + 1, chanString, TINSIZE | TEXT_COLOR | RIGHT); + lcdDrawText(x + COLUMN_SIZE - 2, y + 1, chanString, SMLSIZE | TEXT_COLOR | RIGHT); } + lcdColorTable[CUSTOM_COLOR_INDEX] = RED; if (posOnBar(chanVal) > posOnBar(calcRESXto100(ld->offset))) { - lcdDrawSolidFilledRect(x + X_OFFSET + posOnBar(calcRESXto100(ld->offset)), y + 11, posOnBar(chanVal) - posOnBar(calcRESXto100(ld->offset)), BAR_HEIGHT, MAINVIEW_GRAPHICS_COLOR); + lcdDrawSolidFilledRect(x + posOnBar(calcRESXto100(ld->offset)), y + Y_OUTBAR, posOnBar(chanVal) - posOnBar(calcRESXto100(ld->offset)), BAR_HEIGHT, CUSTOM_COLOR); } else if (posOnBar(chanVal) < posOnBar(calcRESXto100(ld->offset))) { - uint16_t endpoint = x + X_OFFSET + posOnBar(calcRESXto100(ld->offset)); + uint16_t endpoint = x + posOnBar(calcRESXto100(ld->offset)); uint16_t size = posOnBar(calcRESXto100(ld->offset)) - posOnBar(chanVal); - lcdDrawSolidFilledRect(endpoint - size, y + 11, size, BAR_HEIGHT, MAINVIEW_GRAPHICS_COLOR); + lcdDrawSolidFilledRect(endpoint - size, y + Y_OUTBAR, size, BAR_HEIGHT, CUSTOM_COLOR); } - if (safetyCh[channel] != OVERRIDE_CHANNEL_UNDEFINED) lcd->drawBitmap(x + 3, y + 5, locked_bmp); - if (ld->revert) lcd->drawBitmap(x + 16, y + 5, inver_bmp); - lcd->drawSolidVerticalLine(x + X_OFFSET + COLUMN_SIZE / 2, y + 11, BAR_HEIGHT, TEXT_COLOR); + if (safetyCh[channel] != OVERRIDE_CHANNEL_UNDEFINED) lcd->drawBitmap(x -X_OFFSET + 7, y + 7, locked_bmp); + if (ld->revert) lcd->drawBitmap(x -X_OFFSET + 7, y + 25, inver_bmp); + lcd->drawSolidVerticalLine(x + COLUMN_SIZE / 2, y + Y_OUTBAR, BAR_HEIGHT, TEXT_COLOR); } -bool menuOutputsMonitor(evt_t event, uint8_t page) +bool menuChannelsMonitor(evt_t event, uint8_t page) { - uint8_t channel = 16 * page; - uint16_t x = 1, y = Y_OFFSET; - for (uint8_t i = 0; i < 8; i++, channel++, y += ROW_HEIGHT) { + uint8_t channel = 8 * page; + coord_t x = X_OFFSET, y = Y_OFFSET; + + drawStatusText(STR_MONITOR_CHANNELS_DESC); + for (uint8_t i = 0; i < 4; i++, channel++, y += ROW_HEIGHT) { drawSingleOutputBar(x, y, channel); + drawSingleMixerBar(x, y + Y_MIXBAR, channel); } - x = 1 + LCD_W / 2; + x = 1 + LCD_W / 2 + X_OFFSET; y = Y_OFFSET; - for (uint8_t i = 0; i < 8; i++, channel++, y += ROW_HEIGHT) { + for (uint8_t i = 0; i < 4; i++, channel++, y += ROW_HEIGHT) { drawSingleOutputBar(x, y, channel); + drawSingleMixerBar(x, y + Y_MIXBAR, channel); } return true; } -bool menuOutputs1(evt_t event) +bool menuChannels1(evt_t event) { - MENU(STR_MONITOR_OUTPUTS1, MONITOR_ICONS, menuTabMonitors, e_MonOutputs1, 0, { 0 }); - lastMonitorPage = e_MonOutputs1; - return menuOutputsMonitor(event, 0); + MENU(STR_MONITOR_CHANNELS1, MONITOR_ICONS, menuTabMonitors, e_MonChannels1, 0, { 0 }); + lastMonitorPage = e_MonChannels1; + return menuChannelsMonitor(event, 0); } -bool menuOutputs2(evt_t event) +bool menuChannels2(evt_t event) { - MENU(STR_MONITOR_OUTPUTS2, MONITOR_ICONS, menuTabMonitors, e_MonOutputs2, 0, { 0 }); - lastMonitorPage = e_MonOutputs2; - return menuOutputsMonitor(event, 1); + MENU(STR_MONITOR_CHANNELS2, MONITOR_ICONS, menuTabMonitors, e_MonChannels2, 0, { 0 }); + lastMonitorPage = e_MonChannels2; + return menuChannelsMonitor(event, 1); } -bool menuMixersMonitor(evt_t event, uint8_t page) + +bool menuChannels3(evt_t event) { - uint8_t channel = 16 * page; - uint16_t x = 1, y = Y_OFFSET; - for (uint8_t i = 0; i < 8; i++, channel++, y += ROW_HEIGHT) { - drawSingleMixerBar(x, y, channel); - } - x = 1 + LCD_W / 2; - y = Y_OFFSET; - for (uint8_t i = 0; i < 8; i++, channel++, y += ROW_HEIGHT) { - drawSingleMixerBar(x, y, channel); - } - return true; + MENU(STR_MONITOR_CHANNELS3, MONITOR_ICONS, menuTabMonitors, e_MonChannels3, 0, { 0 }); + lastMonitorPage = e_MonChannels3; + return menuChannelsMonitor(event, 2); } -bool menuMixers1(evt_t event) +bool menuChannels4(evt_t event) { - MENU(STR_MONITOR_MIXERS1, MONITOR_ICONS, menuTabMonitors, e_MonMixers1, 0, { 0 }); - lastMonitorPage = e_MonMixers1; - return menuMixersMonitor(event, 0); -} - -bool menuMixers2(evt_t event) -{ - MENU(STR_MONITOR_MIXERS2, MONITOR_ICONS, menuTabMonitors, e_MonMixers2, 0, { 0 }); - lastMonitorPage = e_MonMixers2; - return menuMixersMonitor(event, 1); + MENU(STR_MONITOR_CHANNELS4, MONITOR_ICONS, menuTabMonitors, e_MonChannels4, 0, { 0 }); + lastMonitorPage = e_MonChannels4; + return menuChannelsMonitor(event, 3); } diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 2b4e29a96..d6535cfcd 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -365,11 +365,12 @@ const pm_char STR_MENUTEMPLATES[] PROGMEM = TR_MENUTEMPLATES; const pm_char STR_MENUSTAT[] PROGMEM = TR_MENUSTAT; const pm_char STR_MENUDEBUG[] PROGMEM = TR_MENUDEBUG; -const pm_char STR_MONITOR_OUTPUTS1[] PROGMEM = TR_MONITOR_OUTPUTS1; -const pm_char STR_MONITOR_OUTPUTS2[] PROGMEM = TR_MONITOR_OUTPUTS2; +const pm_char STR_MONITOR_CHANNELS1[] PROGMEM = TR_MONITOR_CHANNELS1; +const pm_char STR_MONITOR_CHANNELS2[] PROGMEM = TR_MONITOR_CHANNELS2; const pm_char STR_MONITOR_SWITCHES[] PROGMEM = TR_MONITOR_SWITCHES; -const pm_char STR_MONITOR_MIXERS1[] PROGMEM = TR_MONITOR_MIXERS1; -const pm_char STR_MONITOR_MIXERS2[] PROGMEM = TR_MONITOR_MIXERS2; +const pm_char STR_MONITOR_CHANNELS3[] PROGMEM = TR_MONITOR_CHANNELS3; +const pm_char STR_MONITOR_CHANNELS4[] PROGMEM = TR_MONITOR_CHANNELS4; +const pm_char STR_MONITOR_CHANNELS_DESC[] PROGMEM = TR_MONITOR_CHANNELS_DESC; const pm_char STR_MENUGLOBALVARS[] PROGMEM = TR_MENUGLOBALVARS; #if defined(DSM2) || defined(PXX) diff --git a/radio/src/translations.h b/radio/src/translations.h index 8f2d8844b..816470949 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -564,11 +564,12 @@ extern const pm_char STR_MENUTELEMETRY[]; extern const pm_char STR_MENUTEMPLATES[]; extern const pm_char STR_MENUSTAT[]; extern const pm_char STR_MENUDEBUG[]; -extern const pm_char STR_MONITOR_OUTPUTS1[]; -extern const pm_char STR_MONITOR_OUTPUTS2[]; +extern const pm_char STR_MONITOR_CHANNELS1[]; +extern const pm_char STR_MONITOR_CHANNELS2[]; extern const pm_char STR_MONITOR_SWITCHES[]; -extern const pm_char STR_MONITOR_MIXERS1[]; -extern const pm_char STR_MONITOR_MIXERS2[]; +extern const pm_char STR_MONITOR_CHANNELS3[]; +extern const pm_char STR_MONITOR_CHANNELS4[]; +extern const pm_char STR_MONITOR_CHANNELS_DESC[]; extern const pm_char STR_MENUGLOBALVARS[]; extern const pm_char STR_INVERT_THR[]; extern const pm_char STR_AND_SWITCH[]; @@ -757,7 +758,6 @@ extern const pm_char STR_OWN[]; extern const pm_char STR_ROTARY_ENCODER[]; extern const pm_char STR_DATE[]; extern const pm_char STR_CHANNELS_MONITOR[]; -extern const pm_char STR_MIXERS_MONITOR[]; extern const pm_char STR_PATH_TOO_LONG[]; extern const pm_char STR_VIEW_TEXT[]; extern const pm_char STR_FLASH_BOOTLOADER[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 28fd74bac..eea27f28a 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -847,11 +847,12 @@ #define TR_MENUTEMPLATES "ŠABLONY" #define TR_MENUSTAT "STATISTIKA" #define TR_MENUDEBUG "DIAG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RX číslo", INDENT "Číslo přijímače") #define TR_RECEIVER INDENT "Receiver" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 6f03264c3..a35c2660d 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -851,11 +851,12 @@ #define TR_MENUTEMPLATES "VORLAGEN" #define TR_MENUSTAT "STAT" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "Empf Nr.", INDENT "Modell-Match-Nr.") #define TR_RECEIVER INDENT "Receiver" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 62b1da7da..9ee001ad4 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -865,11 +865,12 @@ #define TR_MENUTEMPLATES "TEMPLATES" #define TR_MENUSTAT "STATS" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RxNum", INDENT "Receiver No.") #define TR_RECEIVER INDENT "Receiver" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 5f925a4f7..6abae21eb 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -815,11 +815,12 @@ #define TR_MENUTEMPLATES "PLANTILLAS" #define TR_MENUSTAT "STATS" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #define TR_RECEIVER_NUM TR("RxNum", INDENT"Receptor No.") #define TR_RECEIVER INDENT "Receiver" #define TR_MULTI_RFTUNE INDENT "RF Freq. fine tune" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 4d667a870..3eb4965cc 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -815,11 +815,12 @@ #define TR_MENUTEMPLATES "TEMPLATES" #define TR_MENUSTAT "STATS" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #define TR_RECEIVER_NUM TR("RxNum", INDENT"Receiver No.") #define TR_RECEIVER INDENT "Receiver" #define TR_MULTI_RFTUNE INDENT "RF Freq. fine tune" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index a283960a8..d6bdc77f6 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -842,11 +842,12 @@ #define TR_MENUTEMPLATES "GABARITS" #define TR_MENUSTAT TR("STATS", "STATISTIQUES") #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "NumRx", INDENT "No. récepteur") #define TR_RECEIVER INDENT "Récepteur" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 7eaf6e2c6..a6d114a30 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -846,11 +846,12 @@ #define TR_MENUTEMPLATES "ESEMPI GUIDA" #define TR_MENUSTAT "STATO" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RxNum", INDENT "Ricevente No.") #define TR_RECEIVER INDENT "Receiver" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index c4dc744ee..99ef2bd3a 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -860,11 +860,12 @@ #define TR_MENUTEMPLATES "SJABLONEN" #define TR_MENUSTAT "STAT" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RxNum", INDENT "Receiver No.") #define TR_RECEIVER INDENT "Receiver" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index dca12b4a4..6c3af3595 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -848,11 +848,12 @@ #define TR_MENUTEMPLATES "SZABLONY" #define TR_MENUSTAT "STAT" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR( INDENT "Nr RX",INDENT "Nr odbiornika") #define TR_RECEIVER INDENT "Receiver" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index d0235cf21..2b31ae375 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -811,11 +811,12 @@ #define TR_MENUTEMPLATES "MODELOS" #define TR_MENUSTAT "REGISTROS" #define TR_MENUDEBUG "DEPURAR" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #define TR_RECEIVER_NUM "RxNum" #define TR_RECEIVER INDENT "Receiver" #define TR_SYNCMENU "Sync [MENU]" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index f83ac380c..b199d8c25 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -859,11 +859,12 @@ #define TR_MENUTEMPLATES "MALLAR" #define TR_MENUSTAT "STATISTIK" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_OUTPUTS1 "OUTPUTS MONITOR 1/16" -#define TR_MONITOR_OUTPUTS2 "OUTPUTS MONITOR 17/32" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_MIXERS1 "MIXERS MONITOR 1/16" -#define TR_MONITOR_MIXERS2 "MIXERS MONITOR 17/32" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "RxNum", INDENT "Mottagare Nr.") #define TR_RECEIVER INDENT "Receiver"