+const electron = require('electron')
+const http = require('http')
+const path = require('path')
+const url = require('url')
+const fs = require('fs')
+const app = electron.app
+const BrowserWindow = electron.BrowserWindow
+const ipcMain = electron.ipcMain
+
+let mainWindow
+
+function beginRendererProcess() {
+ mainWindow = new BrowserWindow({show: true, webPreferences: { webSecurity: false, experimentalFeatures: true}})
+ mainWindow.loadURL(url.format({
+ pathname: path.join(__dirname, 'renderer.html'),
+ protocol: 'file:',
+ slashes: true
+ }))
+ mainWindow.webContents.openDevTools()
+}
+
+function captureStream() {
+ mainWindow.webContents.send('defaultStreamRequest', 'slr')
+ let p = new Promise((resolve,reject) => {
+ ipcMain.on('defaultStreamResponse', (event, arg) => {
+ console.log('defaultStreamResponse')
+ console.log(arg)
+ resolve(arg)
+ })
+ })
+
+ return p
+}
+
+
+const routes = {
+ '/': function root(response) {
+ response.write(fs.readFileSync('admin.html'))
+ response.end()
+ },
+ '/admin.js': function js(response) {
+ response.write(fs.readFileSync('admin.js'))
+ response.end()
+ },
+ '/admin.css': function css(response) {
+ response.write(fs.readFileSync('admin.css'))
+ response.end()
+ },
+ '/favicon.ico': function favicon() {
+ return 'strapp'
+ response.end()
+ },
+ '/streamlist': function streamlist(response) {
+ let mediaStream = captureStream().then((stream) => {
+ console.log(stream)
+ })
+
+ //response.write(mediaStream)
+ }
+}
+
+app.on('ready', function() {
+ beginRendererProcess()
+
+
+ http.createServer(function(request, response) {
+ const url = request.url
+ console.log('routing to ' + url);
+ routes[url](response)
+
+ }).listen(5140);
+});