import { ServerAPI } from "decky-frontend-lib"; var server: ServerAPI | undefined = undefined; //import { useEffect } from "react"; export function resolve(promise: Promise, setter: any) { (async function () { let data = await promise; if (data.success) { console.debug("Got resolved", data, "promise", promise); setter(data.result); } else { console.warn("Resolve failed:", data, "promise", promise); } })(); } export function execute(promise: Promise) { (async function () { let data = await promise; if (data.success) { console.debug("Got executed", data, "promise", promise); } else { console.warn("Execute failed:", data, "promise", promise); } })(); } export function setServer(s: ServerAPI) { server = s; } // Python functions export function getVersion(): Promise { return server!.callPluginMethod("get_version", {}); } export function onViewReady(): Promise { return server!.callPluginMethod("on_ready", {}); } export function setCPUs(value: number, smt: boolean): Promise { return server!.callPluginMethod("set_cpus", {"count":value, "smt": smt}); } export function getCPUs(): Promise { return server!.callPluginMethod("get_cpus", {}); } export function getSMT(): Promise { return server!.callPluginMethod("get_smt", {}); } export function setCPUBoost(value: boolean): Promise { return server!.callPluginMethod("set_boost", {"enabled": value}); } export function getCPUBoost(): Promise { return server!.callPluginMethod("get_boost", {}); } export function setMaxBoost(index: number): Promise { return server!.callPluginMethod("set_max_boost", {"index": index}); } export function getMaxBoost(): Promise { return server!.callPluginMethod("get_max_boost", {}); } export function setGPUPower(value: number, index: number): Promise { return server!.callPluginMethod("set_gpu_power", {"value": value, "power_number": index}); } export function getGPUPower(index: number): Promise { return server!.callPluginMethod("get_gpu_power", {"power_number": index}); } export function setGPUPowerI(value: number, index: number): Promise { return server!.callPluginMethod("set_gpu_power_index", {"index": value, "power_number": index}); } export function getGPUPowerI(index: number): Promise { return server!.callPluginMethod("get_gpu_power_index", {"power_number": index}); } export function setFanTick(tick: number): Promise { return server!.callPluginMethod("set_fan_tick", {"tick": tick}); } export function getFanTick(): Promise { return server!.callPluginMethod("get_fan_tick", {}); } export function getFantastic(): Promise { return server!.callPluginMethod("fantastic_installed", {}); } export function getChargeNow(): Promise { return server!.callPluginMethod("get_charge_now", {}); } export function getChargeFull(): Promise { return server!.callPluginMethod("get_charge_full", {}); } export function getChargeDesign(): Promise { return server!.callPluginMethod("get_charge_design", {}); } export function setPersistent(value: boolean): Promise { return server!.callPluginMethod("set_persistent", {"enabled": value}); } export function getPersistent(): Promise { return server!.callPluginMethod("get_persistent", {}); } export function setPerGameProfile(value: boolean): Promise { return server!.callPluginMethod("set_per_game_profile", {"enabled": value}); } export function getPerGameProfile(): Promise { return server!.callPluginMethod("get_per_game_profile", {}); } export function getCurrentGame(): Promise { return server!.callPluginMethod("get_current_game", {}); } export function onGameStart(gameId: number, data: any): Promise { const data2 = {appid: data.appid, display_name: data.display_name, gameid: gameId}; // Issue #17 return server!.callPluginMethod("on_game_start", {"game_id": gameId, "data":data2}); } export function onGameStop(gameId: number | null): Promise { return server!.callPluginMethod("on_game_stop", {"game_id": gameId}); }