decord/alpha/source/modules/gateway/LocalVoiceStateManager.tsx

96 lines
3.7 KiB
TypeScript
Raw Permalink Normal View History

2026-10-13 12:43:34 +00:00
// Module ID: 14307
// Function ID: 14308
// Name: LocalVoiceStateManager
2026-10-13 12:43:34 +00:00
// Dependencies: [2065, 2012, 5211, 1085, 14305, 2041, 1403, 13954, 2]
2026-07-20 16:05:17 +00:00
2026-10-13 12:43:34 +00:00
// Module 14307 (LocalVoiceStateManager)
2026-10-09 10:00:15 +00:00
import FlagUtils from "FlagUtils" /* 1403 */;
import UserSettings from "UserSettings" /* 2041 */;
2026-10-13 12:43:34 +00:00
import isClipsEnabled from "isClipsEnabled" /* 13954 */;
2026-10-10 08:08:14 +00:00
import ChannelStore from "ChannelStore" /* 2065 */;
2026-10-09 10:00:15 +00:00
import MediaEngineStore from "MediaEngineStore" /* 2012 */;
2026-10-10 08:08:14 +00:00
import RTCRegionStore from "RTCRegionStore" /* 5211 */;
2026-10-03 08:58:59 +00:00
import Constants from "Constants" /* 1085 */;
2026-10-13 12:43:34 +00:00
import StateManager from "StateManager" /* 14305 */;
2026-10-03 08:58:59 +00:00
import size from "module_2" /* 2 */;
2026-07-23 10:11:24 +00:00
2026-10-03 08:58:59 +00:00
let hasOwnProperty;
let metroRequire;
({ ChannelTypes: hasOwnProperty, VoiceFlags: metroRequire } = Constants);
2026-10-03 08:58:59 +00:00
class LocalVoiceStateManager extends StateManager {
constructor(socket) {
const tmp = new LocalVoiceStateManager(new.target);
tmp.socket = socket;
2026-07-29 08:29:29 +00:00
return tmp;
2026-07-20 16:05:17 +00:00
}
2026-10-03 08:58:59 +00:00
computeVoiceFlags() {
const ClipsAllowVoiceRecording = UserSettings.ClipsAllowVoiceRecording;
const setting = ClipsAllowVoiceRecording.getSetting();
const obj = FlagUtils;
const setFlagResult = obj.setFlag(0, metroRequire.ALLOW_VOICE_RECORDING, setting);
const setFlag = FlagUtils.setFlag;
const CLIPS_ENABLED = metroRequire.CLIPS_ENABLED;
FlagUtils;
const obj2 = isClipsEnabled;
return setFlag(setFlagResult, CLIPS_ENABLED, obj2.isClipsEnabled());
}
getInitialState() {
const obj = { guildId: null, channelId: null, selfMute: MediaEngineStore.isSelfMute(), selfDeaf: MediaEngineStore.isSelfDeaf(), selfVideo: MediaEngineStore.isVideoEnabled(), preferredRegion: null, preferredRegions: null, videoStreamParameters: null, flags: 0 };
return obj;
}
getNextState(guildId) {
const obj = { guildId: guildId.guildId, channelId: guildId.channelId, selfMute: MediaEngineStore.isSelfMute(), selfDeaf: MediaEngineStore.isSelfDeaf(), selfVideo: MediaEngineStore.isVideoEnabled(), preferredRegion: RTCRegionStore.getPreferredRegion(), preferredRegions: RTCRegionStore.getPreferredRegions(), videoStreamParameters: MediaEngineStore.getVideoStreamParameters(), flags: this.computeVoiceFlags() };
return obj;
}
shouldCommit() {
const socket = this.socket;
return socket.isSessionEstablished();
}
didCommit(state) {
let channelId;
let flags;
let guildId;
let preferredRegion;
let preferredRegions;
let selfDeaf;
let selfMute;
let selfVideo;
({ guildId, channelId, selfMute, selfDeaf, selfVideo, preferredRegion, preferredRegions, flags } = state);
const videoStreamParameters = state.videoStreamParameters;
if (flags === undefined) {
flags = 0;
}
const self = this;
if (selfVideo) {
const channel = ChannelStore.getChannel(channelId);
let type;
if (channel != null) {
type = channel.type;
}
if (type === hasOwnProperty.GUILD_STAGE_VOICE) {
const socket2 = self.socket;
const obj = { guildId, channelId, selfMute, selfDeaf, selfVideo, preferredRegion, preferredRegions, videoStreamParameters, flags };
socket2.voiceStateUpdate(obj);
}
}
const socket = self.socket;
socket.voiceStateUpdate({ guildId, channelId, selfMute, selfDeaf, selfVideo, preferredRegion, preferredRegions, flags });
}
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
const prototype = LocalVoiceStateManager.prototype;
Object.defineProperty(prototype, "guildId", {
get: function guildId() {
return this.getState().guildId;
},
set: undefined
});
Object.defineProperty(prototype, "channelId", {
get: function channelId() {
return this.getState().channelId;
},
set: undefined
});
const result = size.fileFinishedImporting("modules/gateway/LocalVoiceStateManager.tsx");
2026-07-20 16:05:17 +00:00
2026-07-29 08:29:29 +00:00
export default LocalVoiceStateManager;