logitech-brio-zoom-control
Version:
Cross-platform native library for controlling Logitech MX Brio camera zoom with 4K video support in Electron applications
29 lines (24 loc) • 1.34 kB
JavaScript
// Electron Preload Script
// Save as: preload.js
const { contextBridge, ipcRenderer } = require('electron');
// Expose protected methods that allow the renderer process to use
// the ipcRenderer without exposing the entire object
contextBridge.exposeInMainWorld('cameraAPI', {
// Device management
discoverDevices: () => ipcRenderer.invoke('camera:discover'),
initializeDevice: (deviceId) => ipcRenderer.invoke('camera:initialize', deviceId),
initializeFirstDevice: () => ipcRenderer.invoke('camera:initialize-first'),
releaseDevice: () => ipcRenderer.invoke('camera:release'),
// Zoom control
getZoomCapabilities: () => ipcRenderer.invoke('camera:zoom:capabilities'),
setZoomAbsolute: (zoomValue) => ipcRenderer.invoke('camera:zoom:set-absolute', zoomValue),
setZoomRelative: (zoomDelta) => ipcRenderer.invoke('camera:zoom:set-relative', zoomDelta),
getZoomValue: () => ipcRenderer.invoke('camera:zoom:get'),
// Convenience methods
zoomIn: (amount) => ipcRenderer.invoke('camera:zoom:in', amount),
zoomOut: (amount) => ipcRenderer.invoke('camera:zoom:out', amount),
resetZoom: () => ipcRenderer.invoke('camera:zoom:reset'),
maxZoom: () => ipcRenderer.invoke('camera:zoom:max'),
// Library info
getLibraryInfo: () => ipcRenderer.invoke('library:info')
});