summaryrefslogtreecommitdiff
path: root/py_modules
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2025-07-22 13:23:25 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2025-07-22 13:23:25 -0400
commitd063284dea10e82a23c2c332ecd4901d7254171b (patch)
tree8433fc86936229eeb01d4b200fbb93da0dec8d18 /py_modules
parentdf0635f1bba611b8b44975057acd579102d209dd (diff)
downloaddecky-lsfg-vk-d063284dea10e82a23c2c332ecd4901d7254171b.tar.gz
decky-lsfg-vk-d063284dea10e82a23c2c332ecd4901d7254171b.zip
use generated kwargs and config in more hardcoded places
Diffstat (limited to 'py_modules')
-rw-r--r--py_modules/lsfg_vk/config_schema.py36
-rw-r--r--py_modules/lsfg_vk/config_schema_generated.py35
-rw-r--r--py_modules/lsfg_vk/configuration.py36
-rw-r--r--py_modules/lsfg_vk/installation.py7
4 files changed, 47 insertions, 67 deletions
diff --git a/py_modules/lsfg_vk/config_schema.py b/py_modules/lsfg_vk/config_schema.py
index a7827ae..bbace42 100644
--- a/py_modules/lsfg_vk/config_schema.py
+++ b/py_modules/lsfg_vk/config_schema.py
@@ -171,7 +171,9 @@ class ConfigurationManager:
if config.get("dll"):
lines.append("[global]")
lines.append(f"# specify where Lossless.dll is stored")
- lines.append(f'dll = "{config["dll"]}"')
+ # Generate TOML lines for TOML fields only - USE GENERATED CONSTANTS
+ from .config_schema_generated import DLL
+ lines.append(f'dll = "{config[DLL]}"')
lines.append("")
# Add game section with process name for LSFG_PROCESS approach
@@ -248,9 +250,10 @@ class ConfigurationManager:
elif value.startswith("'") and value.endswith("'"):
value = value[1:-1]
- # Handle global section (dll only)
+ # Handle global section (dll only) - USE GENERATED CONSTANTS
if in_global_section and key == "dll":
- config["dll"] = value
+ from .config_schema_generated import DLL
+ config[DLL] = value
# Handle game section
elif in_game_section:
@@ -315,25 +318,8 @@ class ConfigurationManager:
return cast(ConfigurationData, merged_config)
@staticmethod
- def create_config_from_args(dll: str, multiplier: int, flow_scale: float,
- performance_mode: bool, hdr_mode: bool,
- 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) -> ConfigurationData:
- """Create configuration from individual arguments"""
- return cast(ConfigurationData, {
- "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
- })
+ @staticmethod
+ def create_config_from_args(**kwargs) -> ConfigurationData:
+ """Create configuration from keyword arguments - USES GENERATED CODE"""
+ from .config_schema_generated import create_config_dict
+ return create_config_dict(**kwargs)
diff --git a/py_modules/lsfg_vk/config_schema_generated.py b/py_modules/lsfg_vk/config_schema_generated.py
index 46bc58f..cc90207 100644
--- a/py_modules/lsfg_vk/config_schema_generated.py
+++ b/py_modules/lsfg_vk/config_schema_generated.py
@@ -12,6 +12,19 @@ from pathlib import Path
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"
+
class ConfigurationData(TypedDict):
"""Type-safe configuration data structure - AUTO-GENERATED"""
@@ -98,17 +111,17 @@ def get_function_parameters() -> str:
def create_config_dict(**kwargs) -> ConfigurationData:
"""Create configuration dictionary from keyword arguments"""
return cast(ConfigurationData, {
- "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,
+ "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"),
})
diff --git a/py_modules/lsfg_vk/configuration.py b/py_modules/lsfg_vk/configuration.py
index e745e29..b9ee174 100644
--- a/py_modules/lsfg_vk/configuration.py
+++ b/py_modules/lsfg_vk/configuration.py
@@ -103,39 +103,18 @@ class ConfigurationService(BaseService):
self.log.error(error_msg)
return self._error_response(ConfigurationResponse, str(e), config=None)
- def update_config(self, dll: str, multiplier: int, flow_scale: float,
- performance_mode: bool, hdr_mode: bool,
- 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) -> ConfigurationResponse:
- """Update TOML configuration
+ def update_config(self, **kwargs) -> ConfigurationResponse:
+ """Update TOML configuration using generated schema - SIMPLIFIED WITH GENERATED CODE
Args:
- dll: Path to Lossless.dll
- multiplier: LSFG multiplier value
- flow_scale: LSFG flow scale value
- performance_mode: Whether to enable performance mode
- hdr_mode: Whether to enable HDR mode
- experimental_present_mode: Experimental Vulkan present mode override
- dxvk_frame_rate: Frame rate cap for DirectX games, before frame multiplier (0 = disabled)
- enable_wow64: Whether to enable PROTON_USE_WOW64=1 for 32-bit games
- disable_steamdeck_mode: Whether to disable Steam Deck mode
- mangohud_workaround: Whether to enable MangoHud workaround with transparent overlay
- disable_vkbasalt: Whether to disable vkBasalt layer
+ **kwargs: Configuration field values (see shared_config.py for available fields)
Returns:
ConfigurationResponse with success status
"""
try:
- # Create configuration from individual arguments
- config = ConfigurationManager.create_config_from_args(
- dll, multiplier, flow_scale, performance_mode, hdr_mode,
- experimental_present_mode, dxvk_frame_rate, enable_wow64, disable_steamdeck_mode,
- mangohud_workaround, disable_vkbasalt
- )
+ # Create configuration from keyword arguments using generated function
+ config = ConfigurationManager.create_config_from_args(**kwargs)
# Generate TOML content using centralized manager
toml_content = ConfigurationManager.generate_toml_content(config)
@@ -187,8 +166,9 @@ class ConfigurationService(BaseService):
else:
config = current_response["config"]
- # Update just the DLL path
- config["dll"] = dll_path
+ # Update just the DLL path - USE GENERATED CONSTANTS
+ from .config_schema_generated import DLL
+ config[DLL] = dll_path
# Generate TOML content and write it
toml_content = ConfigurationManager.generate_toml_content(config)
diff --git a/py_modules/lsfg_vk/installation.py b/py_modules/lsfg_vk/installation.py
index b340093..996a03f 100644
--- a/py_modules/lsfg_vk/installation.py
+++ b/py_modules/lsfg_vk/installation.py
@@ -121,9 +121,10 @@ class InstallationService(BaseService):
self._write_file(self.config_file_path, toml_content, 0o644)
self.log.info(f"Created config file at {self.config_file_path}")
- # Log detected DLL path if found
- if config["dll"]:
- self.log.info(f"Configured DLL path: {config['dll']}")
+ # Log detected DLL path if found - USE GENERATED CONSTANTS
+ from .config_schema_generated import DLL
+ if config[DLL]:
+ self.log.info(f"Configured DLL path: {config[DLL]}")
def _create_lsfg_launch_script(self) -> None:
"""Create the ~/lsfg launch script for easier game setup"""