42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
'use strict'
|
|
|
|
const { ipcMain } = require('electron')
|
|
const lansync = require('../lansync')
|
|
const { sendToWindow } = require('./games')
|
|
|
|
function registerLanSyncIpc({ getWindow }) {
|
|
ipcMain.handle('lansync:get', () => lansync.getState())
|
|
ipcMain.handle('lansync:devices', () => lansync.listDevices())
|
|
ipcMain.handle('lansync:rerollDeviceId', () => {
|
|
const identity = lansync.rerollDeviceId()
|
|
return { deviceId: identity.deviceId }
|
|
})
|
|
ipcMain.handle('lansync:rerollSyncCode', () => {
|
|
const identity = lansync.rerollSyncCode()
|
|
return { syncCode: identity.syncCode }
|
|
})
|
|
ipcMain.handle('lansync:forget', (e, id) => {
|
|
lansync.forgetDevice(id)
|
|
return { ok: true }
|
|
})
|
|
ipcMain.handle('lansync:clearHashCache', () => {
|
|
lansync.clearHashCache()
|
|
return { ok: true }
|
|
})
|
|
ipcMain.handle('lansync:respondIncoming', (e, requestId, accept) => lansync.respondIncoming(requestId, accept))
|
|
ipcMain.handle('lansync:sync', async (e, payload) => {
|
|
try {
|
|
return await lansync.syncTo({
|
|
deviceId: payload && payload.deviceId,
|
|
code: payload && payload.code,
|
|
categories: payload && payload.categories,
|
|
force: !!(payload && payload.force),
|
|
onProgress: data => sendToWindow(getWindow(), 'lansync:progress', data)
|
|
})
|
|
} catch (err) {
|
|
return { ok: false, error: String((err && err.message) || err) }
|
|
}
|
|
})
|
|
}
|
|
|
|
module.exports = { registerLanSyncIpc }
|