diff --git a/lib/remote-capture-preload.js b/lib/remote-capture-preload.js new file mode 100644 index 0000000..5ba32fe --- /dev/null +++ b/lib/remote-capture-preload.js @@ -0,0 +1,20 @@ +const { contextBridge, ipcRenderer } = require('electron'); + +contextBridge.exposeInMainWorld('capture', { + // Get capture source ID from main process (desktopCapturer runs in main) + getSourceId: () => ipcRenderer.invoke('remote:get-capture-source-id'), + + // Signaling: receive offer/ICE from main process (relayed from dashboard) + onSignaling: (callback) => { + ipcRenderer.on('remote:signaling-to-capture', (_event, data) => callback(data)); + }, + + // Signaling: send answer/ICE back to main process (relayed to dashboard) + sendSignaling: (data) => ipcRenderer.send('remote:signaling-from-capture', data), + + // Input: forward input events from DataChannel to main process + sendInput: (data) => ipcRenderer.send('remote:input-event', data), + + // Notify main process of client connection/disconnection + notifyClientCount: (count) => ipcRenderer.send('remote:client-count', count) +}); diff --git a/lib/remote-capture.html b/lib/remote-capture.html new file mode 100644 index 0000000..c8afbdf --- /dev/null +++ b/lib/remote-capture.html @@ -0,0 +1,124 @@ + + +