Files
discord-decomp/_bundle/Module4287.js
T
2026-11-01 12:12:55 +02:00

1333 lines
51 KiB
JavaScript

// Metro module 4287 (f4288).
import _slicedToArray from "./_slicedToArray";
import { QUEUE_METRICS_INTERVAL_MS, ProcessPriority, SIDECHAIN_COMPRESSION_MIN_THRESHOLD, SIDECHAIN_COMPRESSION_MAX_THRESHOLD, SIDECHAIN_COMPRESSION_MIN_RATIO, SIDECHAIN_COMPRESSION_MAX_RATIO } from "./Module4250";
import { DISABLED_DEVICE_ID, DeviceTypes, DEFAULT_VOLUME, AudioSubsystems, Features, NativeFeatures, MediaEngineContextTypes, ClipsRecordingEvent, WATCHDOG_TIMEOUT_MS } from "./Module4288";
import TypedEventEmitter from "./TypedEventEmitter";
import Video from "./Video";
import Camera from "./Camera";
import { Logger } from "./log";
import * as _Module4238 from "./Module4238";
import { getVoiceEngine, supportsFeature, setProcessPriority } from "./Module4238";
import { MediaEngineEvent, BaseConnectionEvent } from "./Module4286";
import pollConnectionStats from "./pollConnectionStats";
import Module669 from "./Module669";
import Module4296 from "./Module4296";
import * as _Module4356 from "./Module4356";
import { sanitizeDevices } from "./Module4356";
function $mk114498($env) {
return (a0) => a0.id === $env[0];
}
function $mk114499($env) {
return (a0) => a0.setVideoBroadcast($env[1].shouldConnectionBroadcastVideo(a0));
}
let c2524_20;
let env2524 = {};
class MediaEngineNative extends TypedEventEmitter {
constructor() {
super();
const _this = this;
let c14086_0 = this;
this.Video = Video;
this.Camera = Camera;
this.audioInputDeviceId = DISABLED_DEVICE_ID;
this.audioOutputDeviceId = DISABLED_DEVICE_ID;
this.videoInputDeviceId = DISABLED_DEVICE_ID;
this.connections = new Set();
this.lastVoiceActivity = -1;
this.audioSubsystem = "standard";
this.audioLayer = "";
this.deviceChangeGeneration = 0;
this.consecutiveWatchdogFailures = 0;
this.codecSurvey = null;
this.clipsRecordingEventContext = {
id: "",
soundshareId: 0,
applicationName: ""
};
this.clipsRecordingEventHandlerRegistered = false;
this.logger = new Logger("MediaEngineNative");
this.handleDeviceChange = function handleDeviceChange(r11 = [], r12 = [], r9 = []) {
c14086_0.deviceChangeGeneration = c14086_0.deviceChangeGeneration + 1;
c14086_0.emit(MediaEngineEvent.DeviceChange, sanitizeDevices(DeviceTypes.AUDIO_INPUT, r11), sanitizeDevices(DeviceTypes.AUDIO_OUTPUT, r12), sanitizeDevices(DeviceTypes.VIDEO_INPUT, r9));
};
this.handleVolumeChange = (a0, a1) => {
c14086_0.emit(MediaEngineEvent.VolumeChange, a0 * DEFAULT_VOLUME, a1 * DEFAULT_VOLUME);
};
this.handleVoiceActivity = (a0, a1) => {
const lastVoiceActivity = Date.now();
if (c14086_0.listenerCount(MediaEngineEvent.VoiceActivity) > 0 && (c14086_0.lastVoiceActivity === -1 || Date.now() - c14086_0.lastVoiceActivity > 20)) {
c14086_0.lastVoiceActivity = lastVoiceActivity;
c14086_0.emit(MediaEngineEvent.VoiceActivity, a0, a1);
}
};
this.handleActiveSinksChange = (c25022_0, c25022_1) => {
c14086_0.connections.forEach((connection) => connection.setHasActiveVideoOutputSink(c25022_0, c25022_1, "MediaEngineNative.handleActiveSinksChange"));
};
this.handleNewListener = (a0) => {
if (MediaEngineEvent.VoiceActivity === a0) {
if (getVoiceEngine().setEmitVADLevel2 != null) {
getVoiceEngine().setEmitVADLevel2(true);
} else {
getVoiceEngine().setEmitVADLevel(true, false, {});
}
} else if (MediaEngineEvent.DeviceChange === a0) {
const deviceChangeGeneration = c14086_0.deviceChangeGeneration;
Promise.all([c14086_0.getAudioInputDevices(), c14086_0.getAudioOutputDevices(), c14086_0.getVideoInputDevices()]).then((result) => {
const [r8, r7, r31] = result;
if (deviceChangeGeneration === c14086_0.deviceChangeGeneration) {
c14086_0.emit(MediaEngineEvent.DeviceChange, r8, r7, r31);
}
});
}
};
this.handleRemoveListener = (a0) => {
if (a0 === MediaEngineEvent.VoiceActivity) {
if (getVoiceEngine().setEmitVADLevel2 != null) {
getVoiceEngine().setEmitVADLevel2(c14086_0.listenerCount(MediaEngineEvent.VoiceActivity) > 0);
} else {
getVoiceEngine().setEmitVADLevel(c14086_0.listenerCount(MediaEngineEvent.VoiceActivity) > 0, false, {});
}
}
};
this.handleVideoInputInitialization = (a0) => {
c14086_0.emit(MediaEngineEvent.VideoInputInitialized, a0);
};
this.handleAudioInputInitialization = (a0) => {
c14086_0.emit(MediaEngineEvent.AudioInputInitialized, a0);
};
this.handleNativeScreenSharePickerUpdate = (a0, a1) => {
c14086_0.emit(MediaEngineEvent.NativeScreenSharePickerUpdate, a0, a1);
};
this.handleNativeScreenSharePickerCancel = (a0) => {
c14086_0.emit(MediaEngineEvent.NativeScreenSharePickerCancel, a0);
};
this.handleNativeScreenSharePickerError = (a0) => {
c14086_0.emit(MediaEngineEvent.NativeScreenSharePickerError, a0);
};
this.handleAudioDeviceModuleErrorCallback = (a0, a1) => {
if (a0 !== -100) {
c14086_0.emit(MediaEngineEvent.AudioDeviceModuleError, "RustAudioDeviceModule", a0, a1);
}
};
this.handleVideoCodecErrorCallback = (a0) => {
c14086_0.emit(MediaEngineEvent.VideoCodecError, a0);
};
this.handleVoiceProcessingErrorCallback = (a0) => {
c14086_0.emit(MediaEngineEvent.VoiceProcessingError, a0);
};
this.handleVideoFilterErrorCallback = (a0, a1) => {
c14086_0.emit(MediaEngineEvent.VideoFilterError, a0, a1);
};
this.handleSystemMicrophoneModeChangeCallback = (a0) => {
c14086_0.emit(MediaEngineEvent.SystemMicrophoneModeChange, a0);
};
this.logger.enableNativeLogger(true);
const voiceEngine5 = getVoiceEngine();
voiceEngine5.setDeviceChangeCallback(this.handleDeviceChange);
voiceEngine5.setVolumeChangeCallback(this.handleVolumeChange);
voiceEngine5.setOnVoiceCallback(this.handleVoiceActivity);
const setVideoInputInitializationCallback = voiceEngine5.setVideoInputInitializationCallback;
if (setVideoInputInitializationCallback != null) {
setVideoInputInitializationCallback.call(voiceEngine5, this.handleVideoInputInitialization);
}
const setAudioInputInitializationCallback = voiceEngine5.setAudioInputInitializationCallback;
if (setAudioInputInitializationCallback != null) {
setAudioInputInitializationCallback.call(voiceEngine5, this.handleAudioInputInitialization);
}
const setAudioDeviceModuleErrorCallback = voiceEngine5.setAudioDeviceModuleErrorCallback;
if (setAudioDeviceModuleErrorCallback != null) {
setAudioDeviceModuleErrorCallback.call(voiceEngine5, this.handleAudioDeviceModuleErrorCallback);
}
voiceEngine5.setTransportOptions({
idleJitterBufferFlush: true,
ducking: false
});
const setNativeScreenSharePickerCallbacks = voiceEngine5.setNativeScreenSharePickerCallbacks;
if (setNativeScreenSharePickerCallbacks != null) {
setNativeScreenSharePickerCallbacks.call(voiceEngine5, this.handleNativeScreenSharePickerUpdate, this.handleNativeScreenSharePickerCancel, this.handleNativeScreenSharePickerError);
}
const setVideoCodecErrorCallback = voiceEngine5.setVideoCodecErrorCallback;
if (setVideoCodecErrorCallback != null) {
setVideoCodecErrorCallback.call(voiceEngine5, this.handleVideoCodecErrorCallback);
}
const setVoiceProcessingErrorCallback = voiceEngine5.setVoiceProcessingErrorCallback;
if (setVoiceProcessingErrorCallback != null) {
setVoiceProcessingErrorCallback.call(voiceEngine5, this.handleVoiceProcessingErrorCallback);
}
const setVideoFilterErrorCallback = voiceEngine5.setVideoFilterErrorCallback;
if (setVideoFilterErrorCallback != null) {
setVideoFilterErrorCallback.call(voiceEngine5, this.handleVideoFilterErrorCallback);
}
const setSystemMicrophoneModeChangeCallback = voiceEngine5.setSystemMicrophoneModeChangeCallback;
if (setSystemMicrophoneModeChangeCallback != null) {
setSystemMicrophoneModeChangeCallback.call(voiceEngine5, this.handleSystemMicrophoneModeChangeCallback);
}
this.on("removeListener", this.handleRemoveListener);
this.on("newListener", this.handleNewListener);
if (getVoiceEngine().getAudioSubsystem != null) {
getVoiceEngine().getAudioSubsystem((a0, a1) => {
_this.audioSubsystem = a0;
_this.audioLayer = a1;
});
} else if (getVoiceEngine().getUseLegacyAudioDevice != null) {
this.audioSubsystem = getVoiceEngine().getUseLegacyAudioDevice() ? AudioSubsystems.LEGACY : AudioSubsystems.STANDARD;
}
if (voiceEngine5.pingVoiceThread != null) {
this.watchdogTick();
}
if (voiceEngine5.setActiveSinksChangeCallback != null) {
voiceEngine5.setActiveSinksChangeCallback(this.handleActiveSinksChange);
}
const setOnClipsMlDetection = voiceEngine5.setOnClipsMlDetection;
if (setOnClipsMlDetection != null) {
setOnClipsMlDetection.call(voiceEngine5, (a0) => {
if (a0.length > 0) {
_this.emit(MediaEngineEvent.ClipsMlDetection, a0);
}
});
}
let c14087_1, _pollMetrics2;
pollConnectionStats(this);
let c14087_0 = this;
const pollMetrics2 = function pollMetrics() {
return _pollMetrics2.apply(this, arguments);
};
_pollMetrics2 = function _pollMetrics() {
const r9 = async () => {
let c31340_0, c31340_1;
L13: {
let env31927;
c31340_1 = void 0;
const r26 = env31927 = {};
c31340_0 = r26;
env31927[0] = void 0;
env31927[1] = void 0;
if (c14087_1) {
break L13;
}
env31927[0] = getVoiceEngine();
env31927[1] = await new Promise((c32115_0) => {
const r3 = env31927[0];
const pollQueueMetrics = r3.pollQueueMetrics;
if (pollQueueMetrics != null) {
pollQueueMetrics.call(r3, (a0) => {
c32115_0(a0);
});
}
});
env31927[1].periodMs = QUEUE_METRICS_INTERVAL_MS;
c14087_0.emit(MediaEngineEvent.VoiceQueueMetrics, env31927[1]);
setTimeout(pollMetrics2, QUEUE_METRICS_INTERVAL_MS);
return void 0;
}
};
_pollMetrics2 = r9;
return r9.apply(this, arguments);
};
c14087_1 = false;
this.on(MediaEngineEvent.Destroy, () => {
c14087_1 = true;
return true;
});
setTimeout(pollMetrics2, QUEUE_METRICS_INTERVAL_MS);
}
destroy() {
this.eachConnection((a0) => a0.destroy());
this.emit(MediaEngineEvent.Destroy);
this.removeAllListeners();
}
interact() {}
static supported() {
return _Module4238.supported();
}
supported() {
return true;
}
supports(a0) {
if (Features.LEGACY_AUDIO_SUBSYSTEM === a0) {
return supportsFeature(NativeFeatures.VOICE_LEGACY_SUBSYSTEM);
}
if (Features.EXPERIMENTAL_AUDIO_SUBSYSTEM === a0) {
return supportsFeature(NativeFeatures.VOICE_EXPERIMENTAL_SUBSYSTEM);
}
if (Features.AUTOMATIC_AUDIO_SUBSYSTEM === a0) {
return supportsFeature(NativeFeatures.VOICE_AUTOMATIC_SUBSYSTEM);
}
if (Features.AUDIO_SUBSYSTEM_DEFERRED_SWITCH === a0) {
return supportsFeature(NativeFeatures.VOICE_SUBSYSTEM_DEFERRED_SWITCH);
}
if (Features.AUDIO_BYPASS_SYSTEM_INPUT_PROCESSING === a0) {
return supportsFeature(NativeFeatures.VOICE_BYPASS_SYSTEM_AUDIO_INPUT_PROCESSING);
}
if (Features.DEBUG_LOGGING === a0) {
return supportsFeature(NativeFeatures.DEBUG_LOGGING);
}
if (Features.SOUNDSHARE === a0) {
return supportsFeature(NativeFeatures.SOUNDSHARE);
}
if (Features.SCREEN_SOUNDSHARE === a0) {
return supportsFeature(NativeFeatures.SCREEN_SOUNDSHARE);
}
if (Features.ELEVATED_HOOK === a0) {
return supportsFeature(NativeFeatures.ELEVATED_HOOK);
}
if (Features.LOOPBACK === a0) {
return supportsFeature(NativeFeatures.LOOPBACK);
}
if (Features.WUMPUS_VIDEO === a0) {
return supportsFeature(NativeFeatures.WUMPUS_VIDEO);
}
if (Features.HYBRID_VIDEO === a0) {
return supportsFeature(NativeFeatures.HYBRID_VIDEO);
}
if (Features.ATTENUATION !== a0 && Features.VIDEO_HOOK !== a0) {
if (Features.EXPERIMENTAL_SOUNDSHARE === a0) {
return supportsFeature(NativeFeatures.SOUNDSHARE_LOOPBACK);
}
if (Features.REMOTE_LOCUS_NETWORK_CONTROL === a0) {
return supportsFeature(NativeFeatures.REMOTE_LOCUS_NETWORK_CONTROL);
}
if (Features.SCREEN_PREVIEWS === a0) {
return supportsFeature(NativeFeatures.SCREEN_PREVIEWS);
}
if (Features.CLIPS === a0) {
return supportsFeature(NativeFeatures.CLIPS);
}
if (Features.CLIPS_RECORDING_READY_EVENTS === a0) {
return supportsFeature(NativeFeatures.CLIPS_RECORDING_READY_EVENTS);
}
if (Features.WINDOW_PREVIEWS === a0) {
return supportsFeature(NativeFeatures.WINDOW_PREVIEWS);
}
if (Features.AUDIO_DEBUG_STATE === a0) {
return supportsFeature(NativeFeatures.AUDIO_DEBUG_STATE);
}
if (Features.CONNECTION_REPLAY === a0) {
return supportsFeature(NativeFeatures.CONNECTION_REPLAY);
}
if (Features.SIMULCAST === a0) {
return supportsFeature(NativeFeatures.SIMULCAST) && supportsFeature(NativeFeatures.SIMULCAST_BUGFIX);
}
if (Features.RTC_REGION_RANKING === a0) {
return supportsFeature(NativeFeatures.RTC_REGION_RANKING);
}
if (Features.ELECTRON_VIDEO === a0) {
return supportsFeature(NativeFeatures.ELECTRON_VIDEO);
}
if (Features.MEDIAPIPE === a0) {
return supportsFeature(NativeFeatures.MEDIAPIPE);
}
if (Features.FIXED_KEYFRAME_INTERVAL === a0) {
return supportsFeature(NativeFeatures.FIXED_KEYFRAME_INTERVAL);
}
if (Features.FIRST_FRAME_CALLBACK === a0) {
return supportsFeature(NativeFeatures.FIRST_FRAME_CALLBACK);
}
if (Features.REMOTE_USER_MULTI_STREAM === a0) {
return supportsFeature(NativeFeatures.REMOTE_USER_MULTI_STREAM);
}
if (Features.IMAGE_QUALITY_MEASUREMENT === a0) {
return supportsFeature(NativeFeatures.IMAGE_QUALITY_MEASUREMENT);
}
if (Features.GO_LIVE_HARDWARE === a0) {
return supportsFeature(NativeFeatures.GO_LIVE_HARDWARE);
}
if (Features.SCREEN_CAPTURE_KIT === a0) {
return supportsFeature(NativeFeatures.SCREEN_CAPTURE_KIT);
}
if (Features.NATIVE_SCREENSHARE_PICKER === a0) {
return supportsFeature(NativeFeatures.NATIVE_SCREENSHARE_PICKER);
}
if (Features.MLS_PAIRWISE_FINGERPRINTS === a0) {
return supportsFeature(NativeFeatures.MLS_PAIRWISE_FINGERPRINTS);
}
if (Features.OFFLOAD_ADM_CONTROLS === a0) {
return supportsFeature(NativeFeatures.OFFLOAD_ADM_CONTROLS);
}
if (Features.VAAPI === a0) {
return supportsFeature(NativeFeatures.VAAPI);
}
if (Features.GAMESCOPE_CAPTURE === a0) {
return supportsFeature(NativeFeatures.GAMESCOPE_CAPTURE);
}
if (Features.ASYNC_VIDEO_INPUT_DEVICE_INIT === a0) {
return supportsFeature(NativeFeatures.ASYNC_VIDEO_INPUT_DEVICE_INIT);
}
if (Features.PORT_AWARE_LATENCY_TESTING === a0) {
return supportsFeature(NativeFeatures.PORT_AWARE_LATENCY_TESTING);
}
if (Features.SPATIAL_AUDIO === a0) {
return supportsFeature(NativeFeatures.SPATIAL_AUDIO);
}
if (Features.KRISP_NATIVE_ERROR === a0) {
return supportsFeature(NativeFeatures.KRISP_NATIVE_ERROR);
}
if (Features.DIAGNOSTICS !== a0 && Features.NATIVE_PING !== a0 && Features.AUTOMATIC_VAD !== a0 && Features.AUDIO_INPUT_DEVICE !== a0 && Features.AUDIO_OUTPUT_DEVICE !== a0 && Features.QOS !== a0 && Features.VOICE_PROCESSING !== a0 && Features.AUTO_ENABLE !== a0 && Features.VIDEO !== a0 && Features.DESKTOP_CAPTURE !== a0 && Features.DESKTOP_CAPTURE_FORMAT !== a0 && Features.DESKTOP_CAPTURE_APPLICATIONS !== a0 && Features.VOICE_PANNING !== a0 && Features.AEC_DUMP !== a0 && Features.DISABLE_VIDEO !== a0 && Features.SAMPLE_PLAYBACK !== a0 && Features.NOISE_SUPPRESSION !== a0 && Features.AUTOMATIC_GAIN_CONTROL !== a0 && Features.SIDECHAIN_COMPRESSION !== a0) {
return false;
}
return true;
}
return (Module669 == null ? void 0 : Module669.os?.family) != null && /^win/i.test(Module669.os.family);
}
connect(a0, a1, a2) {
if (!supportsFeature(NativeFeatures.EXPERIMENT_CONFIG)) {
a2.experiments = void 0;
}
const r20 = Module4296.create(a0, a1, a2);
let c14088_0 = r20;
r20.on(BaseConnectionEvent.Destroy, (a0) => {
this.connections.delete(a0);
if (this.connectionsEmpty()) {
setProcessPriority(ProcessPriority.NORMAL);
const voiceEngine5 = getVoiceEngine();
const setNativeThreadsPriority = voiceEngine5.setNativeThreadsPriority;
if (setNativeThreadsPriority != null) {
setNativeThreadsPriority.call(voiceEngine5, 0);
}
}
});
r20.on(BaseConnectionEvent.Connected, () => {
c14088_0.setVideoBroadcast(this.shouldConnectionBroadcastVideo(c14088_0));
});
r20.on(BaseConnectionEvent.Silence, (a0) => {
this.emit(MediaEngineEvent.Silence, a0);
});
this.connections.add(r20);
let processPriority = a2.processPriority;
if (processPriority == null) {
processPriority = ProcessPriority.HIGH;
}
setProcessPriority(processPriority);
if (a2.threadPriorityConfiguration != null) {
const voiceEngine5 = getVoiceEngine();
const setNativeThreadsPriority = voiceEngine5.setNativeThreadsPriority;
if (setNativeThreadsPriority != null) {
setNativeThreadsPriority.call(voiceEngine5, a2.threadPriorityConfiguration);
}
}
this.emit(MediaEngineEvent.Connection, r20);
return r20;
}
shouldConnectionBroadcastVideo(a0) {
return a0.context === MediaEngineContextTypes.DEFAULT && this.videoInputDeviceId !== DISABLED_DEVICE_ID || a0.hasDesktopSource();
}
eachConnection(c14089_0, c14089_1) {
this.connections.forEach((connection) => {
if (!(c14089_1 != null && connection.context !== c14089_1)) {
c14089_0(connection);
}
});
}
enable() {
return Promise.resolve();
}
setAudioMixerOptions(a0) {
if (supportsFeature(NativeFeatures.SPATIAL_AUDIO)) {
getVoiceEngine().setTransportOptions({
audioMixerOptions: a0
});
}
}
setAudioInputBypassSystemProcessing(a0) {
getVoiceEngine().setTransportOptions({
bypassSystemProcessing: a0
});
}
setInputVolume(a0) {
let r5 = a0;
const voiceEngine5 = getVoiceEngine();
if (a0 == null) {
r5 = DEFAULT_VOLUME;
}
voiceEngine5.setInputVolume(r5 / DEFAULT_VOLUME);
}
setOutputVolume(a0) {
let r5 = a0;
const voiceEngine5 = getVoiceEngine();
if (a0 == null) {
r5 = DEFAULT_VOLUME;
}
voiceEngine5.setOutputVolume(r5 / DEFAULT_VOLUME);
}
getAudioInputDevices() {
return _Module4356.getAudioInputDevices();
}
getNoiseCancellationStats() {
return new Promise((resolve) => {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.getNoiseCancellationStats != null) {
voiceEngine5.getNoiseCancellationStats((a0) => resolve(JSON.parse(a0)));
} else {
resolve(null);
}
});
}
setNoiseCancellationEnableStats(a0) {
const voiceEngine5 = getVoiceEngine();
const setNoiseCancellationEnableStats2 = voiceEngine5.setNoiseCancellationEnableStats;
if (setNoiseCancellationEnableStats2 != null) {
setNoiseCancellationEnableStats2.call(voiceEngine5, a0);
}
}
setAudioInputDevice(a0) {
const audioInputDeviceId = this.audioInputDeviceId;
this.audioInputDeviceId = a0;
if (supportsFeature(NativeFeatures.SET_AUDIO_DEVICE_BY_ID)) {
getVoiceEngine().setInputDevice(a0);
} else {
_Module4356.getAudioInputDevices().then((result) => {
let r5 = result.find((item) => item.id === a0);
if (r5 == null) {
r5 = result[0];
}
if (r5 != null) {
getVoiceEngine().setInputDevice(r5.index);
}
});
}
this.emit(MediaEngineEvent.SelectedDeviceChange, DeviceTypes.AUDIO_INPUT, audioInputDeviceId, a0);
}
getAudioOutputDevices() {
return _Module4356.getAudioOutputDevices();
}
setAudioOutputDevice(a0) {
const audioOutputDeviceId = this.audioOutputDeviceId;
this.audioOutputDeviceId = a0;
if (supportsFeature(NativeFeatures.SET_AUDIO_DEVICE_BY_ID)) {
getVoiceEngine().setOutputDevice(a0);
} else {
_Module4356.getAudioOutputDevices().then((result) => {
let r5 = result.find((item) => item.id === a0);
if (r5 == null) {
r5 = result[0];
}
if (r5 != null) {
getVoiceEngine().setOutputDevice(r5.index);
}
});
}
this.emit(MediaEngineEvent.SelectedDeviceChange, DeviceTypes.AUDIO_OUTPUT, audioOutputDeviceId, a0);
}
getVideoInputDevices() {
return _Module4356.getVideoInputDevices();
}
async setVideoInputDevice(a0) {
let env14092 = {
$parent: env2524
};
env14092[0] = a0;
env14092[1] = this;
let env29307;
const r24 = env14092;
let c25025_1 = r24;
const r11 = env29307 = {
$parent: r24
};
let c25025_0 = r11;
env29307[0] = void 0;
env29307[1] = void 0;
env29307[2] = void 0;
env29307[0] = (await env14092[1].getVideoInputDevices()).find($mk114498(env14092));
env29307[1] = env29307[0] != null ? env29307[0].id : DISABLED_DEVICE_ID;
if (env29307[1] !== env14092[1].videoInputDeviceId) {
env14092[1].videoInputDeviceId = env29307[1];
if (supportsFeature(NativeFeatures.SET_VIDEO_DEVICE_BY_ID)) {
env29307[2] = env29307[0] != null ? env29307[0].originalId != null && env29307[0].originalId !== "" ? env29307[0].originalId : env29307[0].id : DISABLED_DEVICE_ID;
getVoiceEngine().setVideoInputDevice(env29307[2]);
} else {
getVoiceEngine().setVideoInputDevice(env29307[0] != null ? env29307[0].index : -1);
}
env14092[1].connections.forEach($mk114499(env14092));
}
}
getVideoInputDeviceId() {
return this.videoInputDeviceId;
}
setAsyncVideoInputDeviceInit(a0) {
const voiceEngine5 = getVoiceEngine();
const setAsyncVideoInputDeviceInitSetting = voiceEngine5.setAsyncVideoInputDeviceInitSetting;
if (setAsyncVideoInputDeviceInitSetting != null) {
setAsyncVideoInputDeviceInitSetting.call(voiceEngine5, a0);
}
const voiceEngine6 = getVoiceEngine();
const setAsyncVideoInputDeviceInit2 = voiceEngine6.setAsyncVideoInputDeviceInit;
if (setAsyncVideoInputDeviceInit2 != null) {
setAsyncVideoInputDeviceInit2.call(voiceEngine6, a0);
}
}
getCodecCapabilities(a0) {
getVoiceEngine().getCodecCapabilities(a0);
}
setGoLiveSource(a0, a1) {
let c14093_1 = a0;
if (a0 != null) {
this.eachConnection((a0) => {
if (!(a1 === MediaEngineContextTypes.STREAM && a0.streamUserId !== a0.userId)) {
a0.setGoLiveSource(c14093_1);
a0.setVideoBroadcast(this.shouldConnectionBroadcastVideo(a0));
}
}, a1);
} else {
this.eachConnection((a0) => {
a0.clearDesktopSource();
a0.clearGoLiveDevices();
a0.setSoundshareSource(0, false);
a0.setVideoBroadcast(this.shouldConnectionBroadcastVideo(a0));
}, a1);
}
}
setClipsSource(a0) {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.setClipsSource != null && voiceEngine5.setOnClipsRecordingEvent != null && voiceEngine5.applyClipsSettings != null) {
if (a0 != null) {
const quality = a0.quality;
const { frameRate, resolution } = quality;
const width = resolution <= 480 ? resolution / 3 * 4 : resolution / 9 * 16;
const desktopDescription = a0.desktopDescription;
const { id, soundshareId, useLoopback, useVideoHook, useHookFramePacer, useGraphicsCapture, useQuartzCapturer, allowScreenCaptureKit, hdrCaptureMode, videoHookAllowDx12, minCaptureWidth, minCaptureHeight } = desktopDescription;
this.clipsRecordingEventContext = {
id,
soundshareId,
applicationName: a0.applicationName
};
this.registerClipsRecordingEventHandler();
const applyClipsSettings = voiceEngine5.applyClipsSettings;
if (applyClipsSettings != null) {
const bitratePercent = a0.bitratePercent;
applyClipsSettings.call(voiceEngine5, {
useVideoHook,
useHookFramePacer,
useGraphicsCapture,
useQuartzCapturer,
allowScreenCaptureKit,
hdrCaptureMode,
videoHookAllowDx12,
soundshareLoopback: useLoopback,
frameRate,
width,
height: resolution,
bitrateKbps: bitratePercent != null ? Math.round(6000 * Math.min(100, Math.max(10, bitratePercent)) / 100) : void 0,
videoEncoderExperiments: a0.videoEncoderExperiments,
minCaptureWidth,
minCaptureHeight
});
}
const r71 = _slicedToArray(id != null ? id.split(":") : ["", ""], 2);
r71[0];
voiceEngine5.setClipsSource({
id: r71[1],
soundshareId: soundshareId ?? 0
});
} else {
voiceEngine5.setClipsSource({
id: "",
soundshareId: 0
});
}
}
}
setClipsQualitySettings(a0, a1, a2, a3) {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.applyClipsQualitySettings == null) {
return false;
}
voiceEngine5.applyClipsQualitySettings(a0, a1, a2);
const bitrateKbps = a3 != null ? Math.round(6000 * Math.min(100, Math.max(10, a3)) / 100) : void 0;
if (bitrateKbps != null && voiceEngine5.applyClipsSettings != null) {
voiceEngine5.applyClipsSettings({
bitrateKbps
});
}
return true;
}
setSoundshareSource(c14094_0, c14094_1, a2) {
this.eachConnection((a0) => {
if (!(a2 === MediaEngineContextTypes.STREAM && a0.streamUserId !== a0.userId)) {
a0.setSoundshareSource(c14094_0, c14094_1);
}
}, a2);
}
getDesktopSource() {
return Promise.reject(new Error("NO_STREAM"));
}
getScreenPreviews(c14095_0, c14095_1, a2) {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.setPreviewsUseWgc != null) {
voiceEngine5.setPreviewsUseWgc(a2);
}
return new Promise((resolve) => {
if (getVoiceEngine().getScreenPreviews != null) {
getVoiceEngine().getScreenPreviews(c14095_0, c14095_1, (a0) => {
resolve(a0.map((item, index) => ({
...item,
name: "Screen " + (index + 1)
})));
});
} else {
resolve([]);
}
});
}
setClipsModulePath(a0) {
const voiceEngine5 = getVoiceEngine();
const setClipsModulePath2 = voiceEngine5.setClipsModulePath;
if (setClipsModulePath2 != null) {
setClipsModulePath2.call(voiceEngine5, a0);
}
}
setClipsDataPath(a0) {
const voiceEngine5 = getVoiceEngine();
const setClipsDataPath2 = voiceEngine5.setClipsDataPath;
if (setClipsDataPath2 != null) {
setClipsDataPath2.call(voiceEngine5, a0);
}
}
setClipsSentryConfig(a0, a1, a2) {
const voiceEngine5 = getVoiceEngine();
const setClipsSentryConfig2 = voiceEngine5.setClipsSentryConfig;
if (setClipsSentryConfig2 != null) {
setClipsSentryConfig2.call(voiceEngine5, a0, a1, a2);
}
}
setClipsV3Enabled(a0) {
if (a0) {
this.registerClipsRecordingEventHandler();
}
const voiceEngine5 = getVoiceEngine();
const setClipsV3Enabled2 = voiceEngine5.setClipsV3Enabled;
if (setClipsV3Enabled2 != null) {
setClipsV3Enabled2.call(voiceEngine5, a0);
}
}
registerClipsRecordingEventHandler() {
const voiceEngine5 = getVoiceEngine();
if (!(voiceEngine5.setOnClipsRecordingEvent == null || this.clipsRecordingEventHandlerRegistered)) {
this.clipsRecordingEventHandlerRegistered = true;
voiceEngine5.setOnClipsRecordingEvent((a0, a1) => {
const clipsRecordingEventContext = this.clipsRecordingEventContext;
const { id, soundshareId, applicationName } = clipsRecordingEventContext;
this.logger.info(`Clips recording event: ${ClipsRecordingEvent[a0]} received for stream ${id} and sound ${soundshareId}.`);
if (a0 === ClipsRecordingEvent.GoLiveEnded) {
this.emit(MediaEngineEvent.ClipsRecordingRestartNeeded);
} else if (a0 === ClipsRecordingEvent.Error) {
this.emit(MediaEngineEvent.ClipsInitFailure, a1 != null ? a1 !== "" ? a1 : "Failed to set clips source in media engine" : "Failed to set clips source in media engine", applicationName);
} else if (a0 === ClipsRecordingEvent.IdleShutdown) {
this.emit(MediaEngineEvent.ClipsBridgeIdleShutdown);
} else if (a0 === ClipsRecordingEvent.RecordingHealthy) {
this.emit(MediaEngineEvent.ClipsRecordingHealthy);
} else if (a0 === ClipsRecordingEvent.RecordingActive) {
this.emit(MediaEngineEvent.ClipsRecordingReadyChanged, true);
} else if (a0 === ClipsRecordingEvent.RecordingInactive) {
this.emit(MediaEngineEvent.ClipsRecordingReadyChanged, false);
} else if (!(a0 !== ClipsRecordingEvent.Ended && a0 !== ClipsRecordingEvent.StoppedByGoLive)) {
this.emit(MediaEngineEvent.ClipsRecordingEnded, id, soundshareId);
}
});
}
}
setClipsUIActive(a0) {
const voiceEngine5 = getVoiceEngine();
const setClipsUIActive2 = voiceEngine5.setClipsUIActive;
if (setClipsUIActive2 != null) {
setClipsUIActive2.call(voiceEngine5, a0);
}
}
setClipsV3MLEnabled(a0) {
const voiceEngine5 = getVoiceEngine();
const setClipsV3MLEnabled2 = voiceEngine5.setClipsV3MLEnabled;
if (setClipsV3MLEnabled2 != null) {
setClipsV3MLEnabled2.call(voiceEngine5, a0);
}
}
setClipsRecordingEnabled(a0) {
const voiceEngine5 = getVoiceEngine();
const setClipsRecordingEnabled2 = voiceEngine5.setClipsRecordingEnabled;
if (setClipsRecordingEnabled2 != null) {
setClipsRecordingEnabled2.call(voiceEngine5, a0);
}
}
hasSetClipsRecordingEnabled() {
return getVoiceEngine().setClipsRecordingEnabled != null;
}
setClipBufferLength(a0) {
const voiceEngine5 = getVoiceEngine();
const setClipBufferLength2 = voiceEngine5.setClipBufferLength;
if (setClipBufferLength2 != null) {
setClipBufferLength2.call(voiceEngine5, a0);
}
}
getSystemSteadyClockNowMs() {
const voiceEngine5 = getVoiceEngine();
const getSystemSteadyClockNowMs2 = voiceEngine5.getSystemSteadyClockNowMs;
let r11 = getSystemSteadyClockNowMs2 == null ? void 0 : getSystemSteadyClockNowMs2.call(voiceEngine5);
if (r11 == null) {
r11 = null;
}
return r11;
}
saveClipEx(c14097_0) {
const voiceEngine = getVoiceEngine();
return new Promise((c25027_0, reject) => {
const onSuccess2 = function onSuccess(a0, a1, a2, a3) {
let clipStats;
try {
clipStats = JSON.parse(a1 !== "" ? a1 : "{}");
} catch ($e) {
clipStats = {};
}
const r12 = {
duration: a0,
clipStats
};
if (a2 !== void 0 && a2.length > 0) {
r12.thumbnail = a2;
}
if (a3 !== void 0 && a3.length > 0) {
r12.metadata = a3;
}
return c25027_0(r12);
};
const onFailure = function onFailure(a0) {
let r10;
try {
r10 = reject(JSON.parse(a0 !== "" ? a0 : "{}"));
} catch ($e) {
return reject({
errorMessage: "clip save failed",
errorAt: "unknown"
});
}
return r10;
};
if (voiceEngine.saveClipEx == null) {
const { filepath, metadata, thumbnailMs } = c14097_0;
let startMs = c14097_0.startMs;
let endMs = c14097_0.endMs;
let trimStartMs = c14097_0.trimStartMs;
let trimEndMs = c14097_0.trimEndMs;
const userId = c14097_0.userId;
const r3 = userId != null;
if (r3 ? voiceEngine.saveClipForUser == null && voiceEngine.saveClipForUserWithTime == null : voiceEngine.setClipBufferLength == null || voiceEngine.saveClip == null && voiceEngine.saveClipWithTime == null) {
reject("unsupported");
} else {
const onLegacySuccess = function onLegacySuccess(a0, a1, a2) {
return onSuccess2(a0, a2, a1, void 0);
};
const onLegacyTimeSuccess = function onLegacyTimeSuccess(a0, a1, a2) {
return onSuccess2(a0, a1, void 0, a2);
};
if (r3) {
if (voiceEngine.saveClipForUserWithTime != null) {
if (startMs == null) {
startMs = null;
}
if (endMs == null) {
endMs = null;
}
if (trimStartMs == null) {
trimStartMs = null;
}
if (trimEndMs == null) {
trimEndMs = null;
}
voiceEngine.saveClipForUserWithTime(userId, filepath, metadata, startMs, endMs, trimStartMs, trimEndMs, onLegacyTimeSuccess, onFailure, thumbnailMs);
} else {
const r85 = supportsFeature(NativeFeatures.CLIPS_THUMBNAIL);
const saveClipForUser = voiceEngine.saveClipForUser;
if (r85) {
if (saveClipForUser != null) {
saveClipForUser.call(voiceEngine, userId, filepath, metadata, onLegacySuccess, onFailure, thumbnailMs);
}
} else if (saveClipForUser != null) {
saveClipForUser.call(voiceEngine, userId, filepath, metadata, onLegacySuccess, onFailure);
}
}
} else if (voiceEngine.saveClipWithTime != null) {
voiceEngine.saveClipWithTime(filepath, metadata, startMs == null ? null : startMs, endMs == null ? null : endMs, trimStartMs == null ? null : trimStartMs, trimEndMs == null ? null : trimEndMs, onLegacyTimeSuccess, onFailure, thumbnailMs);
} else {
const r56 = supportsFeature(NativeFeatures.CLIPS_THUMBNAIL);
const saveClip = voiceEngine.saveClip;
if (r56) {
if (saveClip != null) {
saveClip.call(voiceEngine, filepath, metadata, onLegacySuccess, onFailure, thumbnailMs);
}
} else if (saveClip != null) {
saveClip.call(voiceEngine, filepath, metadata, onLegacySuccess, onFailure);
}
}
}
} else {
voiceEngine.saveClipEx(c14097_0, onSuccess2, onFailure);
}
});
}
updateClipMetadata(c14098_0, c14098_1) {
const voiceEngine2 = getVoiceEngine();
return voiceEngine2.updateClipMetadata == null ? Promise.reject("unsupported") : new Promise((resolve, reject) => {
voiceEngine2.updateClipMetadata(c14098_0, c14098_1, resolve, reject);
});
}
saveScreenshot(c14099_0, c14099_1, c14099_2, c14099_3, c14099_4) {
const voiceEngine3 = getVoiceEngine();
return voiceEngine3.saveScreenshot == null ? Promise.reject("unsupported") : new Promise((c25028_0, reject) => {
let r6 = c14099_3;
if (r6 == null) {
r6 = "";
}
let r19 = c14099_4;
if (r19 == null) {
r19 = 0;
}
voiceEngine3.saveScreenshot(c14099_0, c14099_1, r6, c14099_2, r19, (a0) => {
c25028_0(Buffer.from(a0));
}, reject);
});
}
exportClip(c14100_0, c14100_1) {
const voiceEngine4 = getVoiceEngine();
return voiceEngine4.exportClip == null ? Promise.reject("unsupported") : new Promise((c25029_0, reject) => {
voiceEngine4.exportClip(c14100_0, c14100_1, (a0) => c25029_0(new Blob([a0])), reject);
});
}
hasExportClipToFile() {
return getVoiceEngine().exportClipToFile != null;
}
setClipsPerfMonitoring(a0, a1, a2) {
const setClipsPerfMonitoring2 = getVoiceEngine().setClipsPerfMonitoring;
return setClipsPerfMonitoring2 == null ? Promise.reject("unsupported") : setClipsPerfMonitoring2(a0, a1, a2);
}
exportClipToFile(c14101_0, c14101_1, c14101_2) {
const exportClipToFile2 = getVoiceEngine().exportClipToFile;
return exportClipToFile2 == null ? Promise.reject("unsupported") : new Promise((c25030_0, reject) => {
exportClipToFile2(c14101_0, c14101_1, c14101_2, (a0, a1) => {
if (typeof a0 === "string") {
c25030_0({
filepath: a0,
formattedForUpload: a1 === true
});
} else {
reject("unsupported: native exportClipToFile returned non-string");
}
}, reject);
});
}
getWindowPreviews(c14102_0, c14102_1, a2) {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.setPreviewsUseWgc != null) {
voiceEngine5.setPreviewsUseWgc(a2);
}
return new Promise((resolve) => {
if (getVoiceEngine().getWindowPreviews != null) {
getVoiceEngine().getWindowPreviews(c14102_0, c14102_1, (a0) => {
resolve(a0);
});
} else {
resolve([]);
}
});
}
async getSingleWindowPreview(c14103_0, c14103_1, c14103_2, c14103_3) {
let r68;
let c29308_0;
L16: {
c29308_0 = void 0;
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.setPreviewsUseWgc != null) {
voiceEngine5.setPreviewsUseWgc(c14103_3);
}
if (getVoiceEngine().getSingleWindowPreview != null) {
c29308_0 = await getVoiceEngine().getSingleWindowPreview(c14103_0, c14103_1, c14103_2);
const r67 = c29308_0.length > 0;
r68 = null;
if (!r67) {
break L16;
}
r68 = c29308_0[0];
break L16;
}
return null;
}
return r68;
}
setAudioSubsystem(a0) {
if (getVoiceEngine().setAudioSubsystem != null) {
getVoiceEngine().setAudioSubsystem(a0);
} else {
getVoiceEngine().setUseLegacyAudioDevice(a0 === AudioSubsystems.LEGACY);
}
}
setOffloadAdmControls(a0) {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.setOffloadAdmControls != null) {
voiceEngine5.setOffloadAdmControls(a0);
}
}
updateFieldTrial(a0, a1) {
const voiceEngine5 = getVoiceEngine();
const updateFieldTrial2 = voiceEngine5.updateFieldTrial;
if (updateFieldTrial2 != null) {
updateFieldTrial2.call(voiceEngine5, a0, a1);
}
}
queueAudioSubsystem(a0) {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.queueAudioSubsystem != null) {
voiceEngine5.queueAudioSubsystem(a0);
} else {
this.setAudioSubsystem(a0);
}
}
getAudioSubsystem() {
return this.audioSubsystem;
}
getAudioLayer() {
return this.audioLayer;
}
getDebugLogging() {
return !!this.supports(Features.DEBUG_LOGGING) && getVoiceEngine().getDebugLogging();
}
setDebugLogging(a0) {
if (this.supports(Features.DEBUG_LOGGING)) {
getVoiceEngine().setDebugLogging(a0);
}
}
setLoopback(a0, a1) {
let r4 = a0;
if (getVoiceEngine().setLoopback != null) {
getVoiceEngine().setLoopback(a0, {
echoCancellation: a1.echoCancellation,
noiseSuppression: a1.noiseSuppression,
automaticGainControl: a1.automaticGainControlConfig?.enabled,
automaticGainControlConfig: a1.automaticGainControlConfig,
noiseCancellation: a1.noiseCancellation,
noiseCancellationDuringProcessing: a1.noiseCancellationDuringProcessing
});
}
if (getVoiceEngine().setEmitVADLevel2 != null) {
const voiceEngine5 = getVoiceEngine();
if (!a0) {
r4 = this.listenerCount(MediaEngineEvent.VoiceActivity) > 0;
}
voiceEngine5.setEmitVADLevel2(r4);
} else {
getVoiceEngine().setEmitVADLevel(a0 ? a0 : this.listenerCount(MediaEngineEvent.VoiceActivity) > 0, a0, {
echoCancellation: a1.echoCancellation,
noiseSuppression: a1.noiseSuppression,
automaticGainControl: a1.automaticGainControlConfig?.enabled,
noiseCancellation: a1.noiseCancellation,
noiseCancellationDuringProcessing: a1.noiseCancellationDuringProcessing
});
}
}
getLoopback() {
return false;
}
getCodecSurvey() {
return this.codecSurvey != null ? Promise.resolve(this.codecSurvey) : new Promise((c25033_0, reject) => {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.getCodecSurvey != null) {
voiceEngine5.getCodecSurvey((a0) => {
this.codecSurvey = a0;
c25033_0(a0);
});
} else {
reject(new Error("getCodecSurvey is not implemented."));
}
});
}
writeAudioDebugState() {
return new Promise((resolve, reject) => {
const writeAudioDebugState2 = getVoiceEngine().writeAudioDebugState;
if (writeAudioDebugState2 != null) {
writeAudioDebugState2();
resolve();
} else {
reject(new Error("Audio debug state is not supported."));
}
});
}
startAecDump() {}
stopAecDump() {}
setAecDump(a0) {
const voiceEngine5 = getVoiceEngine();
const setAecDump2 = voiceEngine5.setAecDump;
if (setAecDump2 != null) {
setAecDump2.call(voiceEngine5, a0);
}
}
startRecordingRawSamples(a0) {
const voiceEngine5 = getVoiceEngine();
const startRecordingRawSamples2 = voiceEngine5.startRecordingRawSamples;
if (startRecordingRawSamples2 != null) {
startRecordingRawSamples2.call(voiceEngine5, a0);
}
}
stopRecordingRawSamples() {
const voiceEngine5 = getVoiceEngine();
const stopRecordingRawSamples2 = voiceEngine5.stopRecordingRawSamples;
if (stopRecordingRawSamples2 != null) {
stopRecordingRawSamples2.call(voiceEngine5);
}
}
processBatchAudioFiles(a0, a1, a2, a3) {
const voiceEngine5 = getVoiceEngine();
const processBatchAudioFiles2 = voiceEngine5.processBatchAudioFiles;
if (processBatchAudioFiles2 != null) {
processBatchAudioFiles2.call(voiceEngine5, a0, a1, a2, a3);
}
}
cancelBatchAudioProcessing() {
const voiceEngine5 = getVoiceEngine();
const cancelBatchAudioProcessing2 = voiceEngine5.cancelBatchAudioProcessing;
if (cancelBatchAudioProcessing2 != null) {
cancelBatchAudioProcessing2.call(voiceEngine5);
}
}
rankRtcRegions(c14105_0) {
return new Promise((c25034_0, reject) => {
const rankRtcRegions2 = getVoiceEngine().rankRtcRegions;
if (rankRtcRegions2 != null) {
rankRtcRegions2(c14105_0, (a0) => c25034_0(a0));
} else {
reject(new Error("RTC region latency test is not supported."));
}
});
}
createReplayConnection(a0, a1) {
const replay = Module4296.createReplay(a0, a1);
let r14 = null;
if (replay != null) {
replay.on(BaseConnectionEvent.Destroy, (a0) => {
this.connections.delete(a0);
if (this.connectionsEmpty()) {
setProcessPriority(ProcessPriority.NORMAL);
}
});
this.connections.add(replay);
setProcessPriority(ProcessPriority.HIGH);
this.emit(MediaEngineEvent.Connection, replay);
r14 = replay;
}
return r14;
}
setOnVideoContainerResized(a0) {
Video.onContainerResized = a0;
}
setMaxSyncDelayOverride(a0) {
const setMaxSyncDelayOverride2 = getVoiceEngine().setMaxSyncDelayOverride;
if (setMaxSyncDelayOverride2 != null) {
setMaxSyncDelayOverride2(a0);
}
}
applyMediaFilterSettings(a0) {
let r19;
const voiceEngine5 = getVoiceEngine();
const { applyMediaFilterSettings: applyMediaFilterSettings2, applyMediaFilterSettingsWithCallback } = voiceEngine5;
if (applyMediaFilterSettingsWithCallback != null) {
r19 = new Promise((resolve) => {
applyMediaFilterSettingsWithCallback(a0, resolve);
});
} else {
if (applyMediaFilterSettings2 != null) {
applyMediaFilterSettings2(a0);
}
r19 = Promise.resolve();
}
return r19;
}
startLocalAudioRecording(c14108_0) {
return new Promise((c25035_0, reject) => {
const startLocalAudioRecording2 = getVoiceEngine().startLocalAudioRecording;
if (startLocalAudioRecording2 != null) {
startLocalAudioRecording2(c14108_0, (a0) => {
if (a0) {
c25035_0();
} else {
reject(new Error("Failed to start local audio recording."));
}
});
} else {
reject(new Error("startLocalAudioRecording is not supported."));
}
});
}
stopLocalAudioRecording(c14109_0) {
const voiceEngine5 = getVoiceEngine();
const stopLocalAudioRecording2 = voiceEngine5.stopLocalAudioRecording;
if (stopLocalAudioRecording2 != null) {
stopLocalAudioRecording2.call(voiceEngine5, (a0, a1) => {
c14109_0(a0, a1);
});
}
if (this.listenerCount(MediaEngineEvent.VoiceActivity) > 0 && getVoiceEngine().setEmitVADLevel2 != null) {
getVoiceEngine().setEmitVADLevel2(true);
}
}
setHasFullbandPerformance(a0) {
const voiceEngine5 = getVoiceEngine();
const setHasFullbandPerformance2 = voiceEngine5.setHasFullbandPerformance;
if (setHasFullbandPerformance2 != null) {
setHasFullbandPerformance2.call(voiceEngine5, a0);
}
}
setNcModels(a0) {
const voiceEngine5 = getVoiceEngine();
const setNcModels2 = voiceEngine5.setNcModels;
if (setNcModels2 != null) {
setNcModels2.call(voiceEngine5, a0);
}
}
getSupportedSecureFramesProtocolVersion() {
let SupportedSecureFramesProtocolVersion = getVoiceEngine().SupportedSecureFramesProtocolVersion;
if (SupportedSecureFramesProtocolVersion == null) {
SupportedSecureFramesProtocolVersion = 0;
}
return SupportedSecureFramesProtocolVersion;
}
getSupportedBandwidthEstimationExperiments(a0) {
const voiceEngine5 = getVoiceEngine();
const getSupportedBandwidthEstimationExperiments2 = voiceEngine5.getSupportedBandwidthEstimationExperiments;
if (getSupportedBandwidthEstimationExperiments2 != null) {
getSupportedBandwidthEstimationExperiments2.call(voiceEngine5, a0);
}
}
getMLSSigningKey(c14110_0, c14110_1) {
return new Promise((c25036_0, reject) => {
const voiceEngine5 = getVoiceEngine();
if (voiceEngine5.getMLSSigningKey != null) {
voiceEngine5.getMLSSigningKey(c14110_0, c14110_1, (a0, a1) => c25036_0({
key: a0,
signature: a1
}));
} else {
reject(new Error("NOT_IMPLEMENTED"));
}
});
}
setSidechainCompression(a0) {
const voiceEngine5 = getVoiceEngine();
const setSidechainCompression2 = voiceEngine5.setSidechainCompression;
if (setSidechainCompression2 != null) {
setSidechainCompression2.call(voiceEngine5, a0);
}
}
setSidechainCompressionStrength(a0) {
const r0 = 100 - a0;
const threshold = SIDECHAIN_COMPRESSION_MIN_THRESHOLD + (SIDECHAIN_COMPRESSION_MAX_THRESHOLD - SIDECHAIN_COMPRESSION_MIN_THRESHOLD) * r0 / 100;
const ratio = SIDECHAIN_COMPRESSION_MIN_RATIO + (SIDECHAIN_COMPRESSION_MAX_RATIO - SIDECHAIN_COMPRESSION_MIN_RATIO) * r0 / 100;
const voiceEngine5 = getVoiceEngine();
const applySidechainCompressionSettings = voiceEngine5.applySidechainCompressionSettings;
if (applySidechainCompressionSettings != null) {
applySidechainCompressionSettings.call(voiceEngine5, {
threshold,
ratio
});
}
}
setVoiceSampleRateCap(a0) {
const voiceEngine5 = getVoiceEngine();
const setVoiceSampleRateCap2 = voiceEngine5.setVoiceSampleRateCap;
if (setVoiceSampleRateCap2 != null) {
setVoiceSampleRateCap2.call(voiceEngine5, a0);
}
}
setVoiceChannelCountCap(a0) {
const voiceEngine5 = getVoiceEngine();
const setVoiceChannelCountCap2 = voiceEngine5.setVoiceChannelCountCap;
if (setVoiceChannelCountCap2 != null) {
setVoiceChannelCountCap2.call(voiceEngine5, a0);
}
}
setNativeDesktopVideoSourcePickerActive(a0) {
const voiceEngine5 = getVoiceEngine();
const setNativeDesktopVideoSourcePickerActive2 = voiceEngine5.setNativeDesktopVideoSourcePickerActive;
if (setNativeDesktopVideoSourcePickerActive2 != null) {
setNativeDesktopVideoSourcePickerActive2.call(voiceEngine5, a0);
}
}
presentNativeScreenSharePicker(a0) {
const voiceEngine5 = getVoiceEngine();
const presentNativeScreenSharePicker2 = voiceEngine5.presentNativeScreenSharePicker;
if (presentNativeScreenSharePicker2 != null) {
presentNativeScreenSharePicker2.call(voiceEngine5, a0 == null ? "" : a0);
}
}
releaseNativeDesktopVideoSourcePickerStream() {
const voiceEngine5 = getVoiceEngine();
const releaseNativeDesktopVideoSourcePickerStream2 = voiceEngine5.releaseNativeDesktopVideoSourcePickerStream;
if (releaseNativeDesktopVideoSourcePickerStream2 != null) {
releaseNativeDesktopVideoSourcePickerStream2.call(voiceEngine5);
}
}
async getSystemMicrophoneMode() {
let r24 = void 0;
const voiceEngine5 = getVoiceEngine();
const getSystemMicrophoneMode2 = voiceEngine5.getSystemMicrophoneMode;
if (getSystemMicrophoneMode2 != null) {
r24 = getSystemMicrophoneMode2.call(voiceEngine5);
}
let value = await r24;
if (value == null) {
value = "";
}
return value;
}
showSystemCaptureConfigurationUI(a0) {
const voiceEngine5 = getVoiceEngine();
const showSystemCaptureConfigurationUI2 = voiceEngine5.showSystemCaptureConfigurationUI;
if (showSystemCaptureConfigurationUI2 != null) {
showSystemCaptureConfigurationUI2.call(voiceEngine5, a0);
}
}
fetchAsyncResources() {
return Promise.resolve();
}
async getDeviceOSVolume(c14111_0) {
let r25 = void 0;
const voiceEngine5 = getVoiceEngine();
const getDeviceOSVolume2 = voiceEngine5.getDeviceOSVolume;
if (getDeviceOSVolume2 != null) {
r25 = getDeviceOSVolume2.call(voiceEngine5, c14111_0);
}
return await r25;
}
async getDeviceOSMuted(c14112_0) {
let r25 = void 0;
const voiceEngine5 = getVoiceEngine();
const getDeviceOSMuted2 = voiceEngine5.getDeviceOSMuted;
if (getDeviceOSMuted2 != null) {
r25 = getDeviceOSMuted2.call(voiceEngine5, c14112_0);
}
return await r25;
}
getDeviceAudioEffects(a0) {
const voiceEngine5 = getVoiceEngine();
return voiceEngine5.getDeviceAudioEffects != null ? voiceEngine5.getDeviceAudioEffects(a0) : Promise.reject(new Error("Device audio effect querying not supported"));
}
watchdogTick() {
let c14113_0 = false;
getVoiceEngine().pingVoiceThread(() => {
c14113_0 = true;
this.consecutiveWatchdogFailures = 0;
});
setTimeout(() => {
if (!c14113_0) {
const consecutiveWatchdogFailures = this.consecutiveWatchdogFailures + 1;
this.consecutiveWatchdogFailures = consecutiveWatchdogFailures;
if (consecutiveWatchdogFailures > 1) {
this.emit(MediaEngineEvent.WatchdogTimeout);
} else {
this.watchdogTick();
}
} else {
this.watchdogTick();
}
}, WATCHDOG_TIMEOUT_MS);
}
connectionsEmpty() {
return this.connections.size === 0;
}
}
c2524_20 = MediaEngineNative;
export default MediaEngineNative;