From d611839168389f771f1a45e077855188813b66a7 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 26 Jun 2023 11:50:38 +0200 Subject: [PATCH] feat: User configurable audio mute (#3703 port to main) --- radio/src/datastructs_private.h | 3 ++- radio/src/gui/colorlcd/radio_hardware.cpp | 7 +++++++ radio/src/gui/common/stdlcd/radio_hardware.cpp | 13 ++++++++++++- radio/src/storage/yaml/yaml_datastructs_128x64.cpp | 2 +- radio/src/storage/yaml/yaml_datastructs_nv14.cpp | 2 +- radio/src/storage/yaml/yaml_datastructs_tpro.cpp | 2 +- radio/src/storage/yaml/yaml_datastructs_x10.cpp | 2 +- radio/src/storage/yaml/yaml_datastructs_x12s.cpp | 2 +- radio/src/storage/yaml/yaml_datastructs_x9d.cpp | 2 +- radio/src/storage/yaml/yaml_datastructs_x9e.cpp | 2 +- radio/src/storage/yaml/yaml_datastructs_x9lite.cpp | 2 +- radio/src/storage/yaml/yaml_datastructs_xlites.cpp | 2 +- radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/cn.h | 1 + radio/src/translations/cz.h | 1 + radio/src/translations/da.h | 1 + radio/src/translations/de.h | 1 + radio/src/translations/en.h | 1 + radio/src/translations/es.h | 1 + radio/src/translations/fi.h | 1 + radio/src/translations/fr.h | 1 + radio/src/translations/he.h | 1 + radio/src/translations/it.h | 1 + radio/src/translations/jp.h | 1 + radio/src/translations/nl.h | 1 + radio/src/translations/pl.h | 1 + radio/src/translations/pt.h | 1 + radio/src/translations/se.h | 1 + radio/src/translations/tw.h | 1 + 30 files changed, 48 insertions(+), 11 deletions(-) diff --git a/radio/src/datastructs_private.h b/radio/src/datastructs_private.h index 7be5792a24b..8d40099333f 100644 --- a/radio/src/datastructs_private.h +++ b/radio/src/datastructs_private.h @@ -952,7 +952,8 @@ PACK(struct RadioData { #else NOBACKUP(uint8_t stickDeadZoneSpare:3 SKIP); #endif - NOBACKUP(uint8_t spare4:1 SKIP); + + NOBACKUP(uint8_t audioMuteEnable:1); #if defined(IMU) NOBACKUP(int8_t imuMax); diff --git a/radio/src/gui/colorlcd/radio_hardware.cpp b/radio/src/gui/colorlcd/radio_hardware.cpp index a20fe08d678..5901daf241c 100644 --- a/radio/src/gui/colorlcd/radio_hardware.cpp +++ b/radio/src/gui/colorlcd/radio_hardware.cpp @@ -126,6 +126,13 @@ void RadioHardwarePage::build(FormWindow * window) new StaticText(line, rect_t{}, STR_JITTER_FILTER, 0, COLOR_THEME_PRIMARY1); new CheckBox(line, rect_t{}, GET_SET_INVERTED(g_eeGeneral.noJitterFilter)); +#if defined(AUDIO_MUTE_GPIO) + // Mute audio + line = window->newLine(&grid); + new StaticText(line, rect_t{}, STR_AUDIO_MUTE, 0, COLOR_THEME_PRIMARY1); + new CheckBox(line, rect_t{}, GET_SET_DEFAULT(g_eeGeneral.audioMuteEnable)); +#endif + #if defined(HARDWARE_INTERNAL_MODULE) new Subtitle(window, rect_t{}, STR_INTERNALRF, 0, COLOR_THEME_PRIMARY1); auto intMod = new InternalModuleWindow(window); diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index 260c6bf69f2..81fce456dd7 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -57,6 +57,9 @@ enum { ITEM_RADIO_HARDWARE_BATTERY_CALIB, ITEM_RADIO_HARDWARE_RTC_BATTERY, ITEM_RADIO_HARDWARE_RTC_CHECK, +#if defined(AUDIO_MUTE_GPIO) + ITEM_RADIO_HARDWARE_AUDIO_MUTE, +#endif ITEM_RADIO_HARDWARE_LABEL_INTERNAL_MODULE, ITEM_RADIO_HARDWARE_INTERNAL_MODULE_TYPE, ITEM_RADIO_HARDWARE_INTERNAL_MODULE_BAUDRATE, @@ -155,7 +158,9 @@ static void _init_menu_tab_array(uint8_t* tab, size_t len) tab[ITEM_RADIO_HARDWARE_BATTERY_CALIB] = 0; tab[ITEM_RADIO_HARDWARE_RTC_BATTERY] = READONLY_ROW; tab[ITEM_RADIO_HARDWARE_RTC_CHECK] = 0; - +#if defined(AUDIO_MUTE_GPIO) + tab[ITEM_RADIO_HARDWARE_AUDIO_MUTE] = 0; +#endif #if defined(HARDWARE_INTERNAL_MODULE) tab[ITEM_RADIO_HARDWARE_INTERNAL_MODULE_TYPE] = 0; tab[ITEM_RADIO_HARDWARE_INTERNAL_MODULE_BAUDRATE] = @@ -313,6 +318,12 @@ void menuRadioHardware(event_t event) } } break; +#if defined(AUDIO_MUTE_GPIO) + case ITEM_RADIO_HARDWARE_AUDIO_MUTE: + g_eeGeneral.audioMuteEnable = editCheckBox(g_eeGeneral.audioMuteEnable, HW_SETTINGS_COLUMN2, y, STR_AUDIO_MUTE, attr, event); + break; +#endif + case ITEM_RADIO_HARDWARE_INTERNAL_MODULE_BAUDRATE: lcdDrawText(INDENT_WIDTH, y, STR_BAUDRATE); lcdDrawTextAtIndex(HW_SETTINGS_COLUMN2, y, STR_CRSF_BAUDRATE, CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate),attr | LEFT); diff --git a/radio/src/storage/yaml/yaml_datastructs_128x64.cpp b/radio/src/storage/yaml/yaml_datastructs_128x64.cpp index a164ffa524f..b8664e5d64c 100644 --- a/radio/src/storage/yaml/yaml_datastructs_128x64.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_128x64.cpp @@ -345,7 +345,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_UNSIGNED( "radioGFDisabled", 1 ), YAML_UNSIGNED( "radioTrainerDisabled", 1 ), YAML_UNSIGNED( "modelHeliDisabled", 1 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp index 850cfc68d1c..ab509a59533 100644 --- a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp @@ -378,7 +378,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_UNSIGNED( "stickDeadZone", 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_STRING("selectedTheme", 26), YAML_UNSIGNED( "radioThemesDisabled", 1 ), YAML_UNSIGNED( "radioGFDisabled", 1 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_tpro.cpp b/radio/src/storage/yaml/yaml_datastructs_tpro.cpp index f1bbb11fe74..ce8cfaeaa76 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tpro.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tpro.cpp @@ -343,7 +343,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_UNSIGNED( "radioGFDisabled", 1 ), YAML_UNSIGNED( "radioTrainerDisabled", 1 ), YAML_UNSIGNED( "modelHeliDisabled", 1 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/yaml/yaml_datastructs_x10.cpp index e716ba6a0b0..2190b7a4194 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x10.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x10.cpp @@ -384,7 +384,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_SIGNED( "imuMax", 8 ), YAML_SIGNED( "imuOffset", 8 ), YAML_STRING("selectedTheme", 26), diff --git a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp index e716ba6a0b0..2190b7a4194 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp @@ -384,7 +384,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_SIGNED( "imuMax", 8 ), YAML_SIGNED( "imuOffset", 8 ), YAML_STRING("selectedTheme", 26), diff --git a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp index 51359025581..9efbaaa0440 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp @@ -345,7 +345,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_UNSIGNED( "radioGFDisabled", 1 ), YAML_UNSIGNED( "radioTrainerDisabled", 1 ), YAML_UNSIGNED( "modelHeliDisabled", 1 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp index b384212c1b9..64195c02eda 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp @@ -345,7 +345,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_UNSIGNED( "radioGFDisabled", 1 ), YAML_UNSIGNED( "radioTrainerDisabled", 1 ), YAML_UNSIGNED( "modelHeliDisabled", 1 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp index 84b0bc31ae4..70d97e4a810 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp @@ -343,7 +343,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_UNSIGNED( "radioGFDisabled", 1 ), YAML_UNSIGNED( "radioTrainerDisabled", 1 ), YAML_UNSIGNED( "modelHeliDisabled", 1 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp index 14fdb9d2276..6536946d1f1 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp @@ -347,7 +347,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "rotEncMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 3 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "audioMuteEnable", 1 ), YAML_SIGNED( "imuMax", 8 ), YAML_SIGNED( "imuOffset", 8 ), YAML_UNSIGNED( "radioGFDisabled", 1 ), diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 8bb0286ffc2..9cc78e59c11 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -723,6 +723,7 @@ const char STR_MENU_TELEMETRY[] = TR_MENU_TELEMETRY; const char STR_MENU_DISPLAY[] = TR_MENU_DISPLAY; const char STR_MENU_OTHER[] = TR_MENU_OTHER; const char STR_MENU_INVERT[] = TR_MENU_INVERT; +const char STR_AUDIO_MUTE[] = TR_AUDIO_MUTE; const char STR_JITTER_FILTER[] = TR_JITTER_FILTER; const char STR_DEAD_ZONE[] = TR_DEAD_ZONE; const char STR_RTC_CHECK[] = TR_RTC_CHECK; diff --git a/radio/src/translations.h b/radio/src/translations.h index 057acf865b6..a73e8a4281a 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -1117,6 +1117,7 @@ extern const char STR_MENU_TELEMETRY[]; extern const char STR_MENU_DISPLAY[]; extern const char STR_MENU_OTHER[]; extern const char STR_MENU_INVERT[]; +extern const char STR_AUDIO_MUTE[]; extern const char STR_JITTER_FILTER[]; extern const char STR_DEAD_ZONE[]; extern const char STR_RTC_CHECK[]; diff --git a/radio/src/translations/cn.h b/radio/src/translations/cn.h index d8abb6c77fc..25e88e3f07f 100644 --- a/radio/src/translations/cn.h +++ b/radio/src/translations/cn.h @@ -1104,6 +1104,7 @@ #define TR_MENU_DISPLAY "显示" #define TR_MENU_OTHER "其它" #define TR_MENU_INVERT "反向" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "模拟输入滤波" #define TR_DEAD_ZONE "死区" #define TR_RTC_CHECK TR("检查时间电池", "检查时间驱动电池电压") diff --git a/radio/src/translations/cz.h b/radio/src/translations/cz.h index dfdd0c4294b..1d81c63e43e 100644 --- a/radio/src/translations/cz.h +++ b/radio/src/translations/cz.h @@ -1120,6 +1120,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Ostatní" #define TR_MENU_INVERT "Invertovat" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC Filtr" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Kontr RTC", "Hlídat RTC napětí") diff --git a/radio/src/translations/da.h b/radio/src/translations/da.h index 3439b1290b1..fddf081ebbf 100644 --- a/radio/src/translations/da.h +++ b/radio/src/translations/da.h @@ -1124,6 +1124,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Andet" #define TR_MENU_INVERT "Invers" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC filter" #define TR_DEAD_ZONE "Dødt område" #define TR_RTC_CHECK TR("Check RTC", "Check RTC spænding") diff --git a/radio/src/translations/de.h b/radio/src/translations/de.h index 25c366bdfaa..ec30b25287d 100644 --- a/radio/src/translations/de.h +++ b/radio/src/translations/de.h @@ -1114,6 +1114,7 @@ #define TR_MENU_DISPLAY "TELM-SEITEN" #define TR_MENU_OTHER "Weitere" #define TR_MENU_INVERT "Invertieren" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC Filter" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("RTC Prüfen", "RTC Spann. prüfen") diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index d9eaaeae319..a5e51011d6b 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -1113,6 +1113,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Other" #define TR_MENU_INVERT "Invert" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC filter" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") diff --git a/radio/src/translations/es.h b/radio/src/translations/es.h index 215ffa883b7..63f11897de8 100644 --- a/radio/src/translations/es.h +++ b/radio/src/translations/es.h @@ -1117,6 +1117,7 @@ #define TR_MENU_DISPLAY "MONITOR" #define TR_MENU_OTHER "Otros" #define TR_MENU_INVERT "Invertir" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "Filtro ADC" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltaje") diff --git a/radio/src/translations/fi.h b/radio/src/translations/fi.h index f0e5c900129..816a2c4295f 100644 --- a/radio/src/translations/fi.h +++ b/radio/src/translations/fi.h @@ -1129,6 +1129,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Other" #define TR_MENU_INVERT "Invert" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC Filter" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") diff --git a/radio/src/translations/fr.h b/radio/src/translations/fr.h index 246fe5dfaa5..70c831daf0b 100644 --- a/radio/src/translations/fr.h +++ b/radio/src/translations/fr.h @@ -1130,6 +1130,7 @@ #define TR_MENU_DISPLAY "AFFICHAGE" #define TR_MENU_OTHER "Autres" #define TR_MENU_INVERT "Inverser" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "Filtre ADC" #define TR_DEAD_ZONE "Zone Neutre" #define TR_RTC_CHECK TR("Vérif. RTC", "Vérif. pile RTC") diff --git a/radio/src/translations/he.h b/radio/src/translations/he.h index ec3dc4bc8f1..ba9ddb8962e 100644 --- a/radio/src/translations/he.h +++ b/radio/src/translations/he.h @@ -1190,6 +1190,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Other" #define TR_MENU_INVERT "Invert" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC filter" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") diff --git a/radio/src/translations/it.h b/radio/src/translations/it.h index 14367b5025e..73703c9f346 100644 --- a/radio/src/translations/it.h +++ b/radio/src/translations/it.h @@ -1110,6 +1110,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Altro" #define TR_MENU_INVERT "Inverti" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "Filtro ADC" #define TR_DEAD_ZONE "Zona morta" #define TR_RTC_CHECK TR("Controllo RTC", "Controllo volt. RTC") diff --git a/radio/src/translations/jp.h b/radio/src/translations/jp.h index 965fc052ed6..23f1d335157 100644 --- a/radio/src/translations/jp.h +++ b/radio/src/translations/jp.h @@ -1109,6 +1109,7 @@ #define TR_MENU_DISPLAY "表示" #define TR_MENU_OTHER "その他" #define TR_MENU_INVERT "リバース" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADCフィルター" #define TR_DEAD_ZONE "デッドゾーン" #define TR_RTC_CHECK TR("Check RTC", "内蔵電池チェック") diff --git a/radio/src/translations/nl.h b/radio/src/translations/nl.h index e1aeae4eeaa..bc0489e0b63 100644 --- a/radio/src/translations/nl.h +++ b/radio/src/translations/nl.h @@ -1124,6 +1124,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Verdere" #define TR_MENU_INVERT "Inverteer" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC Filter" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") diff --git a/radio/src/translations/pl.h b/radio/src/translations/pl.h index 4b6705f58b1..8eaf5af144e 100644 --- a/radio/src/translations/pl.h +++ b/radio/src/translations/pl.h @@ -1111,6 +1111,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Inny " #define TR_MENU_INVERT "Odwróć" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "Filtr ADC" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") diff --git a/radio/src/translations/pt.h b/radio/src/translations/pt.h index 73576692db8..ab9fbd86e59 100644 --- a/radio/src/translations/pt.h +++ b/radio/src/translations/pt.h @@ -1119,6 +1119,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Other" #define TR_MENU_INVERT "Invert" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC Filter" #define TR_DEAD_ZONE "Dead zone" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") diff --git a/radio/src/translations/se.h b/radio/src/translations/se.h index 8c365da5e00..7f1a863cc6a 100644 --- a/radio/src/translations/se.h +++ b/radio/src/translations/se.h @@ -1151,6 +1151,7 @@ #define TR_MENU_DISPLAY "DISPLAY" #define TR_MENU_OTHER "Övrigt" #define TR_MENU_INVERT "Invertera" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "ADC-filter" #define TR_DEAD_ZONE "Dödläge" #define TR_RTC_CHECK TR("Kolla RTC", "Kolla RTC-batteriet") diff --git a/radio/src/translations/tw.h b/radio/src/translations/tw.h index b1e5c4ad84a..09311711639 100644 --- a/radio/src/translations/tw.h +++ b/radio/src/translations/tw.h @@ -1108,6 +1108,7 @@ #define TR_MENU_DISPLAY "顯示" #define TR_MENU_OTHER "其它" #define TR_MENU_INVERT "反向" +#define TR_AUDIO_MUTE TR("Audio mute","Mute if no sound") #define TR_JITTER_FILTER "類比輸入濾波" #define TR_DEAD_ZONE "死區" #define TR_RTC_CHECK TR("檢查時間電池", "檢查時間驅動電池電壓")