Fold the Android noise suppression toggle into its slider, and let the muted-talk beep be turned off

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-26 23:42:43 +00:00
parent f1e7c93594
commit 6aa4be38ee

View File

@@ -38,7 +38,7 @@ import com.ts3client.audio.InputLevel
import com.ts3client.config.Settings
import kotlin.math.roundToInt
private val DENOISE_LEVELS = listOf("6 dB", "12 dB", "18 dB", "21 dB")
private val DENOISE_LEVELS = listOf("Off", "6 dB", "12 dB", "18 dB", "21 dB")
/** Audio devices, transmission, voice activation, processing and playback. */
@Composable
@@ -50,8 +50,8 @@ fun SoundSettingsScreen(vm: SessionController, onBack: () -> Unit) {
}
var inputMode by remember { mutableStateOf(settings.inputMode) }
var vadMode by remember { mutableStateOf(settings.vadMode) }
var denoise by remember { mutableStateOf(settings.denoise) }
var agc by remember { mutableStateOf(settings.agc) }
var mutedTalkWarning by remember { mutableStateOf(settings.mutedTalkWarning) }
var threshold by remember { mutableFloatStateOf(settings.vadThresholdDb.toFloat()) }
var inputDevice by remember { mutableStateOf(settings.inputDevice) }
var outputDevice by remember { mutableStateOf(settings.outputDevice) }
@@ -127,13 +127,13 @@ fun SoundSettingsScreen(vm: SessionController, onBack: () -> Unit) {
}
Section("Processing")
Toggle("Noise suppression", denoise) {
denoise = it
change { this.denoise = it }
}
if (denoise) {
Level("Suppression", settings.denoiserLevel.toFloat(), 0f..3f, { DENOISE_LEVELS[it.roundToInt()] }, steps = 2) {
change { denoiserLevel = it.roundToInt() }
val suppression = if (settings.denoise) settings.denoiserLevel + 1 else 0
Level("Noise suppression", suppression.toFloat(), 0f..DENOISE_LEVELS.lastIndex.toFloat(),
{ DENOISE_LEVELS[it.roundToInt()] }, steps = DENOISE_LEVELS.lastIndex - 1) {
val step = it.roundToInt()
change {
denoise = step > 0
if (step > 0) denoiserLevel = step - 1
}
}
Toggle("Automatic gain control", agc) {
@@ -164,6 +164,10 @@ fun SoundSettingsScreen(vm: SessionController, onBack: () -> Unit) {
Level("Volume", settings.soundVolume.toFloat(), 0f..1f, { "${(it * 100).roundToInt()} %" }) {
change { soundVolume = it.toDouble() }
}
Toggle("Beep when talking while muted", mutedTalkWarning) {
mutedTalkWarning = it
change { this.mutedTalkWarning = it }
}
}
}
}