still debugging ipc.send
[henge/kiak.git] / main.js
1 const electron = require('electron')
2 const http = require('http')
3 const path = require('path')
4 const url = require('url')
5 const fs = require('fs')
6 const app = electron.app
7 const BrowserWindow = electron.BrowserWindow
8 const ipcMain = electron.ipcMain
9
10 let mainWindow
11
12 function beginRendererProcess() {
13 mainWindow = new BrowserWindow({show: true, webPreferences: { webSecurity: false, experimentalFeatures: true}})
14 mainWindow.loadURL(url.format({
15 pathname: path.join(__dirname, 'renderer.html'),
16 protocol: 'file:',
17 slashes: true
18 }))
19 mainWindow.webContents.openDevTools()
20 }
21
22 function captureStream() {
23 mainWindow.webContents.send('defaultStreamRequest', 'slr')
24 let p = new Promise((resolve,reject) => {
25 ipcMain.on('defaultStreamResponse', (event, arg) => {
26 console.log('received defaultStreamResponse')
27 resolve(arg)
28 })
29 })
30
31 return p
32 }
33
34
35 const routes = {
36 '/': function root(response) {
37 response.write(fs.readFileSync('admin.html'))
38 response.end()
39 },
40 '/admin.js': function js(response) {
41 response.write(fs.readFileSync('admin.js'))
42 response.end()
43 },
44 '/admin.css': function css(response) {
45 response.write(fs.readFileSync('admin.css'))
46 response.end()
47 },
48 '/favicon.ico': function favicon() {
49 return 'strapp'
50 response.end()
51 },
52 '/streamlist': function streamlist(response) {
53 let mediaStream = captureStream().then((stream) => {
54 console.log(stream)
55 })
56
57 //response.write(mediaStream)
58 }
59 }
60
61 app.on('ready', function() {
62 beginRendererProcess()
63
64
65 http.createServer(function(request, response) {
66 const url = request.url
67 console.log('routing to ' + url);
68 routes[url](response)
69
70 }).listen(5140);
71 });