From e506a001bfe7ec2ca68becab18c56629aa1fe089 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Tue, 2 Sep 2014 10:18:17 +0200 Subject: [PATCH] const language packs (can't be const in simu (linker can't find it)) --- radio/src/gui/menu_general.cpp | 24 +++++----- radio/src/gui/menus.h | 2 +- radio/src/translations.cpp | 60 ++++++++++++------------ radio/src/translations.h | 85 ++++++++++++++++++---------------- 4 files changed, 89 insertions(+), 82 deletions(-) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index a22495a7e..6e25fabe5 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -41,19 +41,19 @@ const pm_uchar sticks[] PROGMEM = { }; #if defined(CPUARM) -extern LanguagePack czLanguagePack; -extern LanguagePack enLanguagePack; -extern LanguagePack esLanguagePack; -extern LanguagePack frLanguagePack; -extern LanguagePack deLanguagePack; -extern LanguagePack itLanguagePack; -extern LanguagePack plLanguagePack; -extern LanguagePack ptLanguagePack; -extern LanguagePack skLanguagePack; -extern LanguagePack seLanguagePack; -extern LanguagePack huLanguagePack; +extern LP_CONST LanguagePack czLanguagePack; +extern LP_CONST LanguagePack enLanguagePack; +extern LP_CONST LanguagePack esLanguagePack; +extern LP_CONST LanguagePack frLanguagePack; +extern LP_CONST LanguagePack deLanguagePack; +extern LP_CONST LanguagePack itLanguagePack; +extern LP_CONST LanguagePack plLanguagePack; +extern LP_CONST LanguagePack ptLanguagePack; +extern LP_CONST LanguagePack skLanguagePack; +extern LP_CONST LanguagePack seLanguagePack; +extern LP_CONST LanguagePack huLanguagePack; -LanguagePack * languagePacks[] = { +const LanguagePack * LP_CONST languagePacks[] = { // alphabetical order &czLanguagePack, &deLanguagePack, diff --git a/radio/src/gui/menus.h b/radio/src/gui/menus.h index dad886430..eb0f4c1d5 100644 --- a/radio/src/gui/menus.h +++ b/radio/src/gui/menus.h @@ -40,7 +40,7 @@ #define NO_HI_LEN 25 void displayScreenIndex(uint8_t index, uint8_t count, uint8_t attr); -inline void displayColumnHeader(const char **headers, uint8_t index) +inline void displayColumnHeader(const char * const *headers, uint8_t index) { lcd_putsAtt(17*FW, 0, headers[index], 0); } diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index e4326afc0..298cdb09e 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -224,7 +224,7 @@ const pm_char STR_ALARMWARNING[] PROGMEM = TR_ALARMWARNING; const pm_char STR_RENAVIG[] PROGMEM = TR_RENAVIG; #endif const pm_char STR_THROTTLEREVERSE[] PROGMEM = TR_THROTTLEREVERSE; -const pm_char STR_TIMER_NAME[] PROGMEM = TR_TIMER_NAME; +const pm_char STR_TIMER_NAME[] PROGMEM = TR_TIMER_NAME; const pm_char STR_MINUTEBEEP[] PROGMEM = TR_MINUTEBEEP; const pm_char STR_BEEPCOUNTDOWN[] PROGMEM = TR_BEEPCOUNTDOWN; const pm_char STR_PERSISTENT[] PROGMEM = TR_PERSISTENT; @@ -243,12 +243,12 @@ const pm_char STR_SWITCHWARNING[] PROGMEM = TR_SWITCHWARNING; const pm_char STR_TIMEZONE[] PROGMEM = TR_TIMEZONE; const pm_char STR_GPSCOORD[] PROGMEM = TR_GPSCOORD; const pm_char STR_VARIO[] PROGMEM = TR_VARIO; -const pm_char STR_PITCH_AT_ZERO[] PROGMEM = TR_PITCH_AT_ZERO; -const pm_char STR_PITCH_AT_MAX[] PROGMEM = TR_PITCH_AT_MAX; -const pm_char STR_REPEAT_AT_ZERO[] PROGMEM = TR_REPEAT_AT_ZERO; +const pm_char STR_PITCH_AT_ZERO[] PROGMEM = TR_PITCH_AT_ZERO; +const pm_char STR_PITCH_AT_MAX[] PROGMEM = TR_PITCH_AT_MAX; +const pm_char STR_REPEAT_AT_ZERO[] PROGMEM = TR_REPEAT_AT_ZERO; #endif const pm_char STR_RXCHANNELORD[] PROGMEM = TR_RXCHANNELORD; -const pm_char STR_SWITCHES_DELAY[] PROGMEM = TR_SWITCHES_DELAY; +const pm_char STR_SWITCHES_DELAY[] PROGMEM = TR_SWITCHES_DELAY; const pm_char STR_SLAVE[] PROGMEM = TR_SLAVE; const pm_char STR_MODESRC[] PROGMEM = TR_MODESRC; const pm_char STR_MULTIPLIER[] PROGMEM = TR_MULTIPLIER; @@ -420,7 +420,7 @@ const pm_char STR_MODELS_EXT[] PROGMEM = MODELS_EXT; const pm_char STR_WARNING[] PROGMEM = TR_WARNING; const pm_char STR_EEPROMWARN[] PROGMEM = TR_EEPROMWARN; -const pm_char STR_EEPROM_CONVERTING[] PROGMEM = TR_EEPROM_CONVERTING; +const pm_char STR_EEPROM_CONVERTING[] PROGMEM = TR_EEPROM_CONVERTING; const pm_char STR_THROTTLEWARN[] PROGMEM = TR_THROTTLEWARN; const pm_char STR_ALARMSWARN[] PROGMEM = TR_ALARMSWARN; const pm_char STR_SWITCHWARN[] PROGMEM = TR_SWITCHWARN; @@ -445,10 +445,10 @@ const pm_char STR_SDHC_CARD[] PROGMEM = TR_SDHC_CARD; const pm_char STR_NO_SOUNDS_ON_SD[] PROGMEM = TR_NO_SOUNDS_ON_SD; const pm_char STR_NO_MODELS_ON_SD[] PROGMEM = TR_NO_MODELS_ON_SD; const pm_char STR_NO_BITMAPS_ON_SD[] PROGMEM = TR_NO_BITMAPS_ON_SD; -const pm_char STR_NO_SCRIPTS_ON_SD[] PROGMEM = TR_NO_SCRIPTS_ON_SD; +const pm_char STR_NO_SCRIPTS_ON_SD[] PROGMEM = TR_NO_SCRIPTS_ON_SD; const pm_char STR_PLAY_FILE[] PROGMEM = TR_PLAY_FILE; const pm_char STR_ASSIGN_BITMAP[] PROGMEM = TR_ASSIGN_BITMAP; -const pm_char STR_EXECUTE_FILE[] PROGMEM = TR_EXECUTE_FILE; +const pm_char STR_EXECUTE_FILE[] PROGMEM = TR_EXECUTE_FILE; const pm_char STR_DELETE_FILE[] PROGMEM = TR_DELETE_FILE; const pm_char STR_COPY_FILE[] PROGMEM = TR_COPY_FILE; const pm_char STR_RENAME_FILE[] PROGMEM = TR_RENAME_FILE; @@ -474,13 +474,13 @@ const pm_char STR_OWN[] PROGMEM = TR_OWN; const pm_char STR_ROTARY_ENCODER[] PROGMEM = TR_ROTARY_ENCODER; const pm_char STR_DATE[] PROGMEM = TR_DATE; const pm_char STR_CHANNELS_MONITOR[] PROGMEM = TR_CHANNELS_MONITOR; -const pm_char STR_PATH_TOO_LONG[] PROGMEM = TR_PATH_TOO_LONG; -const pm_char STR_VIEW_TEXT[] PROGMEM = TR_VIEW_TEXT; -const pm_char STR_FLASH_BOOTLOADER[] PROGMEM = TR_FLASH_BOOTLOADER; -const pm_char STR_WRITING[] PROGMEM = TR_WRITING; +const pm_char STR_PATH_TOO_LONG[] PROGMEM = TR_PATH_TOO_LONG; +const pm_char STR_VIEW_TEXT[] PROGMEM = TR_VIEW_TEXT; +const pm_char STR_FLASH_BOOTLOADER[] PROGMEM = TR_FLASH_BOOTLOADER; +const pm_char STR_WRITING[] PROGMEM = TR_WRITING; const pm_char STR_CONFIRM_FORMAT[] PROGMEM = TR_CONFIRM_FORMAT; const pm_char STR_EEBACKUP[] PROGMEM = TR_EEBACKUP; -const pm_char STR_TOO_MANY_LUA_SCRIPTS[] PROGMEM = TR_TO_MANY_LUA_SCRIPTS; +const pm_char STR_TOO_MANY_LUA_SCRIPTS[] PROGMEM = TR_TO_MANY_LUA_SCRIPTS; const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR; #if LCD_W >= 212 @@ -492,9 +492,9 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR; #endif #if LCD_W >= 212 - const char * STR_PHASES_HEADERS[] = TR_PHASES_HEADERS; - const char * STR_LIMITS_HEADERS[] = TR_LIMITS_HEADERS; - const char * STR_CSW_HEADERS[] = TR_CSW_HEADERS; + const char * const STR_PHASES_HEADERS[] = TR_PHASES_HEADERS; + const char * const STR_LIMITS_HEADERS[] = TR_LIMITS_HEADERS; + const char * const STR_CSW_HEADERS[] = TR_CSW_HEADERS; #endif #if defined(CPUARM) @@ -515,23 +515,23 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR; const pm_char STR_BYTES[] PROGMEM = TR_BYTES; const pm_char STR_ANTENNAPROBLEM[] PROGMEM = TR_ANTENNAPROBLEM; const pm_char STR_MODULE[] PROGMEM = TR_MODULE; - const pm_char STR_ENABLE_POPUP[] PROGMEM = TR_ENABLE_POPUP; - const pm_char STR_DISABLE_POPUP[] PROGMEM = TR_DISABLE_POPUP; - const pm_char STR_CURVE_PRESET[] PROGMEM = TR_CURVE_PRESET; - const pm_char STR_PRESET[] PROGMEM = TR_PRESET; - const pm_char STR_MIRROR[] PROGMEM = TR_MIRROR; - const pm_char STR_CLEAR[] PROGMEM = TR_CLEAR; + const pm_char STR_ENABLE_POPUP[] PROGMEM = TR_ENABLE_POPUP; + const pm_char STR_DISABLE_POPUP[] PROGMEM = TR_DISABLE_POPUP; + const pm_char STR_CURVE_PRESET[] PROGMEM = TR_CURVE_PRESET; + const pm_char STR_PRESET[] PROGMEM = TR_PRESET; + const pm_char STR_MIRROR[] PROGMEM = TR_MIRROR; + const pm_char STR_CLEAR[] PROGMEM = TR_CLEAR; const pm_char STR_RESET[] PROGMEM = TR_RESET; - const pm_char STR_COUNT[] PROGMEM = TR_COUNT; - const pm_char STR_PT[] PROGMEM = TR_PT; - const pm_char STR_PTS[] PROGMEM = TR_PTS; - const pm_char STR_SMOOTH[] PROGMEM = TR_SMOOTH; - const pm_char STR_COPY_STICKS_TO_OFS[] PROGMEM = TR_COPY_STICKS_TO_OFS; -const pm_char STR_COPY_TRIMS_TO_OFS[] PROGMEM = TR_COPY_TRIMS_TO_OFS; + const pm_char STR_COUNT[] PROGMEM = TR_COUNT; + const pm_char STR_PT[] PROGMEM = TR_PT; + const pm_char STR_PTS[] PROGMEM = TR_PTS; + const pm_char STR_SMOOTH[] PROGMEM = TR_SMOOTH; + const pm_char STR_COPY_STICKS_TO_OFS[] PROGMEM = TR_COPY_STICKS_TO_OFS; +const pm_char STR_COPY_TRIMS_TO_OFS[] PROGMEM = TR_COPY_TRIMS_TO_OFS; const pm_char STR_TOP_BAR[] PROGMEM = TR_TOP_BAR; const pm_char STR_ALTITUDE[] PROGMEM = TR_ALTITUDE; - const pm_char STR_SCALE[] PROGMEM = TR_SCALE; - const pm_char STR_VIEW_CHANNELS[] PROGMEM = TR_VIEW_CHANNELS; + const pm_char STR_SCALE[] PROGMEM = TR_SCALE; + const pm_char STR_VIEW_CHANNELS[] PROGMEM = TR_VIEW_CHANNELS; const pm_char STR_POTWARNING[] PROGMEM = TR_POTWARNING; const pm_char STR_UART3MODE[] PROGMEM = TR_UART3MODE; const pm_char STR_THROTTLE_LABEL[] PROGMEM = TR_THROTTLE_LABEL; diff --git a/radio/src/translations.h b/radio/src/translations.h index 18c441b92..c6312007a 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -372,7 +372,7 @@ extern const pm_char STR_BLADES[]; extern const pm_char STR_SCREEN[]; extern const pm_char STR_SOUND_LABEL[]; extern const pm_char STR_LENGTH[]; -extern const pm_char STR_BEEP_LENGTH[]; +extern const pm_char STR_BEEP_LENGTH[]; #if defined(CPUARM) extern const pm_char STR_BEEP_LENGTH[]; #else @@ -392,7 +392,7 @@ extern const pm_char STR_MEMORYWARNING[]; extern const pm_char STR_ALARMWARNING[]; extern const pm_char STR_RENAVIG[]; extern const pm_char STR_THROTTLEREVERSE[]; -extern const pm_char STR_TIMER_NAME[]; +extern const pm_char STR_TIMER_NAME[]; extern const pm_char STR_MINUTEBEEP[]; extern const pm_char STR_BEEPCOUNTDOWN[]; extern const pm_char STR_PERSISTENT[]; @@ -408,11 +408,11 @@ extern const pm_char STR_SWITCHWARNING[]; extern const pm_char STR_TIMEZONE[]; extern const pm_char STR_GPSCOORD[]; extern const pm_char STR_VARIO[]; -extern const pm_char STR_PITCH_AT_ZERO[]; -extern const pm_char STR_PITCH_AT_MAX[]; -extern const pm_char STR_REPEAT_AT_ZERO[]; +extern const pm_char STR_PITCH_AT_ZERO[]; +extern const pm_char STR_PITCH_AT_MAX[]; +extern const pm_char STR_REPEAT_AT_ZERO[]; extern const pm_char STR_RXCHANNELORD[]; -extern const pm_char STR_SWITCHES_DELAY[]; +extern const pm_char STR_SWITCHES_DELAY[]; extern const pm_char STR_SLAVE[]; extern const pm_char STR_MODESRC[]; extern const pm_char STR_MULTIPLIER[]; @@ -472,8 +472,8 @@ extern const pm_char STR_MENUCURVE[]; extern const pm_char STR_MENULOGICALSWITCH[]; extern const pm_char STR_MENULOGICALSWITCHES[]; extern const pm_char STR_MENUCUSTOMFUNC[]; -extern const pm_char STR_MENUCUSTOMSCRIPTS[]; -extern const pm_char STR_MENUCUSTOMSCRIPT[]; +extern const pm_char STR_MENUCUSTOMSCRIPTS[]; +extern const pm_char STR_MENUCUSTOMSCRIPT[]; extern const pm_char STR_MENUTELEMETRY[]; extern const pm_char STR_MENUTEMPLATES[]; extern const pm_char STR_MENUSTAT[]; @@ -576,7 +576,7 @@ extern const pm_char STR_RESET_BTN[]; extern const pm_char STR_WARNING[]; extern const pm_char STR_EEPROMWARN[]; -extern const pm_char STR_EEPROM_CONVERTING[]; +extern const pm_char STR_EEPROM_CONVERTING[]; extern const pm_char STR_THROTTLEWARN[]; extern const pm_char STR_ALARMSWARN[]; extern const pm_char STR_SWITCHWARN[]; @@ -601,10 +601,10 @@ extern const pm_char STR_SDHC_CARD[]; extern const pm_char STR_NO_SOUNDS_ON_SD[]; extern const pm_char STR_NO_MODELS_ON_SD[]; extern const pm_char STR_NO_BITMAPS_ON_SD[]; -extern const pm_char STR_NO_SCRIPTS_ON_SD[]; +extern const pm_char STR_NO_SCRIPTS_ON_SD[]; extern const pm_char STR_PLAY_FILE[]; extern const pm_char STR_ASSIGN_BITMAP[]; -extern const pm_char STR_EXECUTE_FILE[]; +extern const pm_char STR_EXECUTE_FILE[]; extern const pm_char STR_DELETE_FILE[]; extern const pm_char STR_COPY_FILE[]; extern const pm_char STR_RENAME_FILE[]; @@ -630,27 +630,34 @@ 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_PATH_TOO_LONG[]; -extern const pm_char STR_VIEW_TEXT[]; -extern const pm_char STR_FLASH_BOOTLOADER[]; -extern const pm_char STR_WRITING[]; +extern const pm_char STR_PATH_TOO_LONG[]; +extern const pm_char STR_VIEW_TEXT[]; +extern const pm_char STR_FLASH_BOOTLOADER[]; +extern const pm_char STR_WRITING[]; extern const pm_char STR_CONFIRM_FORMAT[]; extern const pm_char STR_EEBACKUP[]; -extern const pm_char STR_TOO_MANY_LUA_SCRIPTS[]; -extern const pm_char STR_BLCOLOR[]; +extern const pm_char STR_TOO_MANY_LUA_SCRIPTS[]; +extern const pm_char STR_BLCOLOR[]; #if defined(VOICE) && defined(CPUARM) + +#if defined(SIMU) + #define LP_CONST +#else + #define LP_CONST const +#endif + struct LanguagePack { const char *id; const char *name; void (*playNumber)(getvalue_t number, uint8_t unit, uint8_t flags, uint8_t id); void (*playDuration)(int seconds, uint8_t flags, uint8_t id); }; - extern LanguagePack * languagePacks[]; - extern LanguagePack * currentLanguagePack; + extern const LanguagePack * LP_CONST languagePacks[]; + extern const LanguagePack * currentLanguagePack; extern uint8_t currentLanguagePackIdx; - #define LANGUAGE_PACK_DECLARE(lng, name) LanguagePack lng ## LanguagePack = { #lng, name, lng ## _ ## playNumber, lng ## _ ## playDuration } - #define LANGUAGE_PACK_DECLARE_DEFAULT(lng, name) LANGUAGE_PACK_DECLARE(lng, name); LanguagePack * currentLanguagePack = & lng ## LanguagePack; uint8_t currentLanguagePackIdx + #define LANGUAGE_PACK_DECLARE(lng, name) LP_CONST LanguagePack lng ## LanguagePack = { #lng, name, lng ## _ ## playNumber, lng ## _ ## playDuration } + #define LANGUAGE_PACK_DECLARE_DEFAULT(lng, name) LANGUAGE_PACK_DECLARE(lng, name); const LanguagePack * currentLanguagePack = & lng ## LanguagePack; uint8_t currentLanguagePackIdx inline PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t flags) { currentLanguagePack->playNumber(number, unit, flags, id); } inline PLAY_FUNCTION(playDuration, int seconds, uint8_t flags) { currentLanguagePack->playDuration(seconds, flags, id); } #elif defined(VOICE) @@ -677,9 +684,9 @@ extern const pm_char STR_BLCOLOR[]; #endif #if LCD_W >= 212 - extern const char * STR_PHASES_HEADERS[]; - extern const char * STR_LIMITS_HEADERS[]; - extern const char * STR_CSW_HEADERS[]; + extern const char * const STR_PHASES_HEADERS[]; + extern const char * const STR_LIMITS_HEADERS[]; + extern const char * const STR_CSW_HEADERS[]; #endif #if defined(CPUARM) @@ -699,24 +706,24 @@ extern const pm_char STR_BLCOLOR[]; #if defined(PCBTARANIS) extern const pm_char STR_BYTES[]; extern const pm_char STR_ANTENNAPROBLEM[]; - extern const pm_char STR_MODULE[]; - extern const pm_char STR_ENABLE_POPUP[]; - extern const pm_char STR_DISABLE_POPUP[]; - extern const pm_char STR_CURVE_PRESET[]; - extern const pm_char STR_PRESET[]; - extern const pm_char STR_MIRROR[]; - extern const pm_char STR_CLEAR[]; + extern const pm_char STR_MODULE[]; + extern const pm_char STR_ENABLE_POPUP[]; + extern const pm_char STR_DISABLE_POPUP[]; + extern const pm_char STR_CURVE_PRESET[]; + extern const pm_char STR_PRESET[]; + extern const pm_char STR_MIRROR[]; + extern const pm_char STR_CLEAR[]; extern const pm_char STR_RESET[]; - extern const pm_char STR_COUNT[]; - extern const pm_char STR_PT[]; - extern const pm_char STR_PTS[]; - extern const pm_char STR_SMOOTH[]; - extern const pm_char STR_COPY_STICKS_TO_OFS[]; -extern const pm_char STR_COPY_TRIMS_TO_OFS[]; + extern const pm_char STR_COUNT[]; + extern const pm_char STR_PT[]; + extern const pm_char STR_PTS[]; + extern const pm_char STR_SMOOTH[]; + extern const pm_char STR_COPY_STICKS_TO_OFS[]; +extern const pm_char STR_COPY_TRIMS_TO_OFS[]; extern const pm_char STR_TOP_BAR[]; extern const pm_char STR_ALTITUDE[]; - extern const pm_char STR_SCALE[]; - extern const pm_char STR_VIEW_CHANNELS[]; + extern const pm_char STR_SCALE[]; + extern const pm_char STR_VIEW_CHANNELS[]; extern const pm_char STR_POTWARNING[]; extern const pm_char STR_UART3MODE[]; extern const pm_char STR_THROTTLE_LABEL[];