Files
discord-decomp/sources/utils/StreamQualityUtils.tsx
T
2026-07-27 16:20:00 +03:00

180 lines
9.3 KiB
TypeScript

/* Metro module 8912; source: utils/StreamQualityUtils.tsx; dependencies: [31, 4399, 1226, 1867, 4294, 1878, 661, 4282, 1880, 4291, 1244, 566, 683, 2] */
function _fun69523(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#69523, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:6, offset: 0x01c75b26, size: 449 bytes, params: 8, frame: 22
let env0_0 = require;
const closure = function(a0) {
return a0.quality != null || a0.guildPremiumTier != null;
};
const closure2 = function(a0, a1, a2) {
var env0_0 = a0;
var env0_1 = a1;
var env0_2 = a2;
return ApplicationStreamSettingRequirements.find(_fun69526);
};
const closure3 = function(a0) {
var value = null;
return value == a0.maxResolution || value == a0.maxFrameRate ? value : {maxFrameRate: a0.maxFrameRate,
maxResolution: a0.maxResolution};
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const applicationStreamingSettingsStore = importDefault(4399) /* metro dependency 4399: ApplicationStreamingSettingsStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const env0_9 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
const streamSettingsConstantsModule = require(4282) /* metro dependency 4282: StreamSettingsConstants */;
const env0_10 = streamSettingsConstantsModule.ApplicationStreamFPS;
const env0_11 = streamSettingsConstantsModule.ApplicationStreamResolutions;
const env0_12 = streamSettingsConstantsModule.ApplicationStreamSettingRequirements;
const env0_13 = streamSettingsConstantsModule.getApplicationFramerate;
const env0_14 = streamSettingsConstantsModule.getApplicationResolution;
const env0_15 = (require(1880) /* metro dependency 1880: PremiumConstants */).StreamQualitiesToPremiumType;
const env0_16 = (require(4291) /* metro dependency 4291: Constants */).ResolutionTypes;
(require(2) /* metro dependency 2 */).fileFinishedImporting('utils/StreamQualityUtils.tsx');
exports.isPremiumResolution = isPremiumResolution;
exports.isPremiumFPS = isPremiumFPS;
exports.isPremiumRequirement = closure;
exports.getPremiumRequirement = closure2;
exports.getResolutionText = getResolutionText;
exports.getFPSText = function(a0) {
var intl = require(dependencyMap[10]).intl;
var Qb44XH = require(dependencyMap[10]).t.Qb44XH;
return intl.formatToPlainString(Qb44XH, {fps: a0});
};
exports.getMaxQuality = closure3;
exports.useMaxQuality = useMaxQuality;
exports.trackStreamSettingsUpdate = trackStreamSettingsUpdate;
}
function getPremiumRequirement(a0, a1, a2) { // fn#69525, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:499, offset: 0x01c75d05, size: 50 bytes, params: 4, frame: 11
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
return ApplicationStreamSettingRequirements.find(_fun69526);
}
function isPremiumResolution(a0) { // fn#69528, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:845, offset: 0x01c75dc4, size: 141 bytes, params: 2, frame: 15
if (a0 != null) {
var env0_0 = getApplicationResolution(a0.maxResolution.type === ResolutionTypes.SOURCE ? ApplicationStreamResolutions.RESOLUTION_SOURCE : a0.maxResolution.height);
return getApplicationFramerate(a0.maxFrameRate) !== ApplicationStreamFPS.FPS_5 && ApplicationStreamSettingRequirements.find(_fun69529) == null;
}
}
function isPremiumFPS(a0) { // fn#69530, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:1109, offset: 0x01c75e95, size: 67 bytes, params: 2, frame: 14
if (a0 != null) {
var env0_0 = getApplicationFramerate(a0.maxFrameRate);
return ApplicationStreamSettingRequirements.find(_fun69531) == null;
}
}
function getResolutionText(a0) { // fn#69532, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:1344, offset: 0x01c75f02, size: 156 bytes, params: 2, frame: 17
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const type = a0.type;
const SOURCE = ResolutionTypes.SOURCE;
return type === SOURCE ? intl.string(t.XjXqzh) : intl.formatToPlainString(t.TEOC0I, {resolution: a0.height});
}
function useMaxQuality(a0) { // fn#69534, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:1672, offset: 0x01c75fe9, size: 152 bytes, params: 2, frame: 20
const env0_0 = a0;
return env0_3.useMemo(_fun69537,
[(require(566) /* metro dependency 566: flux */).useStateFromStores([AuthenticationStore], function() {
return AuthenticationStore.getId();
}), a0,
(require(566) /* metro dependency 566: flux */).useStateFromStoresObject([ApplicationStreamingSettingsStore],
function() {
return ApplicationStreamingSettingsStore.getState();
})]);
}
function trackStreamSettingsUpdate(a0, a1, a2, a3) { // fn#69538, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:2011, offset: 0x01c7612b, size: 263 bytes, params: 5, frame: 25
const getPremiumRequirementBinding = getPremiumRequirement;
const value2 = undefined;
const premiumRequirementBinding = getPremiumRequirementBinding(a0, a1, a2);
const currentUser = UserStore.getCurrentUser();
const guildId = RTCConnectionStore.getGuildId();
const value6 = null;
const r12 = value6 != guildId ? GuildStore.getGuild(guildId) : value6;
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const STREAM_SETTINGS_UPDATE = AnalyticEvents.STREAM_SETTINGS_UPDATE;
Reflect.apply(track, defaultImport, [STREAM_SETTINGS_UPDATE,
{user_premium_tier: value6 == currentUser ? value2 : currentUser.premiumType,
guild_premium_tier: value6 == r12 ? value2 : r12.premiumTier,
stream_quality_user_premium_tier: value6 != (value6 == premiumRequirementBinding ? value2 : premiumRequirementBinding.quality) ? StreamQualitiesToPremiumType[premiumRequirementBinding.quality] : value6,
stream_quality_guild_premium_tier: value6 == premiumRequirementBinding ? value2 : premiumRequirementBinding.guildPremiumTier,
stream_quality_preset: a0, stream_quality_resolution: a1, stream_quality_frame_rate: a2,
soundshare_enabled: a3}]);
return value2;
}
function _fun69526(a0) { // fn#69526, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:552, offset: 0x01c75d37, size: 77 bytes, params: 2, frame: 4
return (a0.preset == null || a0.preset === env0_0) && a0.resolution === require && a0.fps === importDefault;
}
function _fun69529(a0) { // fn#69529, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:1027, offset: 0x01c75e51, size: 68 bytes, params: 2, frame: 12
var r0;
var fps;
const resolution = a0.resolution;
let value = resolution === env0_0;
if (value) {
fps = a0.fps;
value = environment.__proto__;
value = fps !== ApplicationStreamFPS.FPS_5;
r0 = value;
} else {
r0 = value;
}
if (r0) {
value = environment.__proto__;
value = !isPremiumRequirement(a0);
r0 = value;
}
return r0;
}
function _fun69531(a0) { // fn#69531, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:1191, offset: 0x01c75ed8, size: 42 bytes, params: 2, frame: 12
var r0;
const fps = a0.fps;
let value = fps === env0_0;
if (value) {
value = environment.__proto__;
value = !isPremiumRequirement(a0);
r0 = value;
} else {
r0 = value;
}
return r0;
}
function _fun69537() { // fn#69537, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9097:1833, offset: 0x01c760a7, size: 132 bytes, params: 1, frame: 14
var r0;
var value2;
var object3;
var binding;
var object4;
var resolution;
const idBinding = id;
const user = env0_0.user;
if (idBinding === user.id) {
object3 = {};
binding = env0_1;
object3.maxFrameRate = binding.fps;
object4 = {};
resolution = binding.resolution;
object4.height = resolution;
object4.width = 0;
resolution = binding.resolution;
object4.type = resolution === 0 ? ResolutionTypes.SOURCE : ResolutionTypes.FIXED;
object3.maxResolution = object4;
r0 = object3;
} else {
value2 = environment.__proto__;
r0 = getMaxQuality(env0_0);
}
return r0;
}