From ddc424de50535aaba083740cee8f00a37f189159 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 22 Jun 2016 23:09:02 +0200 Subject: [PATCH] [Horus] Use of templates to avoid duplicated code in monitors screens --- radio/src/gui/horus/menus.h | 3 +- radio/src/gui/horus/view_channels.cpp | 50 +++++++-------------------- radio/src/translations.cpp | 5 +-- radio/src/translations.h | 7 ++-- radio/src/translations/en.h.txt | 8 ++--- radio/src/translations/fr.h.txt | 10 +++--- 6 files changed, 27 insertions(+), 56 deletions(-) diff --git a/radio/src/gui/horus/menus.h b/radio/src/gui/horus/menus.h index a2ba0688b..41a6d8d04 100644 --- a/radio/src/gui/horus/menus.h +++ b/radio/src/gui/horus/menus.h @@ -232,7 +232,8 @@ static const MenuHandlerFunc menuTabStats[] PROGMEM = { enum EnumTabMonitors { - e_MonChannels1, + e_MonChannelsFirst, + e_MonChannels1 = e_MonChannelsFirst, e_MonChannels2, e_MonChannels3, e_MonChannels4, diff --git a/radio/src/gui/horus/view_channels.cpp b/radio/src/gui/horus/view_channels.cpp index 7d967cf32..8c2b1e2fe 100644 --- a/radio/src/gui/horus/view_channels.cpp +++ b/radio/src/gui/horus/view_channels.cpp @@ -29,17 +29,22 @@ #define Y_OUTBAR 15 #define Y_MIXBAR 28 -bool menuChannels1(evt_t); -bool menuChannels2(evt_t); -bool menuChannels3(evt_t); -bool menuChannels4(evt_t); +bool menuChannelsMonitor(evt_t event, uint8_t page); bool menuLogicalSwitches(evt_t); +template +bool menuChannelsMonitor(evt_t event) +{ + lastMonitorPage = e_MonChannelsFirst + index; + MENU(STR_MONITOR_CHANNELS[index], MONITOR_ICONS, menuTabMonitors, lastMonitorPage, 0, { 0 }); + return menuChannelsMonitor(event, index); +} + const MenuHandlerFunc menuTabMonitors[] PROGMEM = { - menuChannels1, - menuChannels2, - menuChannels3, - menuChannels4, + menuChannelsMonitor<0>, + menuChannelsMonitor<1>, + menuChannelsMonitor<2>, + menuChannelsMonitor<3>, menuLogicalSwitches }; @@ -152,32 +157,3 @@ bool menuChannelsMonitor(evt_t event, uint8_t page) } return true; } - -bool menuChannels1(evt_t event) -{ - MENU(STR_MONITOR_CHANNELS1, MONITOR_ICONS, menuTabMonitors, e_MonChannels1, 0, { 0 }); - lastMonitorPage = e_MonChannels1; - return menuChannelsMonitor(event, 0); -} - -bool menuChannels2(evt_t event) -{ - MENU(STR_MONITOR_CHANNELS2, MONITOR_ICONS, menuTabMonitors, e_MonChannels2, 0, { 0 }); - lastMonitorPage = e_MonChannels2; - return menuChannelsMonitor(event, 1); -} - - -bool menuChannels3(evt_t event) -{ - MENU(STR_MONITOR_CHANNELS3, MONITOR_ICONS, menuTabMonitors, e_MonChannels3, 0, { 0 }); - lastMonitorPage = e_MonChannels3; - return menuChannelsMonitor(event, 2); -} - -bool menuChannels4(evt_t event) -{ - 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 d6535cfcd..37c47a551 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -365,11 +365,8 @@ 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_CHANNELS1[] PROGMEM = TR_MONITOR_CHANNELS1; -const pm_char STR_MONITOR_CHANNELS2[] PROGMEM = TR_MONITOR_CHANNELS2; +const char * const STR_MONITOR_CHANNELS[] = { TR_MONITOR_CHANNELS1, TR_MONITOR_CHANNELS2, TR_MONITOR_CHANNELS3, TR_MONITOR_CHANNELS4 }; const pm_char STR_MONITOR_SWITCHES[] PROGMEM = TR_MONITOR_SWITCHES; -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; diff --git a/radio/src/translations.h b/radio/src/translations.h index 816470949..970ac4fdd 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -564,12 +564,9 @@ 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_CHANNELS1[]; -extern const pm_char STR_MONITOR_CHANNELS2[]; +extern const char * const STR_MONITOR_CHANNELS[]; extern const pm_char STR_MONITOR_SWITCHES[]; -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_MONITOR_CHANNELS_DESC[]; extern const pm_char STR_MENUGLOBALVARS[]; extern const pm_char STR_INVERT_THR[]; extern const pm_char STR_AND_SWITCH[]; diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 9ee001ad4..734a0dcbf 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -865,11 +865,11 @@ #define TR_MENUTEMPLATES "TEMPLATES" #define TR_MENUSTAT "STATS" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" -#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" +#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1-8" +#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9-16" +#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17-24" +#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25-32" #define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#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.") diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index d6bdc77f6..e5cdee870 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -842,11 +842,11 @@ #define TR_MENUTEMPLATES "GABARITS" #define TR_MENUSTAT TR("STATS", "STATISTIQUES") #define TR_MENUDEBUG "DEBUG" -#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_CHANNELS3 "CHANNELS MONITOR 17/24" -#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" +#define TR_MONITOR_CHANNELS1 "VOIES 1-8" +#define TR_MONITOR_CHANNELS2 "VOIES 9-16" +#define TR_MONITOR_CHANNELS3 "VOIES 17-24" +#define TR_MONITOR_CHANNELS4 "VOIES 25-32" +#define TR_MONITOR_SWITCHES "INTERS LOGIQUES" #define TR_MONITOR_CHANNELS_DESC "RED : Outputs, GREEN : Mixers" #if defined(CPUARM) #define TR_RECEIVER_NUM TR(INDENT "NumRx", INDENT "No. récepteur")