summaryrefslogtreecommitdiff
path: root/py_modules/lsfg_vk/config_schema_generated.py
blob: 783e22fad1b1a01dfadf5eaec8140ced3873820b (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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
"""
Auto-generated configuration schema components from shared_config.py
DO NOT EDIT THIS FILE MANUALLY - it will be overwritten on build
"""

from typing import TypedDict, Dict, Any, Union, cast
from enum import Enum
import sys
from pathlib import Path

# Import shared configuration constants
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
from shared_config import CONFIG_SCHEMA_DEF, ConfigFieldType

# Field name constants for type-safe access
DLL = "dll"
MULTIPLIER = "multiplier"
FLOW_SCALE = "flow_scale"
PERFORMANCE_MODE = "performance_mode"
HDR_MODE = "hdr_mode"
EXPERIMENTAL_PRESENT_MODE = "experimental_present_mode"
DXVK_FRAME_RATE = "dxvk_frame_rate"
ENABLE_WOW64 = "enable_wow64"
DISABLE_STEAMDECK_MODE = "disable_steamdeck_mode"
MANGOHUD_WORKAROUND = "mangohud_workaround"
DISABLE_VKBASALT = "disable_vkbasalt"
FORCE_ENABLE_VKBASALT = "force_enable_vkbasalt"
DEACTIVATE_WSI = "deactivate_wsi"


class ConfigurationData(TypedDict):
    """Type-safe configuration data structure - AUTO-GENERATED"""
    dll: str
    multiplier: int
    flow_scale: float
    performance_mode: bool
    hdr_mode: bool
    experimental_present_mode: str
    dxvk_frame_rate: int
    enable_wow64: bool
    disable_steamdeck_mode: bool
    mangohud_workaround: bool
    disable_vkbasalt: bool
    force_enable_vkbasalt: bool
    deactivate_wsi: bool


def get_script_parsing_logic():
    """Return the script parsing logic as a callable"""
    def parse_script_values(lines):
        script_values = {}
        for line in lines:
            line = line.strip()
            if not line or line.startswith("#") or not line.startswith("export "):
                continue
            if "=" in line:
                export_line = line[len("export "):]
                key, value = export_line.split("=", 1)
                key = key.strip()
                value = value.strip()

                # Auto-generated parsing logic:
                if key == "DXVK_FRAME_RATE":
                        try:
                            script_values["dxvk_frame_rate"] = int(value)
                        except ValueError:
                            pass
                if key == "PROTON_USE_WOW64":
                        script_values["enable_wow64"] = value == "1"
                if key == "SteamDeck":
                        script_values["disable_steamdeck_mode"] = value == "0"
                if key == "MANGOHUD":
                        script_values["mangohud_workaround"] = value == "1"
                if key == "DISABLE_VKBASALT":
                        script_values["disable_vkbasalt"] = value == "1"
                if key == "ENABLE_VKBASALT":
                        script_values["force_enable_vkbasalt"] = value == "1"
                if key == "ENABLE_GAMESCOPE_WSI":
                        script_values["deactivate_wsi"] = value == "0"

        return script_values
    return parse_script_values


def get_script_generation_logic():
    """Return the script generation logic as a callable"""
    def generate_script_lines(config):
        lines = []
        dxvk_frame_rate = config.get("dxvk_frame_rate", 0)
        if dxvk_frame_rate > 0:
            lines.append(f"export DXVK_FRAME_RATE={dxvk_frame_rate}")
        if config.get("enable_wow64", False):
            lines.append("export PROTON_USE_WOW64=1")
        if config.get("disable_steamdeck_mode", False):
            lines.append("export SteamDeck=0")
        if config.get("mangohud_workaround", False):
            lines.append("export MANGOHUD=1")
        if config.get("disable_vkbasalt", False):
            lines.append("export DISABLE_VKBASALT=1")
        if config.get("force_enable_vkbasalt", False):
            lines.append("export ENABLE_VKBASALT=1")
        if config.get("deactivate_wsi", False):
            lines.append("export ENABLE_GAMESCOPE_WSI=0")
        return lines
    return generate_script_lines


def get_function_parameters() -> str:
    """Return function signature parameters"""
    return """dll: str = "/games/Lossless Scaling/Lossless.dll",
                     multiplier: int = 1,
                     flow_scale: float = 0.8,
                     performance_mode: bool = True,
                     hdr_mode: bool = False,
                     experimental_present_mode: str = "fifo",
                     dxvk_frame_rate: int = 0,
                     enable_wow64: bool = False,
                     disable_steamdeck_mode: bool = False,
                     mangohud_workaround: bool = False,
                     disable_vkbasalt: bool = False,
                     force_enable_vkbasalt: bool = False,
                     deactivate_wsi: bool = True"""


def create_config_dict(**kwargs) -> ConfigurationData:
    """Create configuration dictionary from keyword arguments"""
    return cast(ConfigurationData, {
        "dll": kwargs.get("dll"),
        "multiplier": kwargs.get("multiplier"),
        "flow_scale": kwargs.get("flow_scale"),
        "performance_mode": kwargs.get("performance_mode"),
        "hdr_mode": kwargs.get("hdr_mode"),
        "experimental_present_mode": kwargs.get("experimental_present_mode"),
        "dxvk_frame_rate": kwargs.get("dxvk_frame_rate"),
        "enable_wow64": kwargs.get("enable_wow64"),
        "disable_steamdeck_mode": kwargs.get("disable_steamdeck_mode"),
        "mangohud_workaround": kwargs.get("mangohud_workaround"),
        "disable_vkbasalt": kwargs.get("disable_vkbasalt"),
        "force_enable_vkbasalt": kwargs.get("force_enable_vkbasalt"),
        "deactivate_wsi": kwargs.get("deactivate_wsi"),
    })


# Field lists for dynamic operations
TOML_FIELDS = ['dll', 'multiplier', 'flow_scale', 'performance_mode', 'hdr_mode', 'experimental_present_mode']
SCRIPT_FIELDS = ['dxvk_frame_rate', 'enable_wow64', 'disable_steamdeck_mode', 'mangohud_workaround', 'disable_vkbasalt', 'force_enable_vkbasalt', 'deactivate_wsi']
ALL_FIELDS = ['dll', 'multiplier', 'flow_scale', 'performance_mode', 'hdr_mode', 'experimental_present_mode', 'dxvk_frame_rate', 'enable_wow64', 'disable_steamdeck_mode', 'mangohud_workaround', 'disable_vkbasalt', 'force_enable_vkbasalt', 'deactivate_wsi']