summaryrefslogtreecommitdiff
path: root/apps/desktop/src/preload.ts
blob: ad3f6cf99a3869f42836d118d469f62247e48d39 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { contextBridge, ipcRenderer } from "electron";
import type { DesktopExportBegin } from "./export.js";

const api = {
	isDesktop: true as const,
	exportBegin: (
		opts: DesktopExportBegin,
	): Promise<{ id: string; filePath: string } | null> =>
		ipcRenderer.invoke("export:begin", opts),
	exportWriteAudio: (id: string, pcm: ArrayBuffer): Promise<void> =>
		ipcRenderer.invoke("export:writeAudio", id, pcm),
	exportWriteFrame: (id: string, rgba: ArrayBuffer): Promise<void> =>
		ipcRenderer.invoke("export:writeFrame", id, rgba),
	exportFinish: (id: string): Promise<void> =>
		ipcRenderer.invoke("export:finish", id),
	exportCancel: (id: string): Promise<void> =>
		ipcRenderer.invoke("export:cancel", id),
	revealFile: (path: string): Promise<void> =>
		ipcRenderer.invoke("reveal-file", path),
};

contextBridge.exposeInMainWorld("opencutDesktop", api);