decord/alpha/source/modules/media_engine/InputWatcher.tsx

238 lines
8 KiB
TypeScript
Raw Normal View History

2026-10-12 06:59:38 +00:00
// Module ID: 14384
// Function ID: 14385
// Name: InputWatcher
2026-10-12 06:59:38 +00:00
// Dependencies: [32, 5, 5898, 4, 2060, 5137, 1383, 14324, 4731, 6140, 584, 2]
2026-07-20 16:05:17 +00:00
2026-10-12 06:59:38 +00:00
// Module 14384 (InputWatcher)
2026-10-03 08:58:59 +00:00
import logger_Logger from "logger/Logger" /* 4 */;
2026-10-10 08:08:14 +00:00
import Constants from "Constants" /* 5898 */;
2026-10-03 08:58:59 +00:00
import _slicedToArray from "_slicedToArray" /* 32 */;
import _asyncToGenerator from "_asyncToGenerator" /* 5 */;
import size from "module_2" /* 2 */;
2026-07-23 10:11:24 +00:00
2026-10-03 08:58:59 +00:00
let c1, c4, c5, inputDetected, osVolume;
let closure_5 = Constants.WINDOWS_SETTINGS_SOUND_DEVICE_DEEPLINK_SEMVER;
const logger = new logger_Logger.Logger("InputWatcher");
const result = size.fileFinishedImporting("modules/media_engine/InputWatcher.tsx");
2026-07-29 08:29:29 +00:00
class InputWatcher {
2026-10-03 08:58:59 +00:00
constructor(mediaEngine, mediaEngineStore) {
let obj = Object.create(new.target.prototype);
2026-10-10 08:08:14 +00:00
const timeout = new obj(2060).Timeout();
2026-07-29 08:29:29 +00:00
obj.stateChangeTimeout = timeout;
obj.inputDetected = undefined;
obj.lastUpdateTime = performance.now();
2026-10-03 08:58:59 +00:00
obj.fetchInputDeviceOSConfig = _asyncToGenerator(async (arg0, value) => {
let _Promise;
let _default;
let closure_1;
2026-07-29 08:29:29 +00:00
if (c5 === 2) {
c5 = 3;
throw new TypeError("Generator functions may not be called on executing generators");
2026-10-03 08:58:59 +00:00
} else if (tmp3 === 3) {
2026-07-29 08:29:29 +00:00
if (arg0 === 1) {
throw value;
2026-07-29 08:29:29 +00:00
} else if (arg0 === 2) {
const obj2 = { value, done: true };
return obj2;
2026-07-29 08:29:29 +00:00
} else {
2026-10-12 06:59:38 +00:00
return { value: "IconComponent", done: null };
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
} else {
2026-10-03 08:58:59 +00:00
let closure_2;
2026-07-29 08:29:29 +00:00
try {
2026-10-03 08:58:59 +00:00
let guid;
let tmp;
let osMuted;
2026-07-29 08:29:29 +00:00
c5 = 2;
if (0 === c4) {
if (arg0 === 1) {
c5 = 3;
throw value;
2026-07-29 08:29:29 +00:00
} else if (arg0 === 2) {
c5 = 3;
const obj3 = { value, done: true };
return obj3;
2026-07-29 08:29:29 +00:00
} else {
2026-10-03 08:58:59 +00:00
guid = undefined;
tmp = undefined;
closure_2 = undefined;
osVolume = undefined;
osMuted = undefined;
const obj8 = _Promise(closure_2[6]);
const tmp50 = _Promise;
if (obj8.isWindows()) {
const satisfies = tmp(closure_2[7]).satisfies;
const tmp30 = tmp(closure_2[7]);
const tmp33 = tmp(closure_2[8]);
2026-07-29 08:29:29 +00:00
let release;
2026-10-03 08:58:59 +00:00
if (tmp33 != null) {
release = tmp33.os.release;
2026-07-29 08:29:29 +00:00
}
2026-10-03 08:58:59 +00:00
if (satisfies(release, c5)) {
osVolume = 1;
const mediaEngineStore = obj.mediaEngineStore;
const mediaEngineStore2 = obj.mediaEngineStore;
2026-07-29 08:29:29 +00:00
const inputDeviceId = mediaEngineStore.getInputDeviceId();
2026-10-03 08:58:59 +00:00
const tmp39 = mediaEngineStore2.getInputDevices()[inputDeviceId];
guid = undefined;
if (tmp39 != null) {
guid = tmp39.guid;
2026-07-29 08:29:29 +00:00
}
if (null != guid) {
if ("" !== guid) {
c4 = 2;
c5 = 1;
2026-10-03 08:58:59 +00:00
const obj4 = { value: _default.ensureModule("discord_voice"), done: false };
_default = tmp50(closure_2[9]).default;
return obj4;
2026-07-29 08:29:29 +00:00
}
}
2026-10-03 08:58:59 +00:00
osVolume = 0;
2026-07-29 08:29:29 +00:00
}
}
}
2026-10-03 08:58:59 +00:00
} else if (1 === c4) {
osVolume = 0;
closure_5 = closure_2;
_Promise = logger;
2026-07-29 08:29:29 +00:00
const _HermesInternal = HermesInternal;
2026-10-03 08:58:59 +00:00
logger.warn("Failed to get device OS volume and/or mute state: " + closure_5);
} else if (2 === c4) {
2026-07-29 08:29:29 +00:00
if (arg0 === 1) {
c5 = 3;
throw value;
2026-07-29 08:29:29 +00:00
} else if (arg0 === 2) {
2026-10-03 08:58:59 +00:00
osVolume = 0;
2026-07-29 08:29:29 +00:00
c5 = 3;
2026-10-03 08:58:59 +00:00
const obj5 = { value, done: true };
return obj5;
2026-07-29 08:29:29 +00:00
} else {
2026-10-03 08:58:59 +00:00
_Promise = Promise;
const mediaEngine = closure_129_0.mediaEngine;
2026-10-03 08:58:59 +00:00
const items = [mediaEngine.getDeviceOSVolume(guid), ];
const mediaEngine2 = closure_129_0.mediaEngine;
2026-10-03 08:58:59 +00:00
items[1] = mediaEngine2.getDeviceOSMuted(guid);
2026-07-29 08:29:29 +00:00
c4 = 3;
c5 = 1;
2026-10-03 08:58:59 +00:00
const obj6 = { value: all(items), done: false };
return obj6;
2026-07-29 08:29:29 +00:00
}
} else if (arg0 === 1) {
c5 = 3;
throw value;
2026-10-03 08:58:59 +00:00
} else if (arg0 === 2) {
osVolume = 0;
c5 = 3;
const obj7 = { value, done: true };
return obj7;
} else {
tmp = value;
closure_2 = osVolume(tmp, 2);
osVolume = closure_2[0];
osMuted = closure_2[1];
_Promise = tmp(closure_2[10]);
obj = { type: "AUDIO_INPUT_DEVICE_OS_CONFIG_FETCHED", osVolume, osMuted };
_Promise.dispatch(obj);
2026-07-29 08:29:29 +00:00
}
c5 = 3;
2026-10-12 06:59:38 +00:00
return { value: "IconComponent", done: null };
2026-10-03 08:58:59 +00:00
} catch (tmp42) {
closure_2 = tmp42;
if (0 === osVolume) {
c5 = 3;
throw tmp42;
2026-07-29 08:29:29 +00:00
} else {
2026-10-03 08:58:59 +00:00
c4 = 1;
2026-07-29 08:29:29 +00:00
}
2026-07-20 16:05:17 +00:00
}
}
2026-07-29 08:29:29 +00:00
});
obj.handleSilence = function handleSilence(arg0) {
2026-10-03 08:58:59 +00:00
let closure_0 = arg0;
let closure_1 = obj;
let closure_2 = !arg0;
2026-07-29 08:29:29 +00:00
const stateChangeTimeout = obj.stateChangeTimeout;
let num = 5000;
2026-10-03 08:58:59 +00:00
const start = stateChangeTimeout.start;
2026-07-29 08:29:29 +00:00
if (!arg0) {
num = 1500;
}
2026-10-03 08:58:59 +00:00
start(num, _asyncToGenerator(async (arg0, value) => {
let v1;
if (inputDetected === 2) {
inputDetected = 3;
throw new TypeError("Generator functions may not be called on executing generators");
2026-10-03 08:58:59 +00:00
} else if (tmp2 === 3) {
2026-07-29 08:29:29 +00:00
if (arg0 === 1) {
throw value;
2026-07-29 08:29:29 +00:00
} else if (arg0 === 2) {
const obj3 = { value, done: true };
return obj3;
2026-07-29 08:29:29 +00:00
} else {
2026-10-12 06:59:38 +00:00
return { value: "IconComponent", done: null };
2026-07-29 08:29:29 +00:00
}
} else {
try {
inputDetected = 2;
2026-10-03 08:58:59 +00:00
if (0 === c1) {
2026-07-29 08:29:29 +00:00
if (arg0 === 1) {
inputDetected = 3;
throw value;
2026-07-29 08:29:29 +00:00
} else if (arg0 === 2) {
inputDetected = 3;
const obj4 = { value, done: true };
return obj4;
2026-07-29 08:29:29 +00:00
} else {
2026-10-03 08:58:59 +00:00
closure_0 = tmp3;
logger.info("Silence:", closure_0);
2026-10-03 08:58:59 +00:00
c1.inputDetected = inputDetected;
2026-07-29 08:29:29 +00:00
const _performance = performance;
2026-10-03 08:58:59 +00:00
c1.lastUpdateTime = performance.now();
if (closure_0) {
2026-10-03 08:58:59 +00:00
c1 = 1;
inputDetected = 1;
2026-10-03 08:58:59 +00:00
const obj5 = { value: c1.fetchInputDeviceOSConfig(), done: false };
return obj5;
2026-07-29 08:29:29 +00:00
}
}
} else if (arg0 === 1) {
inputDetected = 3;
throw value;
2026-07-29 08:29:29 +00:00
} else if (arg0 === 2) {
inputDetected = 3;
obj = { value, done: true };
2026-07-29 08:29:29 +00:00
return obj;
}
const obj6 = { type: "AUDIO_INPUT_DETECTED", inputDetected: closure_128_1.inputDetected, lastUpdateTime: closure_128_1.lastUpdateTime };
2026-10-03 08:58:59 +00:00
const obj2 = c1(inputDetected[10]);
obj2.dispatch(obj6);
inputDetected = 3;
2026-10-12 06:59:38 +00:00
return { value: "IconComponent", done: null };
2026-10-03 08:58:59 +00:00
} catch (tmp11) {
inputDetected = 3;
2026-10-03 08:58:59 +00:00
throw tmp11;
2026-07-29 08:29:29 +00:00
}
}
}));
};
2026-10-03 08:58:59 +00:00
obj.mediaEngine = mediaEngine;
obj.mediaEngineStore = mediaEngineStore;
2026-07-29 08:29:29 +00:00
mediaEngine = obj.mediaEngine;
2026-10-10 08:08:14 +00:00
mediaEngine.on(obj(5137).MediaEngineEvent.Silence, obj.handleSilence);
2026-07-29 08:29:29 +00:00
return obj;
}
2026-10-03 08:58:59 +00:00
reset() {
const self = this;
const stateChangeTimeout = this.stateChangeTimeout;
stateChangeTimeout.stop();
if (null != this.inputDetected) {
self.handleSilence(!self.inputDetected);
}
self.inputDetected = undefined;
2026-07-29 08:29:29 +00:00
}
2026-10-03 08:58:59 +00:00
}
const prototype = InputWatcher.prototype;
2026-07-20 16:05:17 +00:00
2026-07-29 08:29:29 +00:00
export default InputWatcher;