decord/source/modules/voice_calls/native/AudioSessionModeManager.tsx

85 lines
3.2 KiB
TypeScript
Raw Normal View History

2026-07-29 08:29:29 +00:00
// Module ID: 16135
// Function ID: 16136
// Name: handleAVAudioSessionMode
// Dependencies: [17, 1371, 5011, 4208, 1218, 1372, 4236, 1931, 4205, 6328, 676, 500, 16136, 5134, 2]
2026-07-20 16:05:17 +00:00
2026-07-29 08:29:29 +00:00
// Module 16135 (handleAVAudioSessionMode)
import participantFromServer from "participantFromServer";
import buildStageChannelUserRoles from "buildStageChannelUserRoles";
import reset from "reset";
import fetchFingerprint from "fetchFingerprint";
import ensureGuildLoaded from "ensureGuildLoaded";
import _detectH265HardwareDecode from "_detectH265HardwareDecode";
import handleConnectionOpen from "handleConnectionOpen";
import updateVoiceState from "updateVoiceState";
import getState from "getState";
2026-07-23 10:11:24 +00:00
import { AppStates } from "ME";
import set from "set";
2026-07-29 08:29:29 +00:00
import "initialize";
import set from "buildStageChannelUserRoles";
2026-07-23 10:11:24 +00:00
const require = arg1;
2026-07-20 16:05:17 +00:00
function handleAVAudioSessionMode() {
2026-07-23 10:11:24 +00:00
channel = channel.getChannel(voiceChannelId.getVoiceChannelId());
2026-07-20 16:05:17 +00:00
if (null == channel) {
let VIDEO = VoiceEngine.AVAudioSessionMode.DEFAULT;
2026-07-29 08:29:29 +00:00
let obj2 = VoiceEngine;
2026-07-20 16:05:17 +00:00
} else {
let hasVideoResult = allActiveStreams.getAllActiveStreams().length > 0;
if (!hasVideoResult) {
2026-07-29 08:29:29 +00:00
hasVideoResult = updateVoiceState.hasVideo(channel.id);
2026-07-20 16:05:17 +00:00
}
if (!hasVideoResult) {
hasVideoResult = videoEnabled.isVideoEnabled();
}
if (!hasVideoResult) {
if (null == currentEmbeddedActivity.getCurrentEmbeddedActivity()) {
const AVAudioSessionMode = VoiceEngine.AVAudioSessionMode;
2026-07-29 08:29:29 +00:00
if (obj.shouldImmediatelyRequestVoicePermissions(id.getId(), channel.id)) {
VIDEO = AVAudioSessionMode.VOICE;
obj2 = tmp9;
} else {
VIDEO = AVAudioSessionMode.LISTEN;
obj2 = tmp9;
}
obj = require(16136) /* handleVoiceChannelSelect */;
2026-07-20 16:05:17 +00:00
}
}
VIDEO = VoiceEngine.AVAudioSessionMode.VIDEO;
2026-07-29 08:29:29 +00:00
obj2 = VoiceEngine;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
let tmp12 = VIDEO !== VIDEO;
2026-07-20 16:05:17 +00:00
if (tmp12) {
tmp12 = state.getState() === AppStates.ACTIVE;
}
if (tmp12) {
2026-07-29 08:29:29 +00:00
const result = obj2.setAVAudioSessionMode(VIDEO);
2026-07-20 16:05:17 +00:00
}
}
2026-07-23 10:11:24 +00:00
if (set.isAndroid()) {
2026-07-29 08:29:29 +00:00
set = { setAVAudioSessionMode: null, AVAudioSessionMode: null };
set[0] = function setAVAudioSessionMode(VIDEO) {
2026-07-20 16:05:17 +00:00
};
2026-07-29 08:29:29 +00:00
set[1] = { VOICE: "AVAudioSessionModeVoiceChat", VIDEO: "AVAudioSessionModeVideoChat", LISTEN: "AVAudioSessionModeSpokenAudio", DEFAULT: "AVAudioSessionModeDefault" };
2026-07-23 10:11:24 +00:00
let VoiceEngine = set;
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
VoiceEngine = require("get ActivityIndicator").NativeModules.VoiceEngine;
2026-07-20 16:05:17 +00:00
}
const VOICE = VoiceEngine.AVAudioSessionMode.VOICE;
2026-07-29 08:29:29 +00:00
let prototype = function AudioSessionModeManager() {
const applyArgumentsResult = HermesBuiltin.applyArguments(new.target, new.target);
const result = new Map().set(reset, handleAVAudioSessionMode);
const result1 = result.set(updateVoiceState, handleAVAudioSessionMode);
const result2 = result1.set(_detectH265HardwareDecode, handleAVAudioSessionMode);
const result3 = result2.set(buildStageChannelUserRoles, handleAVAudioSessionMode);
applyArgumentsResult.stores = result3.set(participantFromServer, handleAVAudioSessionMode);
return applyArgumentsResult;
}.prototype;
class prototype extends tmp2 {
}
prototype = new prototype();
2026-07-23 10:11:24 +00:00
let result = set.fileFinishedImporting("modules/voice_calls/native/AudioSessionModeManager.tsx");
2026-07-20 16:05:17 +00:00
2026-07-29 08:29:29 +00:00
export default prototype;