97 lines
4.6 KiB
TypeScript
97 lines
4.6 KiB
TypeScript
// Metro module 8851 (f8852).
|
|
import { useMemo } from "react";
|
|
import ApplicationStreamingSettingsStore from "../stores/ApplicationStreamingSettingsStore";
|
|
import AuthenticationStore from "../stores/AuthenticationStore";
|
|
import GuildStore from "../stores/GuildStore";
|
|
import RTCConnectionStore from "../stores/RTCConnectionStore";
|
|
import UserStore from "../stores/UserStore";
|
|
import { AnalyticEvents } from "../Constants";
|
|
import { ApplicationStreamFPS, ApplicationStreamResolutions, ApplicationStreamSettingRequirements, getApplicationFramerate, getApplicationResolution } from "../modules/go_live/StreamSettingsConstants";
|
|
import { StreamQualitiesToPremiumType } from "../modules/premium/PremiumConstants";
|
|
import { ResolutionTypes } from "../_bundle/Module4250";
|
|
import { intl, t } from "../intl/index.native";
|
|
import { useStateFromStoresObject, useStateFromStores } from "../_bundle/Module589";
|
|
import AnalyticsUtils from "./AnalyticsUtils";
|
|
function $mk81482($env) {
|
|
return (a0) => {
|
|
const r2 = $env;
|
|
return (a0.preset == null || a0.preset === r2[0]) && a0.resolution === r2[1] && a0.fps === r2[2];
|
|
};
|
|
}
|
|
export function isPremiumResolution(a0) {
|
|
if (a0 != null) {
|
|
const r6 = a0.maxResolution.type === ResolutionTypes.SOURCE ? ApplicationStreamResolutions.RESOLUTION_SOURCE : a0.maxResolution.height;
|
|
const applicationResolution = getApplicationResolution(r6);
|
|
return getApplicationFramerate(a0.maxFrameRate) !== ApplicationStreamFPS.FPS_5 && ApplicationStreamSettingRequirements.find((applicationStreamSettingRequirement) => applicationStreamSettingRequirement.resolution === applicationResolution && applicationStreamSettingRequirement.fps !== ApplicationStreamFPS.FPS_5 && !(applicationStreamSettingRequirement.quality != null || applicationStreamSettingRequirement.guildPremiumTier != null)) == null;
|
|
}
|
|
}
|
|
export function isPremiumFPS(a0) {
|
|
if (a0 != null) {
|
|
const applicationFramerate = getApplicationFramerate(a0.maxFrameRate);
|
|
return ApplicationStreamSettingRequirements.find((applicationStreamSettingRequirement) => applicationStreamSettingRequirement.fps === applicationFramerate && !(applicationStreamSettingRequirement.quality != null || applicationStreamSettingRequirement.guildPremiumTier != null)) == null;
|
|
}
|
|
}
|
|
export function isPremiumRequirement(a0) {
|
|
return a0.quality != null || a0.guildPremiumTier != null;
|
|
}
|
|
export function getPremiumRequirement(a0, a1, a2) {
|
|
let env16826;
|
|
const r0 = env16826 = {};
|
|
env16826[0] = a0;
|
|
env16826[1] = a1;
|
|
env16826[2] = a2;
|
|
return ApplicationStreamSettingRequirements.find($mk81482(r0));
|
|
}
|
|
export function getResolutionText(a0) {
|
|
return a0.type === ResolutionTypes.SOURCE ? intl.string(t.XjXqzh) : intl.formatToPlainString(t.TEOC0I, {
|
|
resolution: a0.height
|
|
});
|
|
}
|
|
export function getFPSText(a0) {
|
|
return intl.formatToPlainString(t.Qb44XH, {
|
|
fps: a0
|
|
});
|
|
}
|
|
export function getMaxQuality(a0) {
|
|
return a0.maxResolution == null ? null : a0.maxFrameRate == null ? null : {
|
|
maxFrameRate: a0.maxFrameRate,
|
|
maxResolution: a0.maxResolution
|
|
};
|
|
}
|
|
export function useMaxQuality(a0) {
|
|
let stateFromStores;
|
|
const stateFromStoresObject = useStateFromStoresObject([ApplicationStreamingSettingsStore], () => ApplicationStreamingSettingsStore.getState());
|
|
stateFromStores = useStateFromStores([AuthenticationStore], () => AuthenticationStore.getId());
|
|
return useMemo(() => stateFromStores === a0.user.id ? {
|
|
maxFrameRate: stateFromStoresObject.fps,
|
|
maxResolution: {
|
|
height: stateFromStoresObject.resolution,
|
|
width: 0,
|
|
type: stateFromStoresObject.resolution === 0 ? ResolutionTypes.SOURCE : ResolutionTypes.FIXED
|
|
}
|
|
} : a0.maxResolution == null ? null : a0.maxFrameRate == null ? null : {
|
|
maxFrameRate: a0.maxFrameRate,
|
|
maxResolution: a0.maxResolution
|
|
}, [stateFromStores, a0, stateFromStoresObject]);
|
|
}
|
|
export function trackStreamSettingsUpdate(a0, a1, a2, a3) {
|
|
let env16830;
|
|
const r3 = env16830 = {};
|
|
env16830[0] = a0;
|
|
env16830[1] = a1;
|
|
env16830[2] = a2;
|
|
const r7 = ApplicationStreamSettingRequirements.find($mk81482(r3));
|
|
const currentUser = UserStore.getCurrentUser();
|
|
const guildId = RTCConnectionStore.getGuildId();
|
|
AnalyticsUtils.track(AnalyticEvents.STREAM_SETTINGS_UPDATE, {
|
|
user_premium_tier: currentUser?.premiumType,
|
|
guild_premium_tier: (guildId != null ? GuildStore.getGuild(guildId) : null)?.premiumTier,
|
|
stream_quality_user_premium_tier: r7?.quality != null ? StreamQualitiesToPremiumType[r7.quality] : null,
|
|
stream_quality_guild_premium_tier: r7?.guildPremiumTier,
|
|
stream_quality_preset: a0,
|
|
stream_quality_resolution: a1,
|
|
stream_quality_frame_rate: a2,
|
|
soundshare_enabled: a3
|
|
});
|
|
}
|