This commit is contained in:
redphx
2024-12-05 17:10:39 +07:00
parent c836e33f7b
commit 9199351af1
207 changed files with 9833 additions and 6953 deletions

12
src/types/db.d.ts vendored Executable file
View File

@@ -0,0 +1,12 @@
interface BaseRecord {
id: any;
data: any;
};
interface ControllerSettingsRecord extends BaseRecord {
id: string;
data: {
vibrationIntensity: number;
shortcutPresetId: number;
};
};

28
src/types/global.d.ts vendored Executable file
View File

@@ -0,0 +1,28 @@
import type { BxExposed } from "@/utils/bx-exposed";
import type { AllPresets, ControllerShortcutPresetRecord } from "./presets";
import type { PrefKey } from "@/enums/pref-keys";
import type { StreamSettings, type StreamSettingsData } from "@/utils/stream-settings";
export {};
declare global {
interface Window {
AppInterface: any;
BX_FLAGS?: BxFlags;
BX_CE: (elmName: string, props: {[index: string]: any}={}) => HTMLElement;
BX_EXPOSED: typeof BxExposed & Partial<{
shouldShowSensorControls: boolean;
stopTakRendering: boolean;
dialogRoutes: {
closeAll: () => void;
};
showStreamMenu: () => void;
inputSink: any;
streamSession: any;
touchLayoutManager: any;
}>;
BX_REMOTE_PLAY_CONFIG: BxStates.remotePlay.config;
BX_STREAM_SETTINGS: StreamSettingsData;
}
}

19
src/types/index.d.ts vendored Normal file → Executable file
View File

@@ -5,20 +5,6 @@ type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends read
type PartialRecord<K extends keyof any, T> = Partial<Record<K, T>>;
interface Window {
AppInterface: any;
BX_FLAGS?: BxFlags;
BX_CE: (elmName: string, props: {[index: string]: any}={}) => HTMLElement;
BX_EXPOSED: any;
BX_VIBRATION_INTENSITY: number;
BX_CONTROLLER_POLLING_RATE: number;
BX_ENABLE_CONTROLLER_VIBRATION: boolean;
BX_ENABLE_DEVICE_VIBRATION: boolean;
BX_REMOTE_PLAY_CONFIG: BxStates.remotePlay.config;
}
interface NavigatorBattery extends Navigator {
getBattery: () => Promise<{
charging: boolean;
@@ -38,7 +24,7 @@ type ServerRegion = {
type BxStates = {
supportedRegion: boolean;
serverRegions: Record<string, ServerRegion>;
serverRegions: Record<ServerRegionName, ServerRegion>;
selectedRegion: any;
gsToken: string;
isSignedIn: boolean;
@@ -49,6 +35,9 @@ type BxStates = {
capabilities: {
touch: boolean;
batteryApi: boolean;
deviceVibration: boolean;
mkb: boolean;
emulatedNativeMkb: boolean;
};
};

27
src/types/mkb.d.ts vendored
View File

@@ -1,27 +0,0 @@
import { MkbPresetKey } from "@enums/mkb";
type GamepadKeyNameType = {[index: string | number]: string[]};
type MkbStoredPreset = {
id?: number;
name: string;
data: MkbPresetData;
};
type MkbStoredPresets = {
[index: number]: MkbStoredPreset;
}
type MkbPresetData = {
mapping: {[index: number]: (string | null)[]};
mouse: Omit<{
[index in MkbPresetKey]: number | null;
}, MkbPresetKey.MOUSE_MAP_TO> & {
[MkbPresetKey.MOUSE_MAP_TO]?: string;
};
};
type MkbConvertedPresetData = {
mapping: {[index: string]: number?};
mouse: MkbNormalPreset.mouse;
};

0
src/types/network.ts Normal file → Executable file
View File

0
src/types/preferences.d.ts vendored Normal file → Executable file
View File

17
src/types/prefs.d.ts vendored Executable file
View File

@@ -0,0 +1,17 @@
type VersionCurrent = string;
type VersionLatest = string;
type VersionLastCheck = number;
type VideoMaxFps = number;
type VideoMaxBitrate = number;
type ServerRegionName = string;
type TouchControllerDefaultOpacity = number;
type AudioVolume = number;
type DeviceVibrationIntensity = number;
type StreamPreferredLocale = 'default' | string;
type ControllerPollingRate = number;
type MkbPresetId = number;
type KeyboardShortcutsPresetId = number;

73
src/types/presets.d.ts vendored Executable file
View File

@@ -0,0 +1,73 @@
import type { GamepadKey } from "@/enums/gamepad";
import { MouseButtonCode, WheelCode } from "@/enums/mkb";
import { MouseMapTo, MkbPresetKey, type KeyCode } from "@/enums/mkb";
import type { ShortcutAction } from "@/enums/shortcut-actions";
import type { KeyEventInfo } from "@/modules/mkb/key-helper";
interface PresetRecord extends BaseRecord {
id: number;
name: string;
data: {};
};
interface PresetRecords<T extends PresetRecord> {
[key: number]: T;
}
interface MkbPresetRecord extends PresetRecord {
data: MkbPresetData;
};
type MkbPresetRecords = PresetRecords<MkbPresetRecord>;
type MkbPresetData = {
mapping: Partial<Record<GamepadKey, Array<KeyCode | MouseButtonCode | WheelCode | null>>>;
mouse: Omit<{
[index in MkbPresetKey]: number;
}, MkbPresetKey.MOUSE_MAP_TO> & {
[MkbPresetKey.MOUSE_MAP_TO]: MouseMapTo;
};
};
interface MkbConvertedPresetRecord extends PresetRecord {
data: MkbConvertedPresetData;
};
type MkbConvertedPresetData = MkbPresetData & {
mapping: Record<string, number?>;
};
interface ControllerShortcutPresetRecord extends PresetRecord {
data: ControllerShortcutPresetData;
};
type ControllerShortcutPresetRecords = PresetRecords<ControllerShortcutPresetRecord>;
type ControllerShortcutPresetData = {
mapping: Partial<Record<GamepadKey, ShortcutAction>>,
};
interface KeyboardShortcutPresetRecord extends PresetRecord {
data: KeyboardShortcutPresetData;
};
type KeyboardShortcutPresetRecords = PresetRecords<KeyboardShortcutPresetRecord>;
type KeyboardShortcutPresetData = {
mapping: Partial<Record<ShortcutAction, KeyEventInfo>>,
};
type KeyboardShortcutConvertedPresetData = KeyboardShortcutPresetData & {
mapping: { [key: string]: ShortcutAction };
};
interface AllPresets<T extends PresetRecord> {
default: Array<number>,
custom: Array<number>,
data: {[key: string]: T},
};
interface AllPresetsData<T extends PresetRecord> {
[presetId: string]: T['data'],
};

77
src/types/setting-definition.d.ts vendored Normal file → Executable file
View File

@@ -1,9 +1,9 @@
import type { PrefKey } from "@/enums/pref-keys";
import type { SettingElementType } from "@/utils/setting-element";
export type SuggestedSettingCategory = 'recommended' | 'lowest' | 'highest' | 'default';
export type SuggestedSettingProfile = 'recommended' | 'lowest' | 'highest' | 'default';
export type RecommendedSettings = {
schema_version: 1,
schema_version: 2,
device_name: string,
device_type: 'android' | 'android-tv' | 'android-handheld' | 'webos',
settings: {
@@ -14,43 +14,58 @@ export type RecommendedSettings = {
},
};
export type SettingDefinition = {
export type SettingAction = 'get' | 'set';
interface BaseSettingDefinition {
default: any;
} & Partial<{
label: string;
note: string | (() => HTMLElement);
experimental: boolean;
unsupported: boolean;
unsupportedNote: string | (() => HTMLElement);
suggest: PartialRecord<SuggestedSettingCategory, any>,
ready: (setting: SettingDefinition) => void;
type: SettingElementType,
requiredVariants: BuildVariant | Array<BuildVariant>;
// migrate?: (this: Preferences, savedPrefs: any, value: any) => void;
}> & (
{} | {
options: {[index: string]: string};
optionsGroup?: string;
} | {
multipleOptions: {[index: string]: string};
params: MultipleOptionsParams;
} | {
type: SettingElementType.NUMBER_STEPPER;
min: number;
max: number;
params: NumberStepperParams;
steps?: number;
}
);
label?: string;
note?: string | (() => HTMLElement);
experimental?: boolean;
unsupported?: boolean;
unsupportedValue?: SettingDefinition['default'];
unsupportedNote?: string | (() => HTMLElement);
suggest?: PartialRecord<SuggestedSettingProfile, any>,
ready?: (setting: SettingDefinition) => void;
requiredVariants?: BuildVariant | Array<BuildVariant>;
transformValue?: {
get: Exclude<any, undefined>;
set: Exclude<any, undefined>;
};
};
export type SettingDefinitions = {[index in PrefKey]: SettingDefinition};
interface OptionsSettingDefinition extends BaseSettingDefinition {
options: { [index: string]: string };
optionsGroup?: string;
};
interface MultipleOptionsSettingDefinition extends BaseSettingDefinition {
multipleOptions: { [index: string]: string };
params: MultipleOptionsParams;
};
interface NumberStepperSettingDefinition extends BaseSettingDefinition {
min: number;
max: number;
params: NumberStepperParams;
transformValue?: {
get(this: Extract<SettingDefinition, { max: number }>, value: any): Exclude<any, undefined>;
set(this: Extract<SettingDefinition, { max: number }>, value: any): Exclude<any, undefined>;
};
}
export type SettingDefinition = BaseSettingDefinition | OptionsSettingDefinition | MultipleOptionsSettingDefinition | NumberStepperSettingDefinition;
export type SettingDefinitions = { [index in PrefKey]: SettingDefinition };
export type MultipleOptionsParams = Partial<{
size?: number;
}>
export type NumberStepperParams = Partial<{
steps: number;
suffix: string;
disabled: boolean;
hideSlider: boolean;
@@ -58,6 +73,6 @@ export type NumberStepperParams = Partial<{
ticks: number;
exactTicks: number;
customTextValue: (value: any) => string | null;
customTextValue: (value: any, min?: number, max?: number) => string | null;
reverse: boolean;
}>

0
src/types/stream-stats.d.ts vendored Normal file → Executable file
View File

0
src/types/titles-info.d.ts vendored Normal file → Executable file
View File