mirror of
https://github.com/redphx/better-xcloud.git
synced 2025-08-07 13:48:27 +02:00
6.0
This commit is contained in:
12
src/types/db.d.ts
vendored
Executable file
12
src/types/db.d.ts
vendored
Executable 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
28
src/types/global.d.ts
vendored
Executable 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
19
src/types/index.d.ts
vendored
Normal file → Executable 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
27
src/types/mkb.d.ts
vendored
@@ -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
0
src/types/network.ts
Normal file → Executable file
0
src/types/preferences.d.ts
vendored
Normal file → Executable file
0
src/types/preferences.d.ts
vendored
Normal file → Executable file
17
src/types/prefs.d.ts
vendored
Executable file
17
src/types/prefs.d.ts
vendored
Executable 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
73
src/types/presets.d.ts
vendored
Executable 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
77
src/types/setting-definition.d.ts
vendored
Normal file → Executable 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
0
src/types/stream-stats.d.ts
vendored
Normal file → Executable file
0
src/types/titles-info.d.ts
vendored
Normal file → Executable file
0
src/types/titles-info.d.ts
vendored
Normal file → Executable file
Reference in New Issue
Block a user