From e4e7cd1ca2cfb26d07f2970d77b3143ed1fcc68d Mon Sep 17 00:00:00 2001 From: Shawn Date: Sat, 20 Jun 2026 15:57:40 -0400 Subject: [PATCH] feat: add mixer scene API methods to PiPedalModel --- vite/src/pipedal/PiPedalModel.tsx | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/vite/src/pipedal/PiPedalModel.tsx b/vite/src/pipedal/PiPedalModel.tsx index d356d89..0c939d5 100644 --- a/vite/src/pipedal/PiPedalModel.tsx +++ b/vite/src/pipedal/PiPedalModel.tsx @@ -3986,6 +3986,39 @@ export class PiPedalModel //implements PiPedalModel ); } + // ------------------------------------------------------------------------- + // Mixer Scene Management + // ------------------------------------------------------------------------- + + /** + * Get the full mixer state as a JSON string. + */ + async getMixerState(): Promise { + return await this.getWebSocket().request("mixerGetState"); + } + + /** + * Save the current mixer state as a named scene. + * Returns {id, name} from the backend. + */ + async saveMixerScene(name: string): Promise<{ id: number; name: string }> { + return await this.getWebSocket().request<{ id: number; name: string }>("mixerSaveScene", { name }); + } + + /** + * Load a scene by its backend ID. Returns true on success. + */ + async loadMixerScene(sceneId: number): Promise { + return await this.getWebSocket().request("mixerLoadScene", { sceneId }); + } + + /** + * Get list of saved scenes from backend. Returns raw JSON string. + */ + async getMixerScenes(): Promise { + return await this.getWebSocket().request("mixerGetScenes"); + } + }; let instance: PiPedalModel | undefined = undefined;