summaryrefslogtreecommitdiff
path: root/src/config/generatedConfigSchema.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/generatedConfigSchema.ts')
-rw-r--r--src/config/generatedConfigSchema.ts127
1 files changed, 127 insertions, 0 deletions
diff --git a/src/config/generatedConfigSchema.ts b/src/config/generatedConfigSchema.ts
new file mode 100644
index 0000000..d862ad2
--- /dev/null
+++ b/src/config/generatedConfigSchema.ts
@@ -0,0 +1,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",
+ };
+}
+