53 lines
2.4 KiB
JavaScript
53 lines
2.4 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// File system operations
|
|
saveRecording: (fileName, data, email) => ipcRenderer.invoke('save-recording', fileName, data, email),
|
|
getRecordingPath: (fileName, email) => ipcRenderer.invoke('get-recording-path', fileName, email),
|
|
readRecordingData: (fileName, email) => ipcRenderer.invoke('read-recording-data', fileName, email),
|
|
deleteRecording: (fileName, email) => ipcRenderer.invoke('delete-recording', fileName, email),
|
|
selectDirectory: () => ipcRenderer.invoke('select-directory'),
|
|
getDefaultDirectory: () => ipcRenderer.invoke('get-default-directory'),
|
|
listRecordings: (email) => ipcRenderer.invoke('list-recordings', email),
|
|
uploadRecording: (fileName, userEmail, borgEnvironment) => ipcRenderer.invoke('upload-recording', fileName, userEmail, borgEnvironment),
|
|
renameRecording: (oldFileName, newFileName, email) => ipcRenderer.invoke('rename-recording', oldFileName, newFileName, email),
|
|
|
|
// Window controls
|
|
minimizeWindow: () => ipcRenderer.invoke('minimize-window'),
|
|
closeWindow: () => ipcRenderer.invoke('close-window'),
|
|
|
|
// Upload progress
|
|
onUploadProgress: (callback) => {
|
|
const subscription = (event, progress) => callback(progress);
|
|
ipcRenderer.on('upload-progress', subscription);
|
|
return () => {
|
|
ipcRenderer.removeListener('upload-progress', subscription);
|
|
};
|
|
},
|
|
|
|
// FFmpeg status
|
|
checkFFmpeg: () => ipcRenderer.invoke('check-ffmpeg'),
|
|
onFFmpegStatus: (callback) => {
|
|
const subscription = (event, status) => callback(status);
|
|
ipcRenderer.on('ffmpeg-status', subscription);
|
|
return () => {
|
|
ipcRenderer.removeListener('ffmpeg-status', subscription);
|
|
};
|
|
},
|
|
installFFmpeg: () => ipcRenderer.invoke('install-ffmpeg'),
|
|
getFFmpegDownloadUrl: () => ipcRenderer.invoke('get-ffmpeg-download-url'),
|
|
restartApp: () => ipcRenderer.invoke('restart-app'),
|
|
getPlatform: () => process.platform,
|
|
|
|
// User settings methods
|
|
saveUserSettings: (email, settings) => ipcRenderer.invoke('save-user-settings', email, settings),
|
|
getUserSettings: (email) => ipcRenderer.invoke('get-user-settings', email),
|
|
|
|
// Logging functions
|
|
saveLog: (logEntry) => ipcRenderer.invoke('saveLog', logEntry),
|
|
getLogs: () => ipcRenderer.invoke('getLogs'),
|
|
clearLogs: () => ipcRenderer.invoke('clearLogs'),
|
|
|
|
// App Info
|
|
getAppVersion: () => ipcRenderer.invoke('get-app-version')
|
|
}); |