530c3a10b2
- Main Process spawn serveur automatiquement avec IPC sécurisé - Dashboard temps réel : stats, utilisateurs, QR Code - Configuration audio : devices, sample rate, bitrate, jitter buffer - Gestion groupes : CRUD complet via API admin - Monitoring : logs temps réel filtrables par niveau - Notifications : toast visuelles avec auto-dismiss - Packaging : electron-builder pour macOS (.dmg) et Linux (.deb/.AppImage) - Documentation : README technique, QUICKSTART, CHANGELOG, guide utilisateur Structure : - electron/main.js (333 lignes) : Main Process + spawn serveur - electron/preload.js (31 lignes) : IPC bridge sécurisé - electron/ui/index.html (187 lignes) : interface dashboard - electron/ui/styles.css (556 lignes) : dark theme - electron/ui/app.js (626 lignes) : logic frontend Total : 1733 lignes de code Lancement : ./start-desktop.sh API utilisées : /admin/stats, /admin/users, /admin/groups, /admin/config, /admin/devices/list TODO : WebSocket VU-mètres, icônes, tray menu, graphiques monitoring
32 lines
921 B
JavaScript
32 lines
921 B
JavaScript
/**
|
|
* PTT Live Desktop - Preload Script
|
|
* Bridge sécurisé entre Main Process et Renderer Process
|
|
*/
|
|
|
|
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
// Exposer l'API au renderer de manière sécurisée
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// Contrôle serveur
|
|
server: {
|
|
start: () => ipcRenderer.invoke('server:start'),
|
|
stop: () => ipcRenderer.invoke('server:stop'),
|
|
status: () => ipcRenderer.invoke('server:status'),
|
|
ping: () => ipcRenderer.invoke('server:ping'),
|
|
|
|
// Écouter les événements du serveur
|
|
onStatus: (callback) => {
|
|
ipcRenderer.on('server:status', (event, data) => callback(data));
|
|
},
|
|
onLog: (callback) => {
|
|
ipcRenderer.on('server:log', (event, data) => callback(data));
|
|
}
|
|
},
|
|
|
|
// Helpers
|
|
platform: process.platform,
|
|
version: process.env.npm_package_version || '0.3.0'
|
|
});
|
|
|
|
console.log('✅ Preload script chargé');
|