diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index d014f4472..7c60bf821 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "mixer_scheduler.h" #if !defined(EEPROM) #include "storage/sdcard_common.h" @@ -105,7 +106,10 @@ enum MenuModelSetupItems { #if defined(HARDWARE_INTERNAL_MODULE) ITEM_MODEL_SETUP_INTERNAL_MODULE_LABEL, +#if defined(CROSSFIRE) || defined(GHOST) ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE, + ITEM_MODEL_SETUP_INTERNAL_MODULE_SERIALSTATUS, +#endif #if defined(MULTIMODULE) ITEM_MODEL_SETUP_INTERNAL_MODULE_PROTOCOL, ITEM_MODEL_SETUP_INTERNAL_MODULE_SUBTYPE, @@ -138,6 +142,7 @@ enum MenuModelSetupItems { ITEM_MODEL_SETUP_EXTERNAL_MODULE_TYPE, #if defined(CROSSFIRE) || defined(GHOST) ITEM_MODEL_SETUP_EXTERNAL_MODULE_BAUDRATE, + ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS, #endif #if defined(MULTIMODULE) ITEM_MODEL_SETUP_EXTERNAL_MODULE_PROTOCOL, @@ -194,11 +199,18 @@ enum MenuModelSetupItems { #define IF_NOT_PXX2_MODULE(module, xxx) (isModulePXX2(module) ? HIDDEN_ROW : (uint8_t)(xxx)) #define IF_ACCESS_MODULE_RF(module, xxx) (isModuleRFAccess(module) ? (uint8_t)(xxx) : HIDDEN_ROW) #define IF_NOT_ACCESS_MODULE_RF(module, xxx) (isModuleRFAccess(module) ? HIDDEN_ROW : (uint8_t)(xxx)) +#if defined(CROSSFIRE) || defined(GHOST) +#define IF_MODULE_SYNCED(module, xxx) ((isModuleCrossfire(module) || isModuleGhost(module)) ? (uint8_t)(xxx) : HIDDEN_ROW) #if SPORT_MAX_BAUDRATE < 400000 #define IF_MODULE_BAUDRATE_ADJUST(module, xxx) ((isModuleCrossfire(module) || isModuleGhost(module)) ? (uint8_t)(xxx) : HIDDEN_ROW) #else #define IF_MODULE_BAUDRATE_ADJUST(module, xxx) (isModuleCrossfire(module) ? (uint8_t)(xxx) : HIDDEN_ROW) #endif +#else +#define IF_MODULE_SYNCED(module, xxx) +#define IF_MODULE_BAUDRATE_ADJUST(module, xxx) +#endif + #if defined(PXX2) #define REGISTRATION_ID_ROWS uint8_t((isDefaultModelRegistrationID() || (warningText && popupFunc == runPopupRegister)) ? HIDDEN_ROW : READONLY_ROW), @@ -353,6 +365,7 @@ void editTimerCountdown(int timerIdx, coord_t y, LcdFlags attr, event_t event) #define INTERNAL_MODULE_ROWS \ LABEL(InternalModule), \ MODULE_TYPE_ROWS(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE */ \ + IF_MODULE_SYNCED(INTERNAL_MODULE, 0), /* Sync rate + errors */ \ MULTIMODULE_TYPE_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_PROTOCOL */ \ MULTIMODULE_SUBTYPE_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_SUBTYPE */ \ MULTIMODULE_STATUS_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_STATUS, ITEM_MODEL_SETUP_INTERNAL_MODULE_SYNCSTATUS */ \ @@ -379,6 +392,7 @@ void editTimerCountdown(int timerIdx, coord_t y, LcdFlags attr, event_t event) LABEL(ExternalModule), \ MODULE_TYPE_ROWS(EXTERNAL_MODULE), \ IF_MODULE_BAUDRATE_ADJUST(EXTERNAL_MODULE, 0), /* Baudrate */ \ + IF_MODULE_SYNCED(EXTERNAL_MODULE, 0), /* Sync rate + errors */ \ MULTIMODULE_TYPE_ROWS(EXTERNAL_MODULE) /* PROTOCOL */ \ MULTIMODULE_SUBTYPE_ROWS(EXTERNAL_MODULE) /* SUBTYPE */ \ MULTIMODULE_STATUS_ROWS(EXTERNAL_MODULE) \ @@ -1065,7 +1079,7 @@ void menuModelSetup(event_t event) ModuleData & moduleData = g_model.moduleData[moduleIdx]; lcdDrawText(INDENT_WIDTH, y, STR_BAUDRATE); if (isModuleCrossfire(EXTERNAL_MODULE)) { - lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, EXT_CROSSFIRE_BAUDRATE,attr | LEFT); + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_CRSF_BAUDRATE, moduleData.crsf.telemetryBaudrate,attr | LEFT); if (attr) { moduleData.crsf.telemetryBaudrate =CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event,CROSSFIRE_STORE_TO_INDEX(moduleData.crsf.telemetryBaudrate),0, DIM(CROSSFIRE_BAUDRATES) - 1)); if (checkIncDec_Ret) { @@ -1087,6 +1101,29 @@ void menuModelSetup(event_t event) break; } #endif +#if (defined(CROSSFIRE) || defined(GHOST)) +#if defined(HARDWARE_INTERNAL_MODULE) + case ITEM_MODEL_SETUP_INTERNAL_MODULE_SERIALSTATUS: +#endif +#if defined(HARDWARE_EXTERNAL_MODULE) + case ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS: +#endif + lcdDrawText(INDENT_WIDTH, y, STR_STATUS); + lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, 1000000 / getMixerSchedulerPeriod(), LEFT | attr); + lcdDrawText(lcdNextPos, y, "Hz ", attr); + lcdDrawNumber(lcdNextPos, y, telemetryErrors, attr); + lcdDrawText(lcdNextPos + 1, y, "Err", attr); + if (attr) { + s_editMode = 0; + if (event == EVT_KEY_LONG(KEY_ENTER)) { + START_NO_HIGHLIGHT(); + telemetryErrors = 0; + AUDIO_WARNING1(); + killEvents(event); + } + } + break; +#endif #if defined(MULTIMODULE) #if defined(HARDWARE_INTERNAL_MODULE) diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 434c97bc3..661d426f1 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "mixer_scheduler.h" uint8_t g_moduleIdx; @@ -108,6 +109,7 @@ enum MenuModelSetupItems { ITEM_MODEL_SETUP_EXTERNAL_MODULE_TYPE, #if defined(CROSSFIRE) || defined(GHOST) ITEM_MODEL_SETUP_EXTERNAL_MODULE_BAUDRATE, + ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS, #endif #if defined (MULTIMODULE) ITEM_MODEL_SETUP_EXTERNAL_MODULE_PROTOCOL, @@ -316,11 +318,17 @@ inline uint8_t EXTERNAL_MODULE_TYPE_ROW() #define IF_NOT_PXX2_MODULE(module, xxx) (isModulePXX2(module) ? HIDDEN_ROW : (uint8_t)(xxx)) #define IF_ACCESS_MODULE_RF(module, xxx) (isModuleRFAccess(module) ? (uint8_t)(xxx) : HIDDEN_ROW) #define IF_NOT_ACCESS_MODULE_RF(module, xxx) (isModuleRFAccess(module) ? HIDDEN_ROW : (uint8_t)(xxx)) +#if defined(CROSSFIRE) || defined(GHOST) +#define IF_MODULE_SYNCED(module, xxx) ((isModuleCrossfire(module) || isModuleGhost(module)) ? (uint8_t)(xxx) : HIDDEN_ROW) #if SPORT_MAX_BAUDRATE < 400000 #define IF_MODULE_BAUDRATE_ADJUST(module, xxx) ((isModuleCrossfire(module) || isModuleGhost(module)) ? (uint8_t)(xxx) : HIDDEN_ROW) #else #define IF_MODULE_BAUDRATE_ADJUST(module, xxx) (isModuleCrossfire(module) ? (uint8_t)(xxx) : HIDDEN_ROW) #endif +#else +#define IF_MODULE_SYNCED(module, xxx) +#define IF_MODULE_BAUDRATE_ADJUST(module, xxx) +#endif #if defined(PXX2) #define REGISTRATION_ID_ROWS uint8_t((isDefaultModelRegistrationID() || (warningText && popupFunc == runPopupRegister)) ? HIDDEN_ROW : READONLY_ROW), @@ -415,7 +423,8 @@ void menuModelSetup(event_t event) LABEL(ExternalModule), EXTERNAL_MODULE_TYPE_ROW(), - IF_MODULE_BAUDRATE_ADJUST(EXTERNAL_MODULE, 0), // Baudrate + IF_MODULE_BAUDRATE_ADJUST(EXTERNAL_MODULE, 0), // Baudrate + IF_MODULE_SYNCED(EXTERNAL_MODULE, 0), // Sync rate + errors MULTIMODULE_TYPE_ROW(EXTERNAL_MODULE) MULTIMODULE_STATUS_ROWS(EXTERNAL_MODULE) AFHDS3_MODE_ROWS(EXTERNAL_MODULE) @@ -1030,7 +1039,7 @@ void menuModelSetup(event_t event) ModuleData &moduleData = g_model.moduleData[EXTERNAL_MODULE]; lcdDrawText(INDENT_WIDTH, y, STR_BAUDRATE); if (isModuleCrossfire(EXTERNAL_MODULE)) { - lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, EXT_CROSSFIRE_BAUDRATE,attr | LEFT); + lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_CRSF_BAUDRATE, moduleData.crsf.telemetryBaudrate,attr | LEFT); if (attr) { moduleData.crsf.telemetryBaudrate =CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event,CROSSFIRE_STORE_TO_INDEX(moduleData.crsf.telemetryBaudrate),0, DIM(CROSSFIRE_BAUDRATES) - 1)); if (checkIncDec_Ret) { @@ -1052,6 +1061,23 @@ void menuModelSetup(event_t event) break; #endif } + + case ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS: + lcdDrawText(INDENT_WIDTH, y, STR_STATUS); + lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, 1000000 / getMixerSchedulerPeriod(), LEFT | attr); + lcdDrawText(lcdNextPos, y, "Hz ", attr); + lcdDrawNumber(lcdNextPos, y, telemetryErrors, attr); + lcdDrawText(lcdNextPos + 1, y, "Err", attr); + if (attr) { + s_editMode = 0; + if (event == EVT_KEY_LONG(KEY_ENTER)) { + START_NO_HIGHLIGHT(); + telemetryErrors = 0; + AUDIO_WARNING1(); + killEvents(event); + } + } + break; #endif #if defined(MULTIMODULE) diff --git a/radio/src/gui/colorlcd/model_setup.cpp b/radio/src/gui/colorlcd/model_setup.cpp index add6ed664..ac367b4d0 100644 --- a/radio/src/gui/colorlcd/model_setup.cpp +++ b/radio/src/gui/colorlcd/model_setup.cpp @@ -23,6 +23,7 @@ #include "multi_rfprotos.h" #include "io/multi_protolist.h" #include "pulses/flysky.h" +#include "mixer_scheduler.h" #include "opentx.h" #include "libopenui.h" @@ -610,16 +611,25 @@ class ModuleWindow : public FormGroup { // Module parameters if (moduleIdx== EXTERNAL_MODULE && isModuleCrossfire(moduleIdx)) { grid.nextLine(); - new StaticText(this, grid.getLabelSlot(true), STR_BAUDRATE, 0,COLOR_THEME_PRIMARY1); - new Choice(this, grid.getFieldSlot(1, 0), STR_CRSF_BAUDRATE, 0,CROSSFIRE_MAX_INTERNAL_BAUDRATE, - [=]() -> int { - return CROSSFIRE_STORE_TO_INDEX(g_model.moduleData[moduleIdx].crsf.telemetryBaudrate); - }, - [=](int newValue) { - g_model.moduleData[moduleIdx].crsf.telemetryBaudrate = CROSSFIRE_INDEX_TO_STORE(newValue); - SET_DIRTY(); - restartExternalModule(); - }); + new StaticText(this, grid.getLabelSlot(true), STR_BAUDRATE, 0, COLOR_THEME_PRIMARY1); + new Choice(this, grid.getFieldSlot(1, 0), STR_CRSF_BAUDRATE, 0, CROSSFIRE_MAX_INTERNAL_BAUDRATE, + [=]() -> int { + return CROSSFIRE_STORE_TO_INDEX(g_model.moduleData[moduleIdx].crsf.telemetryBaudrate); + }, + [=](int newValue) { + g_model.moduleData[moduleIdx].crsf.telemetryBaudrate = CROSSFIRE_INDEX_TO_STORE(newValue); + SET_DIRTY(); + restartExternalModule(); + }); + } + if (isModuleCrossfire(moduleIdx)) { + grid.nextLine(); + new StaticText(this, grid.getLabelSlot(true), STR_STATUS, 0,COLOR_THEME_PRIMARY1); + new DynamicText(this, grid.getFieldSlot(), [=] { + char msg[64] = ""; + sprintf(msg,"%d Hz %d Err", 1000000 / getMixerSchedulerPeriod(), telemetryErrors); + return std::string(msg); + }); } if (isModuleXJT(moduleIdx)) { rfChoice = new Choice( diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index 2811225cd..6e3ddcf6e 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -535,7 +535,7 @@ void menuRadioHardware(event_t event) #if !defined(PCBX9D) && !defined(PCBX9DP) && !defined(PCBX9E) case ITEM_RADIO_HARDWARE_INTERNAL_MODULE_BAUDRATE: lcdDrawText(INDENT_WIDTH, y, STR_BAUDRATE); - lcdDrawNumber(HW_SETTINGS_COLUMN2, y, INT_CROSSFIRE_BAUDRATE, attr|LEFT); + lcdDrawTextAtIndex(HW_SETTINGS_COLUMN2, y, STR_CRSF_BAUDRATE, g_eeGeneral.internalModuleBaudrate,attr | LEFT); if (attr) { g_eeGeneral.internalModuleBaudrate = CROSSFIRE_INDEX_TO_STORE(checkIncDecModel(event, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate), 0, CROSSFIRE_MAX_INTERNAL_BAUDRATE)); if (checkIncDec_Ret) { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 09065c0f0..b65850e5d 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -201,6 +201,7 @@ const char STR_BEEPCOUNTDOWN[] = TR_BEEPCOUNTDOWN; const char STR_PERSISTENT[] = TR_PERSISTENT; const char STR_BACKLIGHT_LABEL[] = TR_BACKLIGHT_LABEL; const char STR_GHOST_MENU_LABEL[] = TR_GHOST_MENU_LABEL; +const char STR_STATUS[] = TR_STATUS; const char STR_BLDELAY[] = TR_BLDELAY; const char STR_RXCHANNELORD[] = TR_RXCHANNELORD; const char STR_STICKS[] = TR_STICKS; diff --git a/radio/src/translations.h b/radio/src/translations.h index a5f546584..505c22bcc 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -323,6 +323,7 @@ extern const char STR_BEEPCOUNTDOWN[]; extern const char STR_PERSISTENT[]; extern const char STR_BACKLIGHT_LABEL[]; extern const char STR_GHOST_MENU_LABEL[]; +extern const char STR_STATUS[]; extern const char STR_BLDELAY[]; #if defined(PWM_BACKLIGHT) || defined(COLORLCD) diff --git a/radio/src/translations/cn.h.txt b/radio/src/translations/cn.h.txt index d097bb0be..3139efe10 100644 --- a/radio/src/translations/cn.h.txt +++ b/radio/src/translations/cn.h.txt @@ -474,6 +474,7 @@ #define TR_BACKLIGHT_LABEL "背光" #define TR_BLDELAY INDENT "Duration" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLONBRIGHTNESS "背光开" #define TR_BLOFFBRIGHTNESS "背光关" #define TR_KEYS_BACKLIGHT "按键背光" diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 651037320..0a26d8498 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -510,6 +510,7 @@ #define TR_PERSISTENT INDENT"Trvalé" #define TR_BACKLIGHT_LABEL "Podsvětlení" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT"Zhasnout po" #define TR_BLONBRIGHTNESS TR3(INDENT"Jas Zap.", INDENT"Jas Zap.", INDENT"Jas zapnutého LCD") #define TR_BLOFFBRIGHTNESS TR3(INDENT"Jas Vyp.", INDENT"Jas Vyp.", INDENT"Jas vypnutého LCD") diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 106f39d85..0d47943b1 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -513,6 +513,7 @@ #define TR_PERSISTENT TR(INDENT "Permanent", INDENT "Permanent") #define TR_BACKLIGHT_LABEL "LCD-Beleuchtung" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT "Dauer" #define TR_BLONBRIGHTNESS INDENT "An-Helligkeit" #define TR_BLOFFBRIGHTNESS INDENT "Aus-Helligkeit" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index d3c7d0e45..b34eae0a3 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -511,6 +511,7 @@ #define TR_PERSISTENT TR(INDENT "Persist.", INDENT "Persistent") #define TR_BACKLIGHT_LABEL "Backlight" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT "Duration" #define TR_BLONBRIGHTNESS INDENT "ON brightness" #define TR_BLOFFBRIGHTNESS INDENT "OFF brightness" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index f1f4806c1..75e33003b 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -510,6 +510,7 @@ #define TR_PERSISTENT TR(INDENT"Persisten.", INDENT"Persistente") #define TR_BACKLIGHT_LABEL "Luz fondo" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT"Duración" #define TR_BLONBRIGHTNESS INDENT"MAS brillo" #define TR_BLOFFBRIGHTNESS INDENT"MENOS brillo" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 9c090389a..a1cb940c9 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -524,6 +524,7 @@ #define TR_PERSISTENT TR(INDENT"Persist.", INDENT"Persistent") #define TR_BACKLIGHT_LABEL "Backlight" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT"Duration" #define TR_BLONBRIGHTNESS INDENT"ON Brightness" #define TR_BLOFFBRIGHTNESS INDENT"OFF Brightness" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index dd599c5f1..2bdf2a225 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -531,6 +531,7 @@ #define TR_PERSISTENT TR(INDENT "Persist.", INDENT "Persistant") #define TR_BACKLIGHT_LABEL "Rétroéclairage" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT "Durée" #define TR_BLONBRIGHTNESS INDENT "Luminosité ON" #define TR_BLOFFBRIGHTNESS INDENT "Luminosité OFF" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 1ff8c60c4..327badac2 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -535,6 +535,7 @@ #define TR_PERSISTENT TR(INDENT "Persist.", INDENT "Persistente") #define TR_BACKLIGHT_LABEL TR("Retroillu.", "Retroilluminazione") #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT "Durata" #define TR_BLONBRIGHTNESS TR(INDENT "Lumin. ON", INDENT "Luminosità ON") #define TR_BLOFFBRIGHTNESS TR(INDENT "Lumin. OFF", INDENT "Luminosità OFF") diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 252424e94..efeb64b0c 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -515,6 +515,7 @@ #define TR_PERSISTENT TR(INDENT "Vasth.", INDENT "Vasthouden") #define TR_BACKLIGHT_LABEL "LCD-Verlichting" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT "Duur" #define TR_BLONBRIGHTNESS INDENT "Aan-Helderheid" #define TR_BLOFFBRIGHTNESS INDENT "Uit-Helderheid" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index a75386597..a722029b8 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -531,6 +531,7 @@ #define TR_PERSISTENT TR(INDENT "Dokł.", INDENT "Dokładny") #define TR_BACKLIGHT_LABEL "Podświetl" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT"Czas trwania" #define TR_BLONBRIGHTNESS INDENT"Jasnośc wł." #define TR_BLOFFBRIGHTNESS INDENT"Jasność wył." diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index fe79214b2..37fcb8484 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -535,6 +535,7 @@ #define TR_PERSISTENT INDENT "Persist." #define TR_BACKLIGHT_LABEL "Backlight" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT "Tempo Backlight" #define TR_BLONBRIGHTNESS INDENT "ON Brightness" #define TR_BLOFFBRIGHTNESS INDENT "OFF Brightness" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 862dcccc0..21f339c8f 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -538,6 +538,7 @@ #define TR_PERSISTENT TR("Jämt på ", INDENT"Alltid På") #define TR_BACKLIGHT_LABEL "Belysning" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT "Av efter" #define TR_BLONBRIGHTNESS INDENT "På Ljusstyrka" #define TR_BLOFFBRIGHTNESS INDENT "Av Ljusstyrka" diff --git a/radio/src/translations/tw.h.txt b/radio/src/translations/tw.h.txt index d38c652a8..a4328692f 100644 --- a/radio/src/translations/tw.h.txt +++ b/radio/src/translations/tw.h.txt @@ -473,6 +473,7 @@ #define TR_PERSISTENT TR(INDENT "Persist.", INDENT "關機保持") #define TR_BACKLIGHT_LABEL "背光" #define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_STATUS "Status" #define TR_BLDELAY INDENT "Duration" #define TR_BLONBRIGHTNESS "背光開" #define TR_BLOFFBRIGHTNESS "背光關"