import { ipcRenderer , remote } from 'electron' ; import ConnectedDevicesService from './features/ConnectedDevicesService' ; import DesktopCapturerSourcesService from './features/DesktopCapturerSourcesService' ; import PeerConnection from './features/PeerConnection' ; import SharingSessionService from './features/SharingSessionService' ; import RoomIDService from './server/RoomIDService' ; export function handleIpcRenderer ( ) { ipcRenderer . on ( 'start-peer-connection' , ( ) => { const desktopCapturerSourcesService = remote . getGlobal ( 'desktopCapturerSourcesService' ) as DesktopCapturerSourcesService ; const roomIDService = remote . getGlobal ( 'roomIDService' ) as RoomIDService ; const connectedDevicesService = remote . getGlobal ( 'connectedDevicesService' ) as ConnectedDevicesService ; const sharingSessionService = remote . getGlobal ( 'sharingSessionService' ) as SharingSessionService ; let peerConnection ; ipcRenderer . on ( 'create-peer-connection-with-data' , ( _ , data ) => { peerConnection = new PeerConnection ( data . roomID , data . sharingSessionID , data . user , roomIDService , connectedDevicesService , sharingSessionService , desktopCapturerSourcesService ) ; peerConnection . setOnDeviceConnectedCallback ( ( deviceData ) => { ipcRenderer . send ( 'peer-connected' , deviceData ) ; } ) ; } ) ; ipcRenderer . on ( 'set-desktop-capturer-source-id' , ( _ , id ) => { peerConnection . setDesktopCapturerSourceID ( id ) ; } ) ; ipcRenderer . on ( 'call-peer' , ( ) => { peerConnection . callPeer ( ) ; } ) ; ipcRenderer . on ( 'disconnect-by-host-machine-user' , ( ) => { peerConnection . disconnectByHostMachineUser ( ) ; } ) ; ipcRenderer . on ( 'deny-connection-for-partner' , ( ) => { peerConnection . denyConnectionForPartner ( ) ; } ) ; ipcRenderer . on ( 'send-user-allowed-to-connect' , ( ) => { peerConnection . sendUserAllowedToConnect ( ) ; } ) ; ipcRenderer . on ( 'app-color-theme-changed' , ( ) => { peerConnection . notifyClientWithNewColorTheme ( ) ; } ) ; ipcRenderer . on ( 'app-language-changed' , ( ) => { peerConnection . notifyClientWithNewLanguage ( ) ; } ) ; } ) ; } handleIpcRenderer ( ) ;