feat: User configurable audio mute (#3719)

* feat: User configurable audio mute (#3703 port to main)

* chore: Add translations
This commit is contained in:
3djc
2023-06-30 12:26:52 +10:00
committed by GitHub
parent 1255ff0e01
commit 8f431eaf01
30 changed files with 48 additions and 11 deletions
+2 -1
View File
@@ -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);
@@ -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);
+12 -1
View File
@@ -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);
@@ -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 ),
@@ -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 ),
@@ -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 ),
@@ -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),
@@ -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),
@@ -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 ),
@@ -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 ),
@@ -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 ),
@@ -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 ),
+1
View File
@@ -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;
+1
View File
@@ -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[];
+1
View File
@@ -1099,6 +1099,7 @@
#define TR_MENU_DISPLAY "显示"
#define TR_MENU_OTHER "其它"
#define TR_MENU_INVERT "反向"
#define TR_AUDIO_MUTE TR("自动静音","音频停播时自动静音")
#define TR_JITTER_FILTER "模拟输入滤波"
#define TR_DEAD_ZONE "死区"
#define TR_RTC_CHECK TR("检查时间电池", "检查时间驱动电池电压")
+1
View File
@@ -1115,6 +1115,7 @@
#define TR_MENU_DISPLAY "DISPLAY"
#define TR_MENU_OTHER "Ostatní"
#define TR_MENU_INVERT "Invertovat"
#define TR_AUDIO_MUTE TR("Ztlumení zvuku","Ztlumení, pokud není slyšet zvuk")
#define TR_JITTER_FILTER "ADC Filtr"
#define TR_DEAD_ZONE "Dead zone"
#define TR_RTC_CHECK TR("Kontr RTC", "Hlídat RTC napětí")
+1
View File
@@ -1119,6 +1119,7 @@
#define TR_MENU_DISPLAY "DISPLAY"
#define TR_MENU_OTHER "Andet"
#define TR_MENU_INVERT "Invers"
#define TR_AUDIO_MUTE TR("Audio fra","Audio fra, hvis der ikke gives lyd")
#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")
+1
View File
@@ -1109,6 +1109,7 @@
#define TR_MENU_DISPLAY "TELM-SEITEN"
#define TR_MENU_OTHER "Weitere"
#define TR_MENU_INVERT "Invertieren<!>"
#define TR_AUDIO_MUTE TR("Ton Stumm","Geräuschunterdrückung")
#define TR_JITTER_FILTER "ADC Filter"
#define TR_DEAD_ZONE "Dead zone"
#define TR_RTC_CHECK TR("RTC Prüfen", "RTC Spann. prüfen")
+1
View File
@@ -1108,6 +1108,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")
+1
View File
@@ -1112,6 +1112,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")
+1
View File
@@ -1124,6 +1124,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")
+1
View File
@@ -1125,6 +1125,7 @@
#define TR_MENU_DISPLAY "AFFICHAGE"
#define TR_MENU_OTHER "Autres"
#define TR_MENU_INVERT "Inverser"
#define TR_AUDIO_MUTE TR("Audio muet","Muet si pas de son")
#define TR_JITTER_FILTER "Filtre ADC"
#define TR_DEAD_ZONE "Zone Neutre"
#define TR_RTC_CHECK TR("Vérif. RTC", "Vérif. pile RTC")
+1
View File
@@ -1185,6 +1185,7 @@
#define TR_MENU_DISPLAY "DISPLAY"
#define TR_MENU_OTHER "Other"
#define TR_MENU_INVERT "Invert"
#define TR_AUDIO_MUTE TR("השתקת קול","השתק כאשר אין סאונד")
#define TR_JITTER_FILTER "ADC filter"
#define TR_DEAD_ZONE "Dead zone"
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
+1
View File
@@ -1105,6 +1105,7 @@
#define TR_MENU_DISPLAY "DISPLAY"
#define TR_MENU_OTHER "Altro"
#define TR_MENU_INVERT "Inverti"
#define TR_AUDIO_MUTE TR("Audio muto","Muto senza suono")
#define TR_JITTER_FILTER "Filtro ADC"
#define TR_DEAD_ZONE "Zona morta"
#define TR_RTC_CHECK TR("Controllo RTC", "Controllo volt. RTC")
+1
View File
@@ -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 "ADCフィルター"
#define TR_DEAD_ZONE "デッドゾーン"
#define TR_RTC_CHECK TR("Check RTC", "内蔵電池チェック")
+1
View File
@@ -1119,6 +1119,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")
+1
View File
@@ -1106,6 +1106,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")
+1
View File
@@ -1114,6 +1114,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")
+1
View File
@@ -1146,6 +1146,7 @@
#define TR_MENU_DISPLAY "DISPLAY"
#define TR_MENU_OTHER "Övrigt"
#define TR_MENU_INVERT "Invertera"
#define TR_AUDIO_MUTE TR("Audio av","Audio av om inget ljud")
#define TR_JITTER_FILTER "ADC-filter"
#define TR_DEAD_ZONE "Dödläge"
#define TR_RTC_CHECK TR("Kolla RTC", "Kolla RTC-batteriet")
+1
View File
@@ -1103,6 +1103,7 @@
#define TR_MENU_DISPLAY "顯示"
#define TR_MENU_OTHER "其它"
#define TR_MENU_INVERT "反向"
#define TR_AUDIO_MUTE TR("自動靜音","音頻停播時自動靜音")
#define TR_JITTER_FILTER "類比輸入濾波"
#define TR_DEAD_ZONE "死區"
#define TR_RTC_CHECK TR("檢查時間電池", "檢查時間驅動電池電壓")