- Added support for Streamdeck Pedal - Changed UI to Packed Theme - Added preview for knobs (Loupedeck Live) - Added Start to Tray - Added Udev Rules for Streamdeck Pedal
101 lines
4.4 KiB
JavaScript
101 lines
4.4 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('api', {
|
|
// Konfiguration
|
|
getConfig: () => ipcRenderer.invoke('get-config'),
|
|
getPages: () => ipcRenderer.invoke('get-pages'),
|
|
getCurrentPage: () => ipcRenderer.invoke('get-current-page'),
|
|
getDeviceStatus: () => ipcRenderer.invoke('get-device-status'),
|
|
|
|
// Button-Konfig
|
|
setButtonConfig: (pageIndex, buttonIndex, config) =>
|
|
ipcRenderer.invoke('set-button-config', { pageIndex, buttonIndex, config }),
|
|
resetButtonConfig: (pageIndex, buttonIndex) =>
|
|
ipcRenderer.invoke('reset-button-config', { pageIndex, buttonIndex }),
|
|
swapButtonConfigs: (pageIndex, sourceIndex, targetIndex) =>
|
|
ipcRenderer.invoke('swap-button-configs', { pageIndex, sourceIndex, targetIndex }),
|
|
|
|
// Knob-Konfiguration
|
|
setKnobConfig: (knobIndex, config) =>
|
|
ipcRenderer.invoke('set-knob-config', { knobIndex, config }),
|
|
resetKnobConfig: (knobIndex) =>
|
|
ipcRenderer.invoke('reset-knob-config', { knobIndex }),
|
|
|
|
// Circle-Button-Konfig
|
|
setCircleButtonConfig: (index, config) =>
|
|
ipcRenderer.invoke('set-circle-button-config', { index, config }),
|
|
|
|
// Seitenverwaltung
|
|
addPage: () => ipcRenderer.invoke('add-page'),
|
|
deletePage: (pageIndex) => ipcRenderer.invoke('delete-page', pageIndex),
|
|
renamePage: (pageIndex, name) => ipcRenderer.invoke('rename-page', { pageIndex, name }),
|
|
switchPage: (pageIndex) => ipcRenderer.invoke('switch-page', pageIndex),
|
|
setPageFocusConfig: (pageIndex, config) =>
|
|
ipcRenderer.invoke('set-page-focus-config', { pageIndex, config }),
|
|
|
|
// Rendering
|
|
renderPage: () => ipcRenderer.invoke('render-page'),
|
|
|
|
// Datei-Operationen
|
|
selectImage: () => ipcRenderer.invoke('select-image'),
|
|
readImageData: (filePath) => ipcRenderer.invoke('read-image-data', filePath),
|
|
exportConfig: () => ipcRenderer.invoke('export-config'),
|
|
importConfig: () => ipcRenderer.invoke('import-config'),
|
|
|
|
// Geraet
|
|
reconnectDevice: () => ipcRenderer.invoke('reconnect-device'),
|
|
setSetting: (key, value) => ipcRenderer.invoke('set-setting', { key, value }),
|
|
|
|
// Fenstersteuerung
|
|
minimizeWindow: () => ipcRenderer.invoke('window-minimize'),
|
|
maximizeWindow: () => ipcRenderer.invoke('window-maximize'),
|
|
closeWindow: () => ipcRenderer.invoke('window-close'),
|
|
|
|
// Pedal-Konfiguration
|
|
getPedalPages: () => ipcRenderer.invoke('get-pedal-pages'),
|
|
getPedalCurrentPage: () => ipcRenderer.invoke('get-pedal-current-page'),
|
|
getPedalStatus: () => ipcRenderer.invoke('get-pedal-status'),
|
|
|
|
// Pedal-Button-Konfig
|
|
setPedalButtonConfig: (pageIndex, buttonIndex, config) =>
|
|
ipcRenderer.invoke('set-pedal-button-config', { pageIndex, buttonIndex, config }),
|
|
resetPedalButtonConfig: (pageIndex, buttonIndex) =>
|
|
ipcRenderer.invoke('reset-pedal-button-config', { pageIndex, buttonIndex }),
|
|
|
|
// Pedal-Seitenverwaltung
|
|
addPedalPage: () => ipcRenderer.invoke('add-pedal-page'),
|
|
deletePedalPage: (pageIndex) => ipcRenderer.invoke('delete-pedal-page', pageIndex),
|
|
renamePedalPage: (pageIndex, name) => ipcRenderer.invoke('rename-pedal-page', { pageIndex, name }),
|
|
switchPedalPage: (pageIndex) => ipcRenderer.invoke('switch-pedal-page', pageIndex),
|
|
reconnectPedal: () => ipcRenderer.invoke('reconnect-pedal'),
|
|
|
|
// Event-Listener
|
|
onDeviceStatus: (callback) => {
|
|
ipcRenderer.on('device-status', (event, data) => callback(data));
|
|
},
|
|
onButtonPress: (callback) => {
|
|
ipcRenderer.on('button-press', (event, data) => callback(data));
|
|
},
|
|
onKnobRotate: (callback) => {
|
|
ipcRenderer.on('knob-rotate', (event, data) => callback(data));
|
|
},
|
|
onPageChanged: (callback) => {
|
|
ipcRenderer.on('page-changed', (event, data) => callback(data));
|
|
},
|
|
onMetricUpdate: (callback) => {
|
|
ipcRenderer.on('metric-update', (event, data) => callback(data));
|
|
},
|
|
onButtonToggle: (callback) => {
|
|
ipcRenderer.on('button-toggle', (event, data) => callback(data));
|
|
},
|
|
onPedalStatus: (callback) => {
|
|
ipcRenderer.on('pedal-status', (event, data) => callback(data));
|
|
},
|
|
onPedalButtonPress: (callback) => {
|
|
ipcRenderer.on('pedal-button-press', (event, data) => callback(data));
|
|
},
|
|
onRuntimeWarning: (callback) => {
|
|
ipcRenderer.on('runtime-warning', (event, data) => callback(data));
|
|
}
|
|
});
|