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:
@@ -93,78 +93,51 @@ class AudioProcessingConfigState {
|
||||
isLinux: linux,
|
||||
);
|
||||
|
||||
rust.BridgeAudioBackend processingBackend;
|
||||
rust.BridgeEffectOwner aec;
|
||||
rust.BridgeEffectOwner ns;
|
||||
rust.BridgeEffectOwner agc;
|
||||
|
||||
if (android) {
|
||||
final owner = preferHardware
|
||||
? rust.BridgeEffectOwner.platform
|
||||
: rust.BridgeEffectOwner.webrtcApm;
|
||||
return rust.BridgeAudioProcessingConfig(
|
||||
route: base.route,
|
||||
iosMode: normalizedIosProcessingMode(iosMode),
|
||||
processingBackend: preferHardware
|
||||
? rust.BridgeAudioBackend.platformVoiceProcessing
|
||||
: rust.BridgeAudioBackend.webrtcApm,
|
||||
vadBackend: vad,
|
||||
aec: aecEnabled ? owner : rust.BridgeEffectOwner.off,
|
||||
ns: nsEnabled ? owner : rust.BridgeEffectOwner.off,
|
||||
agc: agcEnabled ? owner : rust.BridgeEffectOwner.off,
|
||||
hpfEnabled: hpfEnabled,
|
||||
limiterEnabled: limiterEnabled,
|
||||
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) {
|
||||
processingBackend = preferHardware
|
||||
? rust.BridgeAudioBackend.platformVoiceProcessing
|
||||
: rust.BridgeAudioBackend.webrtcApm;
|
||||
aec = aecEnabled ? owner : rust.BridgeEffectOwner.off;
|
||||
ns = nsEnabled ? owner : rust.BridgeEffectOwner.off;
|
||||
agc = agcEnabled ? owner : rust.BridgeEffectOwner.off;
|
||||
} else if (appleVoiceProcessing) {
|
||||
processingBackend = rust.BridgeAudioBackend.platformVoiceProcessing;
|
||||
aec = rust.BridgeEffectOwner.platform;
|
||||
ns = rust.BridgeEffectOwner.platform;
|
||||
agc = rust.BridgeEffectOwner.platform;
|
||||
} else if (desktopWebrtcApm) {
|
||||
final owner = rust.BridgeEffectOwner.webrtcApm;
|
||||
return rust.BridgeAudioProcessingConfig(
|
||||
route: base.route,
|
||||
iosMode: normalizedIosProcessingMode(iosMode),
|
||||
processingBackend: rust.BridgeAudioBackend.webrtcApm,
|
||||
vadBackend: vad,
|
||||
aec: aecEnabled ? owner : rust.BridgeEffectOwner.off,
|
||||
ns: nsEnabled ? owner : rust.BridgeEffectOwner.off,
|
||||
agc: agcEnabled ? owner : rust.BridgeEffectOwner.off,
|
||||
hpfEnabled: hpfEnabled,
|
||||
limiterEnabled: limiterEnabled,
|
||||
vadHangoverMs: base.vadHangoverMs,
|
||||
vadPreRollMs: base.vadPreRollMs,
|
||||
vadMinTxMs: base.vadMinTxMs,
|
||||
debugWavDumpEnabled: debugWavDump,
|
||||
);
|
||||
processingBackend = rust.BridgeAudioBackend.webrtcApm;
|
||||
aec = aecEnabled ? owner : rust.BridgeEffectOwner.off;
|
||||
ns = nsEnabled ? owner : rust.BridgeEffectOwner.off;
|
||||
agc = agcEnabled ? owner : rust.BridgeEffectOwner.off;
|
||||
} else {
|
||||
processingBackend = rust.BridgeAudioBackend.platformVoiceProcessing;
|
||||
aec = rust.BridgeEffectOwner.platform;
|
||||
ns = nsEnabled
|
||||
? rust.BridgeEffectOwner.platform
|
||||
: rust.BridgeEffectOwner.off;
|
||||
agc = agcEnabled
|
||||
? rust.BridgeEffectOwner.platform
|
||||
: rust.BridgeEffectOwner.off;
|
||||
}
|
||||
|
||||
return rust.BridgeAudioProcessingConfig(
|
||||
route: base.route,
|
||||
iosMode: normalizedIosProcessingMode(iosMode),
|
||||
processingBackend: rust.BridgeAudioBackend.platformVoiceProcessing,
|
||||
processingBackend: processingBackend,
|
||||
vadBackend: vad,
|
||||
aec: rust.BridgeEffectOwner.platform,
|
||||
ns: nsEnabled
|
||||
? rust.BridgeEffectOwner.platform
|
||||
: rust.BridgeEffectOwner.off,
|
||||
agc: agcEnabled
|
||||
? rust.BridgeEffectOwner.platform
|
||||
: rust.BridgeEffectOwner.off,
|
||||
aec: aec,
|
||||
ns: ns,
|
||||
agc: agc,
|
||||
hpfEnabled: hpfEnabled,
|
||||
limiterEnabled: limiterEnabled,
|
||||
vadHangoverMs: base.vadHangoverMs,
|
||||
|
||||
Reference in New Issue
Block a user