forked from NekoSuneProjects/nekos-ai-clipper
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
53 lines (44 loc) · 2.29 KB
/
Copy pathpreload.js
File metadata and controls
53 lines (44 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// preload.js
const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("api", {
openVideoDialog: () => ipcRenderer.invoke("dialog:openVideo"),
analyseVideo: (opt) =>
ipcRenderer.invoke("video:analyseWithMode",opt),
downloadAndAnalyseVod: (opt) =>
ipcRenderer.invoke("vod:downloadAndAnalyseWithMode", opt),
onAnalyseProgress: (cb) => ipcRenderer.on("analyse:progress", (_, data) => cb(data)),
chooseOutputDir: () => ipcRenderer.invoke("dialog:chooseOutputDir"),
showInFolder: (file) => ipcRenderer.invoke("os:showInFolder", file),
// 🔥 YOU MUST ADD THIS OR MUSIC WON'T WORK
chooseMusic: () => ipcRenderer.invoke("dialog:chooseMusic"),
// Free NCS auto-music
listNcsMusic: () => ipcRenderer.invoke("music:listNcs"),
listMusicSources: () => ipcRenderer.invoke("music:listSources"),
getAutoMusic: (opt) => ipcRenderer.invoke("music:getAuto", opt),
// Music Library picker
listMusicItems: (opt) => ipcRenderer.invoke("music:listItems", opt),
previewMusic: (opt) => ipcRenderer.invoke("music:preview", opt),
useMusicTrack: (opt) => ipcRenderer.invoke("music:useTrack", opt),
// Standard / montage renders
renderStandard: (payload) => ipcRenderer.invoke("video:renderStandard", payload),
renderMontage: (payload) => ipcRenderer.invoke("video:renderMontage", payload),
onRenderProgress: (cb) => ipcRenderer.on("render:progress", (_, data) => cb(data)),
// Settings
getSettings: () => ipcRenderer.invoke("settings:get"),
setSettings: (patch) => ipcRenderer.invoke("settings:set", patch),
chooseOutputFolder: () => ipcRenderer.invoke("settings:chooseOutputDir"),
openOutputFolder: () => ipcRenderer.invoke("settings:openOutputDir"),
detectEncoders: () => ipcRenderer.invoke("encoder:detect"),
// Game configs
getGameConfigs: () => ipcRenderer.invoke("config:listGames"),
// Live capture
startCapture: (opt) => ipcRenderer.invoke("capture:start", opt),
stopCapture: () => ipcRenderer.invoke("capture:stop"),
onCaptureStatus: (cb) => ipcRenderer.on("capture:status", (_, data) => cb(data)),
listAudioDevices: () => ipcRenderer.invoke("audio:listDevices"),
listWindows: () => ipcRenderer.invoke("window:list"),
});
contextBridge.exposeInMainWorld("tools", {
ffmpeg: () => global.TOOLS.ffmpeg,
python: () => global.TOOLS.python
});