Files
discord-decomp/modules/voice_calls/native/AudioManagerStore.android.tsx
T
2026-11-01 12:12:55 +02:00

87 lines
3.0 KiB
TypeScript

// Metro module 8835 (f8836).
import { NativeEventEmitter } from "react-native";
import { RTCConnectionStates } from "../../../Constants";
import { MediaEngineContextTypes } from "../../../_bundle/Module4250";
import Module8836, { getInvalidAndroidDevice, AudioDeviceType } from "../../../_bundle/Module8836";
import Module12 from "../../../_bundle/Module12";
import SentryUtils_native from "../../../utils/SentryUtils.native";
import Module589 from "../../../_bundle/Module589";
import Dispatcher from "../../../Dispatcher";
let c5760_5 = new NativeEventEmitter(Module8836);
const devices = [];
let invalidAndroidDevice = getInvalidAndroidDevice();
let invalidAndroidDevice2 = getInvalidAndroidDevice();
let c5760_9 = false;
class AudioManagerStore extends Module589.Store {
static displayName = "AudioManagerStore";
initialize() {
Module8836.getAudioDevices().then((result) => {
devices = result;
this.emitChange();
c5760_5.addListener("android-audio-devices-updated", (a0) => {
devices = a0.devices;
this.emitChange();
});
});
Module8836.getActiveAudioDevice().then((result) => {
invalidAndroidDevice = result;
this.emitChange();
c5760_5.addListener("android-active-audio-device-changed", (a0) => {
invalidAndroidDevice = a0.device;
this.emitChange();
});
});
Module8836.setSCORetryCount(4);
}
getAudioDevices() {
return devices;
}
getActiveAudioDevice() {
return invalidAndroidDevice;
}
getRequestedActiveAudioDevice() {
return invalidAndroidDevice2;
}
}
const audioManagerStore = new AudioManagerStore(Dispatcher, {
RTC_CONNECTION_STATE: function handleRTCConnectionStateUpdate(a0) {
if (a0.context !== MediaEngineContextTypes.DEFAULT) {
return false;
}
const state = a0.state;
if (RTCConnectionStates.CONNECTING === state) {
c5760_9 = true;
Module8836.setCommunicationModeOn(true);
if (invalidAndroidDevice !== invalidAndroidDevice2 && invalidAndroidDevice2.simpleDeviceType !== AudioDeviceType.INVALID) {
if (Module12.isString(invalidAndroidDevice2)) {
SentryUtils_native.captureMessage("AudioManagerStore received a string for an android audio device", {
extra: {
deviceString: invalidAndroidDevice2
}
});
} else {
Module8836.setActiveAudioDevice(invalidAndroidDevice2);
}
}
} else if (RTCConnectionStates.DISCONNECTED === state && !a0.willReconnect) {
c5760_9 = false;
Module8836.setCommunicationModeOn(false);
}
},
NATIVE_AUDIO_SET_OUTPUT_DEVICE: function handleSetActiveAudioDevice({ device }) {
invalidAndroidDevice2 = device;
if (c5760_9) {
if (Module12.isString(device)) {
SentryUtils_native.captureMessage("AudioManagerStore received a string for an android audio device", {
extra: {
deviceString: device
}
});
} else {
Module8836.setActiveAudioDevice(device);
}
}
}
});
export default audioManagerStore;