summaryrefslogtreecommitdiff
path: root/src/api/lsfgApi.ts
diff options
context:
space:
mode:
authorKurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com>2025-07-16 16:27:30 -0400
committerGitHub <noreply@github.com>2025-07-16 16:27:30 -0400
commit7c8f336196c215d90588f1994fa1556c7790dba8 (patch)
tree46fdc7e70e272ac6a33259d1228233496b54371b /src/api/lsfgApi.ts
parent41bba67d24241dea18b056734b153270bb230ba1 (diff)
parent5c739d6eca3aacea5dd9e48fa63471b27c86f0e2 (diff)
downloaddecky-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.ts28
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]);
+};