summaryrefslogtreecommitdiff
path: root/src/config/generatedConfigSchema.ts
blob: d862ad2265aafd1e49d96c113b3ed304c997b33b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/**
 * Auto-generated TypeScript configuration schema.
 * DO NOT EDIT MANUALLY - Generated from shared_config.py
 * 
 * To update this file, run: python3 generate_ts_config.py > src/config/generatedConfigSchema.ts
 */

// Configuration field type enum - matches Python
export enum ConfigFieldType {
  BOOLEAN = "boolean",
  INTEGER = "integer",
  FLOAT = "float",
  STRING = "string"
}

// Configuration field definition
export interface ConfigField {
  name: string;
  fieldType: ConfigFieldType;
  default: boolean | number | string;
  description: string;
}

// Configuration schema - auto-generated from Python
export const CONFIG_SCHEMA: Record<string, ConfigField> = {
  dll: {
    name: "dll",
    fieldType: ConfigFieldType.STRING,
    default: "/games/Lossless Scaling/Lossless.dll",
    description: "specify where Lossless.dll is stored"
  },
  multiplier: {
    name: "multiplier",
    fieldType: ConfigFieldType.INTEGER,
    default: 1,
    description: "change the fps multiplier"
  },
  flow_scale: {
    name: "flow_scale",
    fieldType: ConfigFieldType.FLOAT,
    default: 0.8,
    description: "change the flow scale"
  },
  performance_mode: {
    name: "performance_mode",
    fieldType: ConfigFieldType.BOOLEAN,
    default: true,
    description: "use a lighter model for FG (recommended for most games)"
  },
  hdr_mode: {
    name: "hdr_mode",
    fieldType: ConfigFieldType.BOOLEAN,
    default: false,
    description: "enable HDR mode (only for games that support HDR)"
  },
  experimental_present_mode: {
    name: "experimental_present_mode",
    fieldType: ConfigFieldType.STRING,
    default: "fifo",
    description: "override Vulkan present mode (may cause crashes)"
  },
  dxvk_frame_rate: {
    name: "dxvk_frame_rate",
    fieldType: ConfigFieldType.INTEGER,
    default: 0,
    description: "base framerate cap for DirectX games before frame multiplier"
  },
  enable_wow64: {
    name: "enable_wow64",
    fieldType: ConfigFieldType.BOOLEAN,
    default: false,
    description: "enable PROTON_USE_WOW64=1 for 32-bit games (use with ProtonGE to fix crashing)"
  },
  disable_steamdeck_mode: {
    name: "disable_steamdeck_mode",
    fieldType: ConfigFieldType.BOOLEAN,
    default: false,
    description: "disable Steam Deck mode (unlocks hidden settings in some games)"
  },
};

// Type-safe configuration data structure
export interface ConfigurationData {
  dll: string;
  multiplier: number;
  flow_scale: number;
  performance_mode: boolean;
  hdr_mode: boolean;
  experimental_present_mode: string;
  dxvk_frame_rate: number;
  enable_wow64: boolean;
  disable_steamdeck_mode: boolean;
}

// Helper functions
export function getFieldNames(): string[] {
  return Object.keys(CONFIG_SCHEMA);
}

export function getDefaults(): ConfigurationData {
  return {
    dll: "/games/Lossless Scaling/Lossless.dll",
    multiplier: 1,
    flow_scale: 0.8,
    performance_mode: true,
    hdr_mode: false,
    experimental_present_mode: "fifo",
    dxvk_frame_rate: 0,
    enable_wow64: false,
    disable_steamdeck_mode: false,
  };
}

export function getFieldTypes(): Record<string, string> {
  return {
    dll: "ConfigFieldType.STRING",
    multiplier: "ConfigFieldType.INTEGER",
    flow_scale: "ConfigFieldType.FLOAT",
    performance_mode: "ConfigFieldType.BOOLEAN",
    hdr_mode: "ConfigFieldType.BOOLEAN",
    experimental_present_mode: "ConfigFieldType.STRING",
    dxvk_frame_rate: "ConfigFieldType.INTEGER",
    enable_wow64: "ConfigFieldType.BOOLEAN",
    disable_steamdeck_mode: "ConfigFieldType.BOOLEAN",
  };
}