refactor(flutter): deduplicate AudioProcessingConfig construction (TODO-012)

Extract 4 identical BridgeAudioProcessingConfig constructions into
single shared construction, computing only platform-specific fields
in branches.
This commit is contained in:
Edison Jwa
2026-06-11 09:47:02 +09:00
parent b2937da726
commit ecdd68eff2
@@ -93,78 +93,51 @@ class AudioProcessingConfigState {
isLinux: linux, isLinux: linux,
); );
rust.BridgeAudioBackend processingBackend;
rust.BridgeEffectOwner aec;
rust.BridgeEffectOwner ns;
rust.BridgeEffectOwner agc;
if (android) { if (android) {
final owner = preferHardware final owner = preferHardware
? rust.BridgeEffectOwner.platform ? rust.BridgeEffectOwner.platform
: rust.BridgeEffectOwner.webrtcApm; : rust.BridgeEffectOwner.webrtcApm;
return rust.BridgeAudioProcessingConfig( processingBackend = preferHardware
route: base.route, ? rust.BridgeAudioBackend.platformVoiceProcessing
iosMode: normalizedIosProcessingMode(iosMode), : rust.BridgeAudioBackend.webrtcApm;
processingBackend: preferHardware aec = aecEnabled ? owner : rust.BridgeEffectOwner.off;
? rust.BridgeAudioBackend.platformVoiceProcessing ns = nsEnabled ? owner : rust.BridgeEffectOwner.off;
: rust.BridgeAudioBackend.webrtcApm, agc = agcEnabled ? owner : rust.BridgeEffectOwner.off;
vadBackend: vad, } else if (appleVoiceProcessing) {
aec: aecEnabled ? owner : rust.BridgeEffectOwner.off, processingBackend = rust.BridgeAudioBackend.platformVoiceProcessing;
ns: nsEnabled ? owner : rust.BridgeEffectOwner.off, aec = rust.BridgeEffectOwner.platform;
agc: agcEnabled ? owner : rust.BridgeEffectOwner.off, ns = rust.BridgeEffectOwner.platform;
hpfEnabled: hpfEnabled, agc = rust.BridgeEffectOwner.platform;
limiterEnabled: limiterEnabled, } else if (desktopWebrtcApm) {
vadHangoverMs: base.vadHangoverMs,
vadPreRollMs: base.vadPreRollMs,
vadMinTxMs: base.vadMinTxMs,
debugWavDumpEnabled: debugWavDump,
);
}
if (appleVoiceProcessing) {
return rust.BridgeAudioProcessingConfig(
route: base.route,
iosMode: normalizedIosProcessingMode(iosMode),
processingBackend: rust.BridgeAudioBackend.platformVoiceProcessing,
vadBackend: vad,
aec: rust.BridgeEffectOwner.platform,
ns: rust.BridgeEffectOwner.platform,
agc: rust.BridgeEffectOwner.platform,
hpfEnabled: hpfEnabled,
limiterEnabled: limiterEnabled,
vadHangoverMs: base.vadHangoverMs,
vadPreRollMs: base.vadPreRollMs,
vadMinTxMs: base.vadMinTxMs,
debugWavDumpEnabled: debugWavDump,
);
}
if (desktopWebrtcApm) {
final owner = rust.BridgeEffectOwner.webrtcApm; final owner = rust.BridgeEffectOwner.webrtcApm;
return rust.BridgeAudioProcessingConfig( processingBackend = rust.BridgeAudioBackend.webrtcApm;
route: base.route, aec = aecEnabled ? owner : rust.BridgeEffectOwner.off;
iosMode: normalizedIosProcessingMode(iosMode), ns = nsEnabled ? owner : rust.BridgeEffectOwner.off;
processingBackend: rust.BridgeAudioBackend.webrtcApm, agc = agcEnabled ? owner : rust.BridgeEffectOwner.off;
vadBackend: vad, } else {
aec: aecEnabled ? owner : rust.BridgeEffectOwner.off, processingBackend = rust.BridgeAudioBackend.platformVoiceProcessing;
ns: nsEnabled ? owner : rust.BridgeEffectOwner.off, aec = rust.BridgeEffectOwner.platform;
agc: agcEnabled ? owner : rust.BridgeEffectOwner.off, ns = nsEnabled
hpfEnabled: hpfEnabled, ? rust.BridgeEffectOwner.platform
limiterEnabled: limiterEnabled, : rust.BridgeEffectOwner.off;
vadHangoverMs: base.vadHangoverMs, agc = agcEnabled
vadPreRollMs: base.vadPreRollMs, ? rust.BridgeEffectOwner.platform
vadMinTxMs: base.vadMinTxMs, : rust.BridgeEffectOwner.off;
debugWavDumpEnabled: debugWavDump,
);
} }
return rust.BridgeAudioProcessingConfig( return rust.BridgeAudioProcessingConfig(
route: base.route, route: base.route,
iosMode: normalizedIosProcessingMode(iosMode), iosMode: normalizedIosProcessingMode(iosMode),
processingBackend: rust.BridgeAudioBackend.platformVoiceProcessing, processingBackend: processingBackend,
vadBackend: vad, vadBackend: vad,
aec: rust.BridgeEffectOwner.platform, aec: aec,
ns: nsEnabled ns: ns,
? rust.BridgeEffectOwner.platform agc: agc,
: rust.BridgeEffectOwner.off,
agc: agcEnabled
? rust.BridgeEffectOwner.platform
: rust.BridgeEffectOwner.off,
hpfEnabled: hpfEnabled, hpfEnabled: hpfEnabled,
limiterEnabled: limiterEnabled, limiterEnabled: limiterEnabled,
vadHangoverMs: base.vadHangoverMs, vadHangoverMs: base.vadHangoverMs,