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,
|
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,
|
||||||
|
|||||||
Reference in New Issue
Block a user