Skip to content

Commit 51b4ded

Browse files
author
philmoz
committed
Add all language translations to companion simulator & radios with enough FLASH & RAM.
1 parent 6a1d150 commit 51b4ded

File tree

317 files changed

+264585
-392221
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

317 files changed

+264585
-392221
lines changed

companion/src/generaledit/generalsetup.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,7 @@ void GeneralSetupPanel::populateVoiceLangCB()
422422
{ tr("Danish"), "da" },
423423
{ tr("Dutch"), "nl" },
424424
{ tr("English"), "en" },
425+
{ tr("Finnish"), "fi" },
425426
{ tr("French"), "fr" },
426427
{ tr("German"), "de" },
427428
{ tr("Hebrew"), "he" },
@@ -435,6 +436,7 @@ void GeneralSetupPanel::populateVoiceLangCB()
435436
{ tr("Slovak"), "sk" },
436437
{ tr("Spanish"), "es" },
437438
{ tr("Swedish"), "se" },
439+
{ tr("Taiwanese"), "tw" },
438440
{ tr("Ukrainian"), "ua" },
439441
{ NULL, NULL }};
440442

radio/src/CMakeLists.txt

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ include(Bitmaps)
33

44
set(PCB_TYPES X9LITE X9LITES X7 XLITE XLITES X9D X9D+ X9E X10 X12S NV14 PL18 T15PRO ST16 PA01 TX15)
55
set(RADIO_LANGUAGES CN CZ DA DE EN ES FI FR HE HU IT JP KO NL PL PT RU SE SK TW UA)
6-
set(TTS_LANGUAGES CN CZ DA DE EN ES FR HE HU IT JP KO NL PL PT RU SE SK UA)
6+
set(TTS_LANGUAGES CN CZ DA DE EN ES FI FR HE HU IT JP KO NL PL PT RU SE SK TW UA)
77

88
set(PCB "X9D+" CACHE STRING "Radio type, one of: ${PCB_TYPES}")
99
set_property(CACHE PCB PROPERTY STRINGS ${PCB_TYPES})
@@ -60,6 +60,12 @@ else()
6060
option(USBJ_EX "Enable USB Joystick Extension" ON)
6161
endif()
6262

63+
if(NATIVE_BUILD)
64+
option(ALL_LANGUAGES "Enable runtime language selection" ON)
65+
else()
66+
option(ALL_LANGUAGES "Enable runtime language selection" OFF)
67+
endif()
68+
6369
if(PCB STREQUAL X7 AND PCBREV STREQUAL LR3PRO)
6470
option(POWER_LED_BLUE "Override Power LED to be normally Blue" ON)
6571
else()
@@ -454,6 +460,31 @@ if(GUI)
454460
endforeach()
455461
endif()
456462

463+
if(ALL_LANGUAGES)
464+
add_definitions(-DALL_LANGS)
465+
set(SRC
466+
${SRC}
467+
translations/sim/lang_cn.cpp
468+
translations/sim/lang_cz.cpp
469+
translations/sim/lang_da.cpp
470+
translations/sim/lang_de.cpp
471+
translations/sim/lang_en.cpp
472+
translations/sim/lang_es.cpp
473+
translations/sim/lang_fi.cpp
474+
translations/sim/lang_fr.cpp
475+
translations/sim/lang_he.cpp
476+
translations/sim/lang_it.cpp
477+
translations/sim/lang_jp.cpp
478+
translations/sim/lang_ko.cpp
479+
translations/sim/lang_nl.cpp
480+
translations/sim/lang_pl.cpp
481+
translations/sim/lang_pt.cpp
482+
translations/sim/lang_ru.cpp
483+
translations/sim/lang_se.cpp
484+
translations/sim/lang_tw.cpp
485+
translations/sim/lang_ua.cpp
486+
)
487+
endif()
457488

458489
if(USBJ_EX)
459490
add_definitions(-DUSBJ_EX)

radio/src/MultiSubtypeDefs.h

Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -62,22 +62,23 @@
6262

6363
#define STR_MULTI_DEFAULT QT_TRANSLATE_NOOP("Multiprotocols", "DEFAULT")
6464
STRLIST(NO_SUBTYPE, {STR_MULTI_DEFAULT})
65+
#define STR_DEF(x) x
6566
#elif defined(MULTIMODULE)
6667
#define STRLIST(x, ...) const char* const x[] = __VA_ARGS__;
6768
#define PROTODEF(...) const mm_protocol_definition multi_protocols[] = __VA_ARGS__
6869

69-
const char* const mm_options_strings::options[] = {
70+
STR_TYP const mm_options_strings::options[] = {
7071
nullptr,
71-
STR_MULTI_OPTION,
72-
STR_MULTI_RFTUNE,
73-
STR_MULTI_VIDFREQ,
74-
STR_MULTI_FIXEDID,
75-
STR_MULTI_TELEMETRY,
76-
STR_MULTI_SERVOFREQ,
77-
STR_MULTI_MAX_THROW,
78-
STR_MULTI_RFCHAN,
79-
STR_MULTI_RFPOWER,
80-
STR_MULTI_WBUS // probably not used by MPM anymore
72+
STR_DEF(STR_MULTI_OPTION),
73+
STR_DEF(STR_MULTI_RFTUNE),
74+
STR_DEF(STR_MULTI_VIDFREQ),
75+
STR_DEF(STR_MULTI_FIXEDID),
76+
STR_DEF(STR_MULTI_TELEMETRY),
77+
STR_DEF(STR_MULTI_SERVOFREQ),
78+
STR_DEF(STR_MULTI_MAX_THROW),
79+
STR_DEF(STR_MULTI_RFCHAN),
80+
STR_DEF(STR_MULTI_RFPOWER),
81+
STR_DEF(STR_MULTI_WBUS) // probably not used by MPM anymore
8182
};
8283

8384
#define NO_SUBTYPE nullptr
@@ -166,85 +167,85 @@ STRLIST(STR_SUBTYPE_NN, { SPARE_SUBTYPE_NAMES })
166167
//
167168
PROTODEF ({
168169
{MODULE_SUBTYPE_MULTI_FLYSKY, 4, false, true, STR_SUBTYPE_FLYSKY, nullptr},
169-
{MODULE_SUBTYPE_MULTI_HUBSAN, 2, false, false, STR_SUBTYPE_HUBSAN, STR_MULTI_VIDFREQ},
170-
{MODULE_SUBTYPE_MULTI_FRSKY, 1, false, false, STR_SUBTYPE_FRSKYD, STR_MULTI_RFTUNE},
170+
{MODULE_SUBTYPE_MULTI_HUBSAN, 2, false, false, STR_SUBTYPE_HUBSAN, STR_DEF(STR_MULTI_VIDFREQ)},
171+
{MODULE_SUBTYPE_MULTI_FRSKY, 1, false, false, STR_SUBTYPE_FRSKYD, STR_DEF(STR_MULTI_RFTUNE)},
171172
{MODULE_SUBTYPE_MULTI_HISKY, 1, true, true, STR_SUBTYPE_HISKY, nullptr},
172173
{MODULE_SUBTYPE_MULTI_V2X2, 2, false, false, STR_SUBTYPE_V2X2, nullptr},
173-
{MODULE_SUBTYPE_MULTI_DSM2, 5, false, true, STR_SUBTYPE_DSM, STR_MULTI_MAX_THROW},
174-
{MODULE_SUBTYPE_MULTI_DEVO, 4, true, true, STR_SUBTYPE_DEVO, STR_MULTI_FIXEDID},
174+
{MODULE_SUBTYPE_MULTI_DSM2, 5, false, true, STR_SUBTYPE_DSM, STR_DEF(STR_MULTI_MAX_THROW)},
175+
{MODULE_SUBTYPE_MULTI_DEVO, 4, true, true, STR_SUBTYPE_DEVO, STR_DEF(STR_MULTI_FIXEDID)},
175176
{MODULE_SUBTYPE_MULTI_YD717, 4, false, false, STR_SUBTYPE_YD717, nullptr},
176177
{MODULE_SUBTYPE_MULTI_KN, 1, false, false, STR_SUBTYPE_KN, nullptr},
177178
{MODULE_SUBTYPE_MULTI_SYMAX, 1, false, false, STR_SUBTYPE_SYMAX, nullptr},
178-
{MODULE_SUBTYPE_MULTI_SLT, 4, false, true, STR_SUBTYPE_SLT, STR_MULTI_RFTUNE},
179+
{MODULE_SUBTYPE_MULTI_SLT, 4, false, true, STR_SUBTYPE_SLT, STR_DEF(STR_MULTI_RFTUNE)},
179180
{MODULE_SUBTYPE_MULTI_CX10, 6, false, false, STR_SUBTYPE_CX10, nullptr},
180181
{MODULE_SUBTYPE_MULTI_CG023, 1, false, false, STR_SUBTYPE_CG023, nullptr},
181-
{MODULE_SUBTYPE_MULTI_BAYANG, 5, false, false, STR_SUBTYPE_BAYANG, STR_MULTI_TELEMETRY},
182-
{MODULE_SUBTYPE_MULTI_FRSKYX, 5, true, false, STR_SUBTYPE_FRSKYX, STR_MULTI_RFTUNE},
182+
{MODULE_SUBTYPE_MULTI_BAYANG, 5, false, false, STR_SUBTYPE_BAYANG, STR_DEF(STR_MULTI_TELEMETRY)},
183+
{MODULE_SUBTYPE_MULTI_FRSKYX, 5, true, false, STR_SUBTYPE_FRSKYX, STR_DEF(STR_MULTI_RFTUNE)},
183184
{MODULE_SUBTYPE_MULTI_ESky, 1, false, true, STR_SUBTYPE_ESky, nullptr},
184185
{MODULE_SUBTYPE_MULTI_MT99XX, 7, false, false, STR_SUBTYPE_MT99, nullptr},
185186
{MODULE_SUBTYPE_MULTI_MJXQ, 6, false, false, STR_SUBTYPE_MJXQ, nullptr},
186187
{MODULE_SUBTYPE_MULTI_SHENQI, 0, false, false, NO_SUBTYPE, nullptr}, //new
187188
{MODULE_SUBTYPE_MULTI_FY326, 1, false, false, STR_SUBTYPE_FY326, nullptr},
188-
{MODULE_SUBTYPE_MULTI_FUTABA, 0, true, true, STR_SUBTYPE_FUTABA, STR_MULTI_RFTUNE},
189+
{MODULE_SUBTYPE_MULTI_FUTABA, 0, true, true, STR_SUBTYPE_FUTABA, STR_DEF(STR_MULTI_RFTUNE)},
189190
{MODULE_SUBTYPE_MULTI_J6PRO, 0, false, true, NO_SUBTYPE, nullptr},
190191
{MODULE_SUBTYPE_MULTI_FQ777, 0, false, false, NO_SUBTYPE, nullptr}, //new
191192
{MODULE_SUBTYPE_MULTI_ASSAN, 0, false, false, NO_SUBTYPE, nullptr}, //new
192-
{MODULE_SUBTYPE_MULTI_FRSKYV, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
193+
{MODULE_SUBTYPE_MULTI_FRSKYV, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
193194
{MODULE_SUBTYPE_MULTI_HONTAI, 3, false, false, STR_SUBTYPE_HONTAI, nullptr},
194195
// MODULE_SUBTYPE_MULTI_OLRS non selectable and masked out for selection
195-
{MODULE_SUBTYPE_MULTI_FS_AFHDS2A, 7, true, true, STR_SUBTYPE_AFHDS2A, STR_MULTI_SERVOFREQ},
196+
{MODULE_SUBTYPE_MULTI_FS_AFHDS2A, 7, true, true, STR_SUBTYPE_AFHDS2A, STR_DEF(STR_MULTI_SERVOFREQ)},
196197
{MODULE_SUBTYPE_MULTI_Q2X2, 2, false, false, STR_SUBTYPE_Q2X2, nullptr},
197198
{MODULE_SUBTYPE_MULTI_WK_2X01, 5, true, true, STR_SUBTYPE_WK2x01, nullptr},
198199
{MODULE_SUBTYPE_MULTI_Q303, 3, false, false, STR_SUBTYPE_Q303, nullptr},
199200
{MODULE_SUBTYPE_MULTI_GW008, 0, false, false, NO_SUBTYPE, nullptr}, //new
200201
{MODULE_SUBTYPE_MULTI_DM002, 0, false, false, NO_SUBTYPE, nullptr}, //new
201-
{MODULE_SUBTYPE_MULTI_CABELL, 7, false, false, STR_SUBTYPE_CABELL, STR_MULTI_OPTION},
202+
{MODULE_SUBTYPE_MULTI_CABELL, 7, false, false, STR_SUBTYPE_CABELL, STR_DEF(STR_MULTI_OPTION)},
202203
{MODULE_SUBTYPE_MULTI_ESKY150, 1, false, false, STR_SUBTYPE_ESKY150, nullptr},
203204
{MODULE_SUBTYPE_MULTI_H83D, 3, false, false, STR_SUBTYPE_H83D, nullptr},
204-
{MODULE_SUBTYPE_MULTI_CORONA, 2, false, false, STR_SUBTYPE_CORONA, STR_MULTI_RFTUNE},
205+
{MODULE_SUBTYPE_MULTI_CORONA, 2, false, false, STR_SUBTYPE_CORONA, STR_DEF(STR_MULTI_RFTUNE)},
205206
// MODULE_SUBTYPE_MULTI_CFLIE non selectable and masked out for selection
206-
{MODULE_SUBTYPE_MULTI_HITEC, 2, false, false, STR_SUBTYPE_HITEC, STR_MULTI_RFTUNE},
207+
{MODULE_SUBTYPE_MULTI_HITEC, 2, false, false, STR_SUBTYPE_HITEC, STR_DEF(STR_MULTI_RFTUNE)},
207208
{MODULE_SUBTYPE_MULTI_WFLY, 0, true, false, STR_SUBTYPE_WFLY, nullptr},
208209
{MODULE_SUBTYPE_MULTI_BUGS, 0, false, false, NO_SUBTYPE, nullptr}, //new
209210
{MODULE_SUBTYPE_MULTI_BUGS_MINI, 1, false, false, STR_SUBTYPE_BUGS_MINI, nullptr},
210211
{MODULE_SUBTYPE_MULTI_TRAXXAS, 0, false, false, STR_SUBTYPE_TRAXXAS, nullptr},
211212
{MODULE_SUBTYPE_MULTI_NCC1701, 0, false, false, NO_SUBTYPE, nullptr}, //new
212213
{MODULE_SUBTYPE_MULTI_E01X, 1, false, false, STR_SUBTYPE_E01X, nullptr},
213-
{MODULE_SUBTYPE_MULTI_V911S, 1, false, false, STR_SUBTYPE_V911S, STR_MULTI_RFTUNE},
214-
{MODULE_SUBTYPE_MULTI_GD00X, 1, false, false, STR_SUBTYPE_GD00X, STR_MULTI_RFTUNE},
214+
{MODULE_SUBTYPE_MULTI_V911S, 1, false, false, STR_SUBTYPE_V911S, STR_DEF(STR_MULTI_RFTUNE)},
215+
{MODULE_SUBTYPE_MULTI_GD00X, 1, false, false, STR_SUBTYPE_GD00X, STR_DEF(STR_MULTI_RFTUNE)},
215216
{MODULE_SUBTYPE_MULTI_V761, 2, false, false, STR_SUBTYPE_V761, nullptr},
216-
{MODULE_SUBTYPE_MULTI_KF606, 2, false, false, STR_SUBTYPE_KF606, STR_MULTI_RFTUNE},
217-
{MODULE_SUBTYPE_MULTI_REDPINE, 1, false, false, STR_SUBTYPE_REDPINE, STR_MULTI_RFTUNE},
217+
{MODULE_SUBTYPE_MULTI_KF606, 2, false, false, STR_SUBTYPE_KF606, STR_DEF(STR_MULTI_RFTUNE)},
218+
{MODULE_SUBTYPE_MULTI_REDPINE, 1, false, false, STR_SUBTYPE_REDPINE, STR_DEF(STR_MULTI_RFTUNE)},
218219
{MODULE_SUBTYPE_MULTI_POTENSIC, 0, false, false, STR_SUBTYPE_POTENSIC, nullptr},
219220
{MODULE_SUBTYPE_MULTI_ZSX, 0, false, false, STR_SUBTYPE_ZSX, nullptr},
220221
{MODULE_SUBTYPE_MULTI_HEIGHT, 1, false, false, STR_SUBTYPE_HEIGHT, nullptr},
221222
// MODULE_SUBTYPE_MULTI_SCANNER non selectable and masked out for selection
222-
{MODULE_SUBTYPE_MULTI_FRSKYX_RX, 3, false, false, STR_SUBTYPE_FRSKYX_RX, STR_MULTI_RFTUNE},
223+
{MODULE_SUBTYPE_MULTI_FRSKYX_RX, 3, false, false, STR_SUBTYPE_FRSKYX_RX, STR_DEF(STR_MULTI_RFTUNE)},
223224
{MODULE_SUBTYPE_MULTI_AFHDS2A_RX, 1, false, false, STR_SUBTYPE_RX, nullptr}, //new
224-
{MODULE_SUBTYPE_MULTI_HOTT, 1, true, false, STR_SUBTYPE_HOTT, STR_MULTI_RFTUNE},
225+
{MODULE_SUBTYPE_MULTI_HOTT, 1, true, false, STR_SUBTYPE_HOTT, STR_DEF(STR_MULTI_RFTUNE)},
225226
{MODULE_SUBTYPE_MULTI_FX, 2, false, false, STR_SUBTYPE_FX, nullptr},
226227
{MODULE_SUBTYPE_MULTI_BAYANG_RX, 1, false, false, STR_SUBTYPE_RX, nullptr}, //new
227228
{MODULE_SUBTYPE_MULTI_PELIKAN, 2, false, true, STR_SUBTYPE_PELIKAN, nullptr},
228229
{MODULE_SUBTYPE_MULTI_TIGER, 0, false, false, NO_SUBTYPE, nullptr}, //new
229-
{MODULE_SUBTYPE_MULTI_XK, 1, false, false, STR_SUBTYPE_XK, STR_MULTI_RFTUNE},
230-
{MODULE_SUBTYPE_MULTI_XN297DUMP, 5, false, false, STR_SUBTYPE_XN297DUMP, STR_MULTI_RFCHAN},
231-
{MODULE_SUBTYPE_MULTI_FRSKYX2, 5, true, false, STR_SUBTYPE_FRSKYX, STR_MULTI_RFTUNE},
230+
{MODULE_SUBTYPE_MULTI_XK, 1, false, false, STR_SUBTYPE_XK, STR_DEF(STR_MULTI_RFTUNE)},
231+
{MODULE_SUBTYPE_MULTI_XN297DUMP, 5, false, false, STR_SUBTYPE_XN297DUMP, STR_DEF(STR_MULTI_RFCHAN)},
232+
{MODULE_SUBTYPE_MULTI_FRSKYX2, 5, true, false, STR_SUBTYPE_FRSKYX, STR_DEF(STR_MULTI_RFTUNE)},
232233
{MODULE_SUBTYPE_MULTI_FRSKY_R9, 7, true, false, STR_SUBTYPE_FRSKYR9, nullptr},
233234
{MODULE_SUBTYPE_MULTI_PROPEL, 0, false, false, STR_SUBTYPE_PROPEL, nullptr},
234-
{MODULE_SUBTYPE_MULTI_FRSKYL, 1, false, false, STR_SUBTYPE_FRSKYL, STR_MULTI_RFTUNE},
235-
{MODULE_SUBTYPE_MULTI_SKYARTEC, 0, false, true, NO_SUBTYPE, STR_MULTI_RFTUNE},
236-
{MODULE_SUBTYPE_MULTI_ESKY150V2, 0, false, true, STR_SUBTYPE_ESKY150V2, STR_MULTI_RFTUNE},
235+
{MODULE_SUBTYPE_MULTI_FRSKYL, 1, false, false, STR_SUBTYPE_FRSKYL, STR_DEF(STR_MULTI_RFTUNE)},
236+
{MODULE_SUBTYPE_MULTI_SKYARTEC, 0, false, true, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
237+
{MODULE_SUBTYPE_MULTI_ESKY150V2, 0, false, true, STR_SUBTYPE_ESKY150V2, STR_DEF(STR_MULTI_RFTUNE)},
237238
{MODULE_SUBTYPE_MULTI_DSM_RX, 3, false, true, STR_SUBTYPE_DSM_RX, nullptr}, //new
238239
{MODULE_SUBTYPE_MULTI_JJRC345, 1, false, false, STR_SUBTYPE_JJRC345, nullptr},
239-
{MODULE_SUBTYPE_MULTI_Q90C, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
240+
{MODULE_SUBTYPE_MULTI_Q90C, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
240241
{MODULE_SUBTYPE_MULTI_KYOSHO, 1, false, true, STR_SUBTYPE_KYOSHO, nullptr},
241-
{MODULE_SUBTYPE_MULTI_RLINK, 2, false, false, STR_SUBTYPE_RLINK, STR_MULTI_RFTUNE},
242+
{MODULE_SUBTYPE_MULTI_RLINK, 2, false, false, STR_SUBTYPE_RLINK, STR_DEF(STR_MULTI_RFTUNE)},
242243
// MODULE_SUBTYPE_MULTI_ELRS non selectable and masked out for selection
243244
{MODULE_SUBTYPE_MULTI_REALACC, 0, false, false, STR_SUBTYPE_REALACC, nullptr},
244-
{MODULE_SUBTYPE_MULTI_OMP, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
245+
{MODULE_SUBTYPE_MULTI_OMP, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
245246
{MODULE_SUBTYPE_MULTI_MLINK, 0, true, false, NO_SUBTYPE, nullptr},
246-
{MODULE_SUBTYPE_MULTI_WFLY2, 0, true, false, STR_SUBTYPE_WFLY2, STR_MULTI_OPTION},
247-
{MODULE_SUBTYPE_MULTI_E016HV2, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
247+
{MODULE_SUBTYPE_MULTI_WFLY2, 0, true, false, STR_SUBTYPE_WFLY2, STR_DEF(STR_MULTI_OPTION)},
248+
{MODULE_SUBTYPE_MULTI_E016HV2, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
248249
{MODULE_SUBTYPE_MULTI_E010R5, 0, false, false, NO_SUBTYPE, nullptr}, //new
249250
{MODULE_SUBTYPE_MULTI_LOLI, 0, true, false, NO_SUBTYPE, nullptr},
250251
{MODULE_SUBTYPE_MULTI_E129, 1, false, false, STR_SUBTYPE_E129, nullptr}, //new
@@ -254,25 +255,25 @@ PROTODEF ({
254255
// MODULE_SUBTYPE_MULTI_IKEAANSLUTA non selectable and masked out for selection
255256
// MODULE_SUBTYPE_MULTI_WILLIFM non selectable and masked out for selection
256257
{MODULE_SUBTYPE_MULTI_LOSI, 0, false, false, NO_SUBTYPE, nullptr}, //new
257-
{MODULE_SUBTYPE_MULTI_MOULDKG, 1, false, false, STR_SUBTYPE_MOULDKG, STR_MULTI_OPTION},
258+
{MODULE_SUBTYPE_MULTI_MOULDKG, 1, false, false, STR_SUBTYPE_MOULDKG, STR_DEF(STR_MULTI_OPTION)},
258259
{MODULE_SUBTYPE_MULTI_XERALL, 0, false, false, NO_SUBTYPE, nullptr}, //new
259260
{MODULE_SUBTYPE_MULTI_MT99XX2, 0, false, false, STR_SUBTYPE_MT992, nullptr},
260261
{MODULE_SUBTYPE_MULTI_KYOSHO2, 0, false, false, STR_SUBTYPE_KYOSHO2, nullptr},
261262
{MODULE_SUBTYPE_MULTI_SCORPIO, 0, false, true, NO_SUBTYPE, nullptr},
262-
{MODULE_SUBTYPE_MULTI_NN1, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
263-
{MODULE_SUBTYPE_MULTI_NN2, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
264-
{MODULE_SUBTYPE_MULTI_NN3, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
265-
{MODULE_SUBTYPE_MULTI_NN4, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
266-
{MODULE_SUBTYPE_MULTI_NN5, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
267-
{MODULE_SUBTYPE_MULTI_NN6, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
268-
{MODULE_SUBTYPE_MULTI_NN7, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
269-
{MODULE_SUBTYPE_MULTI_NN8, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
270-
{MODULE_SUBTYPE_MULTI_NN9, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
271-
{MODULE_SUBTYPE_MULTI_NN10, 7, true, true, STR_SUBTYPE_NN, STR_MULTI_OPTION},
263+
{MODULE_SUBTYPE_MULTI_NN1, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
264+
{MODULE_SUBTYPE_MULTI_NN2, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
265+
{MODULE_SUBTYPE_MULTI_NN3, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
266+
{MODULE_SUBTYPE_MULTI_NN4, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
267+
{MODULE_SUBTYPE_MULTI_NN5, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
268+
{MODULE_SUBTYPE_MULTI_NN6, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
269+
{MODULE_SUBTYPE_MULTI_NN7, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
270+
{MODULE_SUBTYPE_MULTI_NN8, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
271+
{MODULE_SUBTYPE_MULTI_NN9, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
272+
{MODULE_SUBTYPE_MULTI_NN10, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
272273
//
273274
// most likely no longer required
274275
//
275-
{MM_RF_CUSTOM_SELECTED, 0, true, false, NO_SUBTYPE, STR_MULTI_OPTION},
276+
{MM_RF_CUSTOM_SELECTED, 0, true, false, NO_SUBTYPE, STR_DEF(STR_MULTI_OPTION)},
276277

277278
// Sentinel and default for protocols not listed above (MM_RF_CUSTOM is 0xff)
278279
{MODULE_SUBTYPE_MULTI_SENTINEL, 0, false, false, NO_SUBTYPE, nullptr},

radio/src/audio.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,6 @@ void pushPrompt(uint16_t prompt, uint8_t id=0, uint8_t fragmentVolume = USE_SETT
557557
void pushUnit(uint8_t unit, uint8_t idx, uint8_t id, uint8_t fragmentVolume = USE_SETTINGS_VOLUME);
558558
void playModelName();
559559

560-
#define I18N_PLAY_FUNCTION(lng, x, ...) void lng ## _ ## x(__VA_ARGS__, uint8_t id, int8_t fragmentVolume = USE_SETTINGS_VOLUME)
561560
#define PUSH_NUMBER_PROMPT(p) pushPrompt((p), id, fragmentVolume)
562561
#define PUSH_UNIT_PROMPT(p, i) pushUnit((p), (i), id, fragmentVolume)
563562
#define PLAY_NUMBER(n, u, a) playNumber((n), (u), (a), id, fragmentVolume)

radio/src/boards/generic_stm32/linker/firmware.ld

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ SECTIONS
1818
.firmware_header (READONLY) :
1919
{
2020
KEEP(*(.fwdescription))
21-
} > REGION_TEXT AT> REGION_TEXT_STORAGE
21+
} > REGION_TEXT_STORAGE
2222

2323
/* ISR vector to be loaded */
2424
.isr_vector :
@@ -52,6 +52,17 @@ SECTIONS
5252

5353
INCLUDE common_sections.ld
5454

55+
/* Assets in FLASH only */
56+
.flash (READONLY) :
57+
{
58+
. = ALIGN(4);
59+
_sflash = .;
60+
*(.flash)
61+
62+
. = ALIGN(4);
63+
_eflash = .;
64+
} > REGION_TEXT_STORAGE
65+
5566
.text_end_section : {} > REGION_TEXT AT > REGION_TEXT_STORAGE
5667
_firmware_length = LOADADDR(.text_end_section) - LOADADDR(.firmware_header);
5768
_firmware_version = _text_load;

radio/src/boards/generic_stm32/linker/stm32f429_sdram/extra_sections.ld

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ INCLUDE section_ccm.ld
1414
. = ALIGN(4);
1515
*(.sdram)
1616
*(.sdram*)
17-
*(.sdram_fonts)
18-
*(.sdram_fonts*)
1917
*(.sdram_rodata)
2018
*(.sdram_rodata*)
2119

radio/src/definitions.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,16 @@
2727

2828
#include "memory_sections.h"
2929

30+
#if !defined(ALL_LANGS) || defined(BOOT)
31+
typedef const char* STR_TYP;
32+
#define STR_DEF(x) x
33+
#define STR_VAL(x) x
34+
#else
35+
typedef const char* (*STR_TYP)();
36+
#define STR_DEF(x) x##_FN
37+
#define STR_VAL(x) x()
38+
#endif
39+
3040
#if !defined(M_PI)
3141
#define M_PI 3.14159265358979323846 // pi
3242
#define M_PI_2 1.57079632679489661923 // pi/2

0 commit comments

Comments
 (0)