diff options
| author | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2025-07-13 14:55:28 -0400 |
|---|---|---|
| committer | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2025-07-13 14:55:28 -0400 |
| commit | 9fd824270a2ea668b9cc264a7d0cee7dc93e2cb1 (patch) | |
| tree | 4a2fd62c29871b50fcf759434df5ca8bb1888de5 /lsfg_vk/configuration.py | |
| parent | bbf9fed63432cccdb43b92fbb836ab4bbf9210ae (diff) | |
| download | decky-lsfg-vk-9fd824270a2ea668b9cc264a7d0cee7dc93e2cb1.tar.gz decky-lsfg-vk-9fd824270a2ea668b9cc264a7d0cee7dc93e2cb1.zip | |
rm dupe py files
Diffstat (limited to 'lsfg_vk/configuration.py')
| -rw-r--r-- | lsfg_vk/configuration.py | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/lsfg_vk/configuration.py b/lsfg_vk/configuration.py deleted file mode 100644 index f5e2981..0000000 --- a/lsfg_vk/configuration.py +++ /dev/null @@ -1,175 +0,0 @@ -""" -Configuration service for lsfg script management. -""" - -import re -from pathlib import Path -from typing import Dict, Any - -from .base_service import BaseService -from .constants import LSFG_SCRIPT_TEMPLATE -from .types import ConfigurationResponse, ConfigurationData - - -class ConfigurationService(BaseService): - """Service for managing lsfg script configuration""" - - def get_config(self) -> ConfigurationResponse: - """Read current lsfg script configuration - - Returns: - ConfigurationResponse with current configuration or error - """ - try: - if not self.lsfg_script_path.exists(): - return { - "success": False, - "config": None, - "message": None, - "error": "lsfg script not found" - } - - content = self.lsfg_script_path.read_text() - config = self._parse_script_content(content) - - self.log.info(f"Parsed lsfg config: {config}") - - return { - "success": True, - "config": config, - "message": None, - "error": None - } - - except (OSError, IOError) as e: - error_msg = f"Error reading lsfg config: {str(e)}" - self.log.error(error_msg) - return { - "success": False, - "config": None, - "message": None, - "error": str(e) - } - - def _parse_script_content(self, content: str) -> ConfigurationData: - """Parse script content to extract configuration values - - Args: - content: Script file content - - Returns: - ConfigurationData with parsed values - """ - config: ConfigurationData = { - "enable_lsfg": False, - "multiplier": 2, - "flow_scale": 1.0, - "hdr": False, - "perf_mode": False, - "immediate_mode": False - } - - lines = content.split('\n') - for line in lines: - line = line.strip() - - # Parse ENABLE_LSFG - if match := re.match(r'^(#\s*)?export\s+ENABLE_LSFG=(\d+)', line): - config["enable_lsfg"] = not bool(match.group(1)) and match.group(2) == '1' - - # Parse LSFG_MULTIPLIER - elif match := re.match(r'^export\s+LSFG_MULTIPLIER=(\d+)', line): - try: - config["multiplier"] = int(match.group(1)) - except ValueError: - pass - - # Parse LSFG_FLOW_SCALE - elif match := re.match(r'^export\s+LSFG_FLOW_SCALE=([0-9]*\.?[0-9]+)', line): - try: - config["flow_scale"] = float(match.group(1)) - except ValueError: - pass - - # Parse LSFG_HDR - elif match := re.match(r'^(#\s*)?export\s+LSFG_HDR=(\d+)', line): - config["hdr"] = not bool(match.group(1)) and match.group(2) == '1' - - # Parse LSFG_PERF_MODE - elif match := re.match(r'^(#\s*)?export\s+LSFG_PERF_MODE=(\d+)', line): - config["perf_mode"] = not bool(match.group(1)) and match.group(2) == '1' - - # Parse MESA_VK_WSI_PRESENT_MODE - elif match := re.match(r'^(#\s*)?export\s+MESA_VK_WSI_PRESENT_MODE=([^\s#]+)', line): - config["immediate_mode"] = not bool(match.group(1)) and match.group(2) == 'immediate' - - return config - - def update_config(self, enable_lsfg: bool, multiplier: int, flow_scale: float, - hdr: bool, perf_mode: bool, immediate_mode: bool) -> ConfigurationResponse: - """Update lsfg script configuration - - Args: - enable_lsfg: Whether to enable LSFG - multiplier: LSFG multiplier value - flow_scale: LSFG flow scale value - hdr: Whether to enable HDR - perf_mode: Whether to enable performance mode - immediate_mode: Whether to enable immediate present mode (disable vsync) - - Returns: - ConfigurationResponse with success status - """ - try: - # Generate script content using template - script_content = self._generate_script_content( - enable_lsfg, multiplier, flow_scale, hdr, perf_mode, immediate_mode - ) - - # Write the updated script atomically - self._atomic_write(self.lsfg_script_path, script_content, 0o755) - - self.log.info(f"Updated lsfg script configuration: enable={enable_lsfg}, " - f"multiplier={multiplier}, flow_scale={flow_scale}, hdr={hdr}, " - f"perf_mode={perf_mode}, immediate_mode={immediate_mode}") - - return { - "success": True, - "config": None, - "message": "lsfg configuration updated successfully", - "error": None - } - - except (OSError, IOError) as e: - error_msg = f"Error updating lsfg config: {str(e)}" - self.log.error(error_msg) - return { - "success": False, - "config": None, - "message": None, - "error": str(e) - } - - def _generate_script_content(self, enable_lsfg: bool, multiplier: int, flow_scale: float, - hdr: bool, perf_mode: bool, immediate_mode: bool) -> str: - """Generate script content from configuration parameters - - Args: - enable_lsfg: Whether to enable LSFG - multiplier: LSFG multiplier value - flow_scale: LSFG flow scale value - hdr: Whether to enable HDR - perf_mode: Whether to enable performance mode - immediate_mode: Whether to enable immediate present mode - - Returns: - Generated script content - """ - return LSFG_SCRIPT_TEMPLATE.format( - enable_lsfg="export ENABLE_LSFG=1" if enable_lsfg else "# export ENABLE_LSFG=1", - multiplier=multiplier, - flow_scale=flow_scale, - hdr="export LSFG_HDR=1" if hdr else "# export LSFG_HDR=1", - perf_mode="export LSFG_PERF_MODE=1" if perf_mode else "# export LSFG_PERF_MODE=1", - immediate_mode="export MESA_VK_WSI_PRESENT_MODE=immediate # - disable vsync" if immediate_mode else "# export MESA_VK_WSI_PRESENT_MODE=immediate # - disable vsync" - ) |
