@ -570,6 +570,7 @@ private fun RadioSettingsTab() {
var vadEnabled by remember { mutableStateOf ( provider . getInt ( " radio.vad_enabled " ) != 0 ) }
var vadThreshold by remember { mutableStateOf ( provider . getInt ( " radio.vad_threshold " ) ) }
var vadHangover by remember { mutableStateOf ( provider . getInt ( " radio.vad_hangover_ms " ) ) }
var vadCompMaxGain by remember { mutableStateOf ( provider . getInt ( " radio.vad_compressor_max_gain_db " ) ) }
val vadActive by RadioAudioEngine . instance ( ) . vadActiveFlow . collectAsState ( )
Text ( stringResource ( R . string . radio _vad ) , style = MaterialTheme . typography . titleMedium )
Row ( verticalAlignment = Alignment . CenterVertically ) {
@ -604,6 +605,15 @@ private fun RadioSettingsTab() {
RadioAudioEngine . instance ( ) . reconfigure ( )
}
} )
LabeledSlider ( stringResource ( R . string . vad _max _gain ) , vadCompMaxGain . toFloat ( ) , 1f .. 60f , 58 , " ${vadCompMaxGain} dB " ,
{ vadCompMaxGain = it . toInt ( ) } , onValueChangeFinished = {
scope . launch {
provider . setValue ( " radio.vad_compressor_max_gain_db " , vadCompMaxGain . toString ( ) )
NativeLib . setChatSetting ( " radio_vad_compressor_max_gain_db " , vadCompMaxGain . toString ( ) )
RadioAudioEngine . instance ( ) . reconfigure ( )
}
} )
Text ( stringResource ( R . string . vad _compressor _hint ) , style = MaterialTheme . typography . bodySmall )
HorizontalDivider ( Modifier . padding ( vertical = 4. dp ) )
/* ── Volume-кнопки PTT ── */