diff options
| author | Kurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com> | 2025-07-16 16:27:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-16 16:27:30 -0400 |
| commit | 7c8f336196c215d90588f1994fa1556c7790dba8 (patch) | |
| tree | 46fdc7e70e272ac6a33259d1228233496b54371b /src/api/lsfgApi.ts | |
| parent | 41bba67d24241dea18b056734b153270bb230ba1 (diff) | |
| parent | 5c739d6eca3aacea5dd9e48fa63471b27c86f0e2 (diff) | |
| download | decky-lsfg-vk-7c8f336196c215d90588f1994fa1556c7790dba8.tar.gz decky-lsfg-vk-7c8f336196c215d90588f1994fa1556c7790dba8.zip | |
Merge pull request #28 from xXJSONDeruloXx/fps-limit-dry
centralized configuration system for lsfg-vk params
Diffstat (limited to 'src/api/lsfgApi.ts')
| -rw-r--r-- | src/api/lsfgApi.ts | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/api/lsfgApi.ts b/src/api/lsfgApi.ts index 31ecbb5..2e7964c 100644 --- a/src/api/lsfgApi.ts +++ b/src/api/lsfgApi.ts @@ -1,4 +1,5 @@ import { callable } from "@decky/api"; +import { ConfigurationData, ConfigurationManager } from "../config/configSchema"; // Type definitions for API responses export interface InstallationResult { @@ -27,16 +28,8 @@ export interface DllDetectionResult { error?: string; } -export interface LsfgConfig { - enable_lsfg: boolean; - multiplier: number; - flow_scale: number; - hdr: boolean; - perf_mode: boolean; - immediate_mode: boolean; - disable_vkbasalt: boolean; - frame_cap: number; -} +// Use centralized configuration data type +export type LsfgConfig = ConfigurationData; export interface ConfigResult { success: boolean; @@ -50,13 +43,28 @@ export interface ConfigUpdateResult { error?: string; } +export interface ConfigSchemaResult { + field_names: string[]; + field_types: Record<string, string>; + defaults: ConfigurationData; +} + // API functions export const installLsfgVk = callable<[], InstallationResult>("install_lsfg_vk"); export const uninstallLsfgVk = callable<[], InstallationResult>("uninstall_lsfg_vk"); export const checkLsfgVkInstalled = callable<[], InstallationStatus>("check_lsfg_vk_installed"); export const checkLosslessScalingDll = callable<[], DllDetectionResult>("check_lossless_scaling_dll"); export const getLsfgConfig = callable<[], ConfigResult>("get_lsfg_config"); +export const getConfigSchema = callable<[], ConfigSchemaResult>("get_config_schema"); + +// Updated config function using centralized configuration export const updateLsfgConfig = callable< [boolean, number, number, boolean, boolean, boolean, boolean, number], ConfigUpdateResult >("update_lsfg_config"); + +// Helper function to create config update from configuration object +export const updateLsfgConfigFromObject = async (config: ConfigurationData): Promise<ConfigUpdateResult> => { + const args = ConfigurationManager.createArgsFromConfig(config); + return updateLsfgConfig(...args as [boolean, number, number, boolean, boolean, boolean, boolean, number]); +}; |
