diff --git a/lib/arduino/Readme.md b/lib/arduino/Readme.md
deleted file mode 100644
index 2e22601..0000000
--- a/lib/arduino/Readme.md
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-## Arduino
-Class representing the arduino communication features
-
-**Kind**: global class
-
-* [Arduino](#Arduino)
- * [.enumerate()](#Arduino+enumerate) ⇒ Promise
- * [.sendAsync(device, cmd)](#Arduino+sendAsync) ⇒ Promise
- * [.writeAsync(device, str)](#Arduino+writeAsync) ⇒ Promise
- * [.openArduino(device)](#Arduino+openArduino) ⇒ Promise
- * [.closeArduino(device)](#Arduino+closeArduino) ⇒ Promise
-
-
-
-### arduino.enumerate() ⇒ Promise
-Enumerate all connected devices that might be Arduinos
-
-**Kind**: instance method of [Arduino
](#Arduino)
-**Returns**: Promise
- Resolves after enumerating
-
-
-### arduino.sendAsync(device, cmd) ⇒ Promise
-Send a command to an Arduino using async/await
-
-**Kind**: instance method of [Arduino
](#Arduino)
-**Returns**: Promise
- Resolves after sending
-
-| Param | Type | Description |
-| --- | --- | --- |
-| device | string
| Arduino identifier |
-| cmd | string
| Single character command to send |
-
-
-
-### arduino.writeAsync(device, str) ⇒ Promise
-Send a string to an Arduino using async/await
-
-**Kind**: instance method of [Arduino
](#Arduino)
-**Returns**: Promise
- Resolves after sending
-
-| Param | Type | Description |
-| --- | --- | --- |
-| device | string
| Arduino identifier |
-| str | string
| String to send |
-
-
-
-### arduino.openArduino(device) ⇒ Promise
-Connect to an Arduino using async/await
-
-**Kind**: instance method of [Arduino
](#Arduino)
-**Returns**: Promise
- Resolves after opening
-
-| Param | Type | Description |
-| --- | --- | --- |
-| device | string
| Arduino identifier |
-
-
-
-### arduino.closeArduino(device) ⇒ Promise
-Close a connection to an Arduino using async/await
-
-**Kind**: instance method of [Arduino
](#Arduino)
-**Returns**: Promise
- Resolves after closing
-
-| Param | Type | Description |
-| --- | --- | --- |
-| device | string
| Arduino identifier |
-
diff --git a/lib/arduino/index.js b/lib/arduino/index.js
deleted file mode 100644
index 27ef518..0000000
--- a/lib/arduino/index.js
+++ /dev/null
@@ -1,393 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-//import Log = require('log');
-const delay_1 = require("delay");
-const SerialPort = require('serialport');
-const Readline = SerialPort.parsers.Readline;
-const exec = require('child_process').exec;
-const parser = new Readline('');
-const newlineRe = new RegExp('\n', 'g');
-const returnRe = new RegExp('\r', 'g');
-let eventEmitter;
-let cfg;
-let arduino;
-const KNOWN = [
- '/dev/tty.usbmodem1a161',
- '/dev/tty.usbserial-A800f8dk',
- '/dev/tty.usbserial-A900cebm',
- '/dev/tty.usbmodem1a131',
- '/dev/tty.usbserial-a900f6de',
- '/dev/tty.usbmodem1a141',
- '/dev/ttyACM0',
- 'COM3'
-];
-/**
- * Class representing the arduino communication features
- **/
-class Arduino {
- constructor() {
- this.path = {};
- this.known = KNOWN;
- this.alias = {};
- this.serial = { connect: {}, projector: {}, camera: {}, light: {} };
- this.baud = 57600;
- this.queue = {};
- this.timer = 0;
- this.lock = false;
- this.locks = {};
- }
- /**
- * Enumerate all connected devices that might be Arduinos
- *
- * @returns {Promise} Resolves after enumerating
- **/
- async enumerate() {
- return new Promise((resolve, reject) => {
- return SerialPort.list((err, ports) => {
- let matches = [];
- if (err) {
- return reject(err);
- }
- ports.forEach((port) => {
- if (this.known.indexOf(port.comName) !== -1) {
- matches.push(port.comName);
- }
- else if ((port.manufacturer + '').toLowerCase().indexOf('arduino') !== -1) {
- matches.push(port.comName);
- }
- else if ((port.comName + '').toLowerCase().indexOf('usbserial') !== -1) {
- matches.push(port.comName);
- }
- else if ((port.comName + '').toLowerCase().indexOf('usbmodem') !== -1) {
- matches.push(port.comName);
- }
- else if ((port.comName + '').toLowerCase().indexOf('ttyusb') !== -1) {
- matches.push(port.comName);
- }
- });
- if (matches.length === 0) {
- return reject('No USB devices found');
- }
- else if (matches.length > 0) {
- return resolve(matches);
- }
- });
- });
- }
- /**
- * Send a command to an Arduino using async/await
- *
- * @param {string} device Arduino identifier
- * @param {string} cmd Single character command to send
- *
- * @returns {Promise} Resolves after sending
- **/
- async sendAsync(device, cmd) {
- return new Promise((resolve, reject) => {
- this.queue[cmd] = (ms) => {
- return resolve(ms);
- };
- return this.serial[device].write(cmd, (err, results) => {
- if (err) {
- //console.error(err)
- return reject(err);
- }
- //
- });
- });
- }
- async send(serial, cmd) {
- const device = this.alias[serial];
- let results;
- if (this.locks[serial]) {
- return false;
- }
- this.timer = new Date().getTime();
- this.locks[serial] = true;
- await delay_1.delay(cfg.arduino.serialDelay);
- try {
- results = await this.sendAsync(device, cmd);
- }
- catch (e) {
- return console.error(e);
- }
- this.locks[serial] = false;
- await eventEmitter.emit('arduino_send', cmd);
- return results;
- }
- async string(serial, str) {
- const device = this.alias[serial];
- let writeSuccess;
- await delay_1.delay(cfg.arduino.serialDelay);
- if (typeof this.serial[device].fake !== 'undefined'
- && this.serial[device].fake) {
- return this.serial[device].string(str);
- }
- else {
- try {
- writeSuccess = await this.writeAsync(device, str);
- }
- catch (e) {
- return console.error(e);
- }
- return writeSuccess;
- }
- }
- /**
- * Send a string to an Arduino using async/await
- *
- * @param {string} device Arduino identifier
- * @param {string} str String to send
- *
- * @returns {Promise} Resolves after sending
- **/
- async writeAsync(device, str) {
- return new Promise((resolve, reject) => {
- this.serial[device].write(str, function (err, results) {
- if (err) {
- return reject(err);
- }
- return resolve(results);
- });
- });
- }
- end(serial, data) {
- const end = new Date().getTime();
- const ms = end - this.timer;
- let complete;
- if (this.queue[data] !== undefined) {
- this.locks[serial] = false;
- complete = this.queue[data](ms); //execute callback
- eventEmitter.emit('arduino_end', data);
- delete this.queue[data];
- }
- else {
- //console.log('Received stray "' + data + '"'); //silent to user
- }
- return ms;
- }
- aliasSerial(serial, device) {
- //this.log.info(`Making "${serial}" an alias of ${device}`);
- this.alias[serial] = device;
- }
- async connect(serial, device, confirm) {
- return new Promise(async (resolve, reject) => {
- let connectSuccess;
- this.path[serial] = device;
- this.alias[serial] = device;
- this.serial[device] = new SerialPort(this.path[serial], {
- autoOpen: false,
- baudRate: cfg.arduino.baud,
- parser: parser
- });
- this.locks[device] = false;
- try {
- connectSuccess = await this.openArduino(device);
- }
- catch (e) {
- console.error('failed to open: ' + e);
- return reject(e);
- }
- //console.log(`Opened connection with ${this.path[serial]} as ${serial}`);
- if (!confirm) {
- this.serial[device].on('data', async (data) => {
- let d = data.toString('utf8');
- d = d.replace(newlineRe, '').replace(returnRe, '');
- return this.end(serial, d);
- });
- }
- else {
- this.serial[device].on('data', async (data) => {
- let d = data.toString('utf8');
- d = d.replace(newlineRe, '').replace(returnRe, '');
- return await this.confirmEnd(d);
- });
- }
- return resolve(this.path[serial]);
- });
- }
- confirmEnd(data) {
- //console.dir(data)
- if (data === cfg.arduino.cmd.connect
- || data === cfg.arduino.cmd.projector_identifier
- || data === cfg.arduino.cmd.camera_identifier
- || data === cfg.arduino.cmd.light_identifier
- || data === cfg.arduino.cmd.projector_light_identifier
- || data === cfg.arduino.cmd.projector_camera_light_identifier
- || data === cfg.arduino.cmd.projector_camera_identifier
- || data === cfg.arduino.cmd.projector_second_identifier
- || data === cfg.arduino.cmd.projectors_identifier
- || data === cfg.arduino.cmd.projector_second_forward
- || data === cfg.arduino.cmd.projector_second_backward
- || data === cfg.arduino.cmd.projector_second
- || data === cfg.arduino.cmd.projectors
- || data === cfg.arduino.cmd.camera_second_identifier
- || data === cfg.arduino.cmd.cameras_identifier
- || data === cfg.arduino.cmd.camera_second_forward
- || data === cfg.arduino.cmd.camera_second_backward
- || data === cfg.arduino.cmd.camera_second
- || data === cfg.arduino.cmd.cameras) {
- this.confirmExec(null, data);
- this.confirmExec = {};
- }
- }
- async verify() {
- return new Promise(async (resolve, reject) => {
- const device = this.alias['connect'];
- let writeSuccess;
- this.confirmExec = function (err, data) {
- if (data === cfg.arduino.cmd.connect) {
- return resolve(true);
- }
- else {
- return reject('Wrong data returned');
- }
- };
- await delay_1.delay(cfg.arduino.serialDelay);
- try {
- writeSuccess = await this.sendAsync(device, cfg.arduino.cmd.connect);
- }
- catch (e) {
- return reject(e);
- }
- return resolve(writeSuccess);
- });
- }
- async distinguish() {
- return new Promise(async (resolve, reject) => {
- const device = this.alias['connect'];
- let writeSuccess;
- let type;
- this.confirmExec = function (err, data) {
- if (data === cfg.arduino.cmd.projector_identifier) {
- type = 'projector';
- }
- else if (data === cfg.arduino.cmd.camera_identifier) {
- type = 'camera';
- }
- else if (data === cfg.arduino.cmd.light_identifier) {
- type = 'light';
- }
- else if (data === cfg.arduino.cmd.projector_light_identifier) {
- type = 'projector,light';
- }
- else if (data === cfg.arduino.cmd.projector_camera_light_identifier) {
- type = 'projector,camera,light';
- }
- else if (data === cfg.arduino.cmd.projector_camera_identifier) {
- type = 'projector,camera';
- }
- else if (data === cfg.arduino.cmd.projector_second_identifier) {
- type = 'projector_second';
- }
- else if (data === cfg.arduino.cmd.projectors_identifier) {
- type = 'projector,projector_second';
- }
- else if (data === cfg.arduino.cmd.camera_second_identifier) {
- type = 'camera_second';
- }
- else if (data === cfg.arduino.cmd.cameras_identifier) {
- type = 'camera,camera_second';
- }
- else if (data === cfg.arduino.cmd.camera_projectors_identifier) {
- type = 'camera,projector,projector_second';
- }
- else if (data === cfg.arduino.cmd.cameras_projector_identifier) {
- type = 'camera,camera_second,projector';
- }
- else if (data === cfg.arduino.cmd.cameras_projectors_identifier) {
- type = 'camera,camera_second,projector,projector_second';
- }
- return resolve(type);
- };
- await delay_1.delay(cfg.arduino.serialDelay);
- try {
- writeSuccess = await this.sendAsync(device, cfg.arduino.cmd.mcopy_identifier);
- }
- catch (e) {
- return reject(e);
- }
- });
- }
- async close() {
- const device = this.alias['connect'];
- let closeSuccess;
- try {
- closeSuccess = await this.closeArduino(device);
- }
- catch (e) {
- throw e;
- }
- return closeSuccess;
- }
- ;
- async fakeConnect(serial) {
- const device = '/dev/fake';
- this.alias[serial] = device;
- this.serial[device] = {
- write: async function (cmd, cb) {
- const t = {
- c: cfg.arduino.cam.time + cfg.arduino.cam.delay,
- p: cfg.arduino.proj.time + cfg.arduino.proj.delay
- };
- let timeout = t[cmd];
- if (typeof timeout === 'undefined')
- timeout = 10;
- arduino.timer = +new Date();
- await delay_1.delay(timeout);
- arduino.end(serial, cmd);
- return cb();
- },
- string: async function (str) {
- //do nothing
- return true;
- },
- fake: true
- };
- //console.log('Connected to fake arduino! Not real! Does not exist!');
- return true;
- }
- /**
- * Connect to an Arduino using async/await
- *
- * @param {string} device Arduino identifier
- *
- * @returns {Promise} Resolves after opening
- **/
- async openArduino(device) {
- return new Promise((resolve, reject) => {
- return this.serial[device].open((err) => {
- if (err) {
- return reject(err);
- }
- return resolve(true);
- });
- });
- }
- /**
- * Close a connection to an Arduino using async/await
- *
- * @param {string} device Arduino identifier
- *
- * @returns {Promise} Resolves after closing
- **/
- async closeArduino(device) {
- return new Promise((resolve, reject) => {
- return this.serial[device].close((err) => {
- if (err) {
- return reject(err);
- }
- return resolve(true);
- });
- });
- }
-}
-if (typeof module !== 'undefined' && module.parent) {
- module.exports = function (c, ee) {
- eventEmitter = ee;
- cfg = c;
- arduino = new Arduino();
- return arduino;
- };
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/arduino/index.js.map b/lib/arduino/index.js.map
deleted file mode 100644
index c75f264..0000000
--- a/lib/arduino/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arduino/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/arduino/package.json b/lib/arduino/package.json
deleted file mode 100644
index 43708c1..0000000
--- a/lib/arduino/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "arduino",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/cam/Readme.md b/lib/cam/Readme.md
deleted file mode 100644
index 3825697..0000000
--- a/lib/cam/Readme.md
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-## Camera
-class representing camera functions
-
-**Kind**: global class
-
-* [Camera](#Camera)
- * [.init()](#Camera+init)
- * [.listen()](#Camera+listen)
- * [.set()](#Camera+set)
- * [.move()](#Camera+move)
- * [.exposure()](#Camera+exposure)
- * [.connectIntval()](#Camera+connectIntval)
- * [.listener()](#Camera+listener)
- * [.end()](#Camera+end)
-
-
-
-### camera.init()
-**Kind**: instance method of [Camera
](#Camera)
-
-
-### camera.listen()
-**Kind**: instance method of [Camera
](#Camera)
-
-
-### camera.set()
-**Kind**: instance method of [Camera
](#Camera)
-
-
-### camera.move()
-**Kind**: instance method of [Camera
](#Camera)
-
-
-### camera.exposure()
-**Kind**: instance method of [Camera
](#Camera)
-
-
-### camera.connectIntval()
-**Kind**: instance method of [Camera
](#Camera)
-
-
-### camera.listener()
-**Kind**: instance method of [Camera
](#Camera)
-
-
-### camera.end()
-**Kind**: instance method of [Camera
](#Camera)
diff --git a/lib/cam/index.js b/lib/cam/index.js
deleted file mode 100644
index a69c877..0000000
--- a/lib/cam/index.js
+++ /dev/null
@@ -1,224 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const intval_1 = require("intval");
-/** class representing camera functions **/
-class Camera {
- /**
- *
- **/
- constructor(arduino, cfg, ui, filmout, second = false) {
- this.state = {
- pos: 0,
- dir: true
- };
- this.arduino = null;
- this.intval = null;
- this.id = 'camera';
- this.arduino = arduino;
- this.cfg = cfg;
- this.ui = ui;
- this.filmout = filmout;
- if (second)
- this.id += '_second';
- this.init();
- }
- /**
- *
- **/
- async init() {
- const Log = require('log');
- this.log = await Log({ label: this.id });
- this.ipc = require('electron').ipcMain;
- this.listen();
- }
- /**
- *
- **/
- listen() {
- this.ipc.on(this.id, this.listener.bind(this));
- this.ipc.on('intval', this.connectIntval.bind(this));
- }
- /**
- *
- **/
- async set(dir, id) {
- let cmd;
- let ms;
- if (dir) {
- cmd = this.cfg.arduino.cmd[`${this.id}_forward`];
- }
- else {
- cmd = this.cfg.arduino.cmd[`${this.id}_backward`];
- }
- this.state.dir = dir;
- if (this.intval) {
- try {
- ms = await this.intval.setDir(dir);
- }
- catch (err) {
- this.log.error(err);
- }
- }
- else {
- try {
- ms = await this.arduino.send(this.id, cmd);
- }
- catch (err) {
- this.log.error(err);
- }
- }
- return await this.end(cmd, id, ms);
- }
- /**
- *
- **/
- async move(frame, id) {
- const cmd = this.cfg.arduino.cmd[this.id];
- let ms;
- if (this.filmout.state.enabled) {
- await this.filmout.start();
- }
- if (this.intval) {
- try {
- ms = await this.intval.move();
- }
- catch (err) {
- this.log.error(err);
- }
- }
- else {
- try {
- ms = await this.arduino.send(this.id, cmd);
- }
- catch (err) {
- this.log.error(err);
- }
- }
- if (this.filmout.state.enabled) {
- //await delay(100 * 1000);
- await this.filmout.end();
- }
- //this.log.info('Camera move time', { ms });
- return this.end(cmd, id, ms);
- }
- async both(frame, id) {
- const cmd = this.cfg.arduino.cmd[id];
- let ms;
- try {
- ms = await this.arduino.send(this.id, cmd);
- }
- catch (err) {
- this.log.error(`Error moving ${this.id}`, err);
- }
- //this.log.info('Cameras move time', { ms });
- return await this.end(cmd, id, ms);
- }
- /**
- *
- **/
- exposure(exposure, id) {
- let cmd = 'E';
- this.intval.setExposure(this.id, exposure, (ms) => {
- this.end(cmd, id, ms);
- });
- }
- /**
- *
- **/
- async connectIntval(event, arg) {
- return new Promise((resolve, reject) => {
- if (arg.connect) {
- this.intval = new intval_1.Intval(arg.url);
- this.intval.connect((err, ms, state) => {
- if (err) {
- this.ui.send('intval', { connected: false });
- this.log.info(`Cannot connect to ${arg.url}`, 'INTVAL');
- this.intval = null;
- }
- else {
- this.ui.send('intval', { connected: true, url: arg.url, state: state });
- this.log.info(`Connected to INTVAL3 @ ${arg.url}`, 'INTVAL');
- }
- return resolve(true);
- });
- }
- else if (arg.disconnect) {
- this.intval = null;
- return resolve(false);
- }
- });
- }
- /**
- *
- **/
- async listener(event, arg) {
- if (typeof arg.dir !== 'undefined') {
- try {
- await this.set(arg.dir, arg.id);
- }
- catch (err) {
- this.log.error(err);
- }
- }
- else if (typeof arg.frame !== 'undefined') {
- try {
- await this.move(arg.frame, arg.id);
- }
- catch (err) {
- this.log.error(err);
- }
- }
- else if (typeof arg.val !== 'undefined') {
- this.state.pos = arg.val;
- }
- event.returnValue = true;
- }
- /**
- *
- **/
- async end(cmd, id, ms) {
- let message = '';
- if (cmd === this.cfg.arduino.cmd.camera_forward) {
- message = 'Camera set to FORWARD';
- }
- else if (cmd === this.cfg.arduino.cmd.camera_backward) {
- message = 'Camera set to BACKWARD';
- }
- else if (cmd === this.cfg.arduino.cmd.camera_second_forward) {
- message = 'Camera second set to FORWARD';
- }
- else if (cmd === this.cfg.arduino.cmd.camera_second_backward) {
- message = 'Camera second set to BACKWARD';
- }
- else if (cmd === this.cfg.arduino.cmd.camera) {
- message = 'Camera ';
- if (this.state.dir) {
- message += 'ADVANCED';
- }
- else {
- message += 'REWOUND';
- }
- message += ' 1 frame';
- }
- else if (cmd === this.cfg.arduino.cmd.camera_second) {
- message = 'Camera second ';
- if (this.state.dir) {
- message += 'ADVANCED';
- }
- else {
- message += 'REWOUND';
- }
- message += ' 1 frame';
- }
- else if (cmd === this.cfg.arduino.cmd.camerass) {
- message += 'Cameras both MOVED 1 frame each';
- }
- message += ` ${ms}ms`;
- this.log.info(message);
- this.ui.send(this.id, { cmd: cmd, id: id, ms: ms });
- }
-}
-module.exports = function (arduino, cfg, ui, filmout, second) {
- return new Camera(arduino, cfg, ui, filmout, second);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/cam/index.js.map b/lib/cam/index.js.map
deleted file mode 100644
index a1ece7a..0000000
--- a/lib/cam/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cam/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,mCAAgC;AAGhC,2CAA2C;AAE3C,MAAM,MAAM;IAaX;;QAEI;IACJ,YAAa,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa,EAAE,SAAmB,KAAK;QAfpF,UAAK,GAAS;YACrB,GAAG,EAAG,CAAC;YACP,GAAG,EAAG,IAAI;SACV,CAAC;QACM,YAAO,GAAa,IAAI,CAAC;QACzB,WAAM,GAAS,IAAI,CAAC;QAMpB,OAAE,GAAY,QAAQ,CAAC;QAK9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,MAAM;YAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,IAAI;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED;;QAEI;IACI,MAAM;QACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,GAAG,CAAE,GAAa,EAAE,EAAW;QAC3C,IAAI,GAAY,CAAC;QACjB,IAAI,EAAW,CAAC;QAEhB,IAAI,GAAG,EAAE;YACR,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;SACjD;aAAM;YACN,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACnC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM;YACN,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;QACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,IAAI,CAAE,KAAc,EAAE,EAAW;QAC7C,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,EAAW,CAAC;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;SAC1B;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aAC9B;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM;YACN,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,0BAA0B;YAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SACzB;QACD,4CAA4C;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAE,KAAW,EAAE,EAAW;QAC1C,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAW,CAAC;QAChB,IAAI;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;SAC1C;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;SAC9C;QACD,6CAA6C;QAC7C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED;;QAEI;IACG,QAAQ,CAAE,QAAiB,EAAE,EAAW;QAC9C,IAAI,GAAG,GAAY,GAAG,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAW,EAAE,EAAE;YAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,aAAa,CAAE,KAAW,EAAE,GAAS;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,GAAG,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAS,EAAE,EAAW,EAAE,KAAe,EAAE,EAAE;oBAC/D,IAAI,GAAG,EAAE;wBACR,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAG,KAAK,EAAE,CAAC,CAAA;wBAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;wBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;qBAClB;yBAAM;wBACN,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,GAAG,EAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAG,KAAK,EAAE,CAAC,CAAA;wBAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;qBAC5D;oBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;gBACrB,CAAC,CAAC,CAAA;aACF;iBAAM,IAAI,GAAG,CAAC,UAAU,EAAE;gBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;gBAClB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;aACrB;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,QAAQ,CAAE,KAAW,EAAE,GAAS;QAC7C,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YACnC,IAAI;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;aAChC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE;YAC5C,IAAI;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;aACnC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;SACzB;QACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,GAAG,CAAE,GAAY,EAAE,EAAW,EAAE,EAAW;QACxD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE;YAChD,OAAO,GAAG,uBAAuB,CAAC;SAClC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE;YACxD,OAAO,GAAG,wBAAwB,CAAC;SACnC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC9D,OAAO,GAAG,8BAA8B,CAAC;SACzC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE;YAC/D,OAAO,GAAG,+BAA+B,CAAC;SAC1C;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;YAC/C,OAAO,GAAG,SAAS,CAAC;YACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnB,OAAO,IAAI,UAAU,CAAC;aACtB;iBAAM;gBACN,OAAO,IAAI,SAAS,CAAC;aACrB;YACD,OAAO,IAAI,UAAU,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;YACtD,OAAO,GAAG,gBAAgB,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnB,OAAO,IAAI,UAAU,CAAC;aACtB;iBAAM;gBACN,OAAO,IAAI,SAAS,CAAC;aACrB;YACD,OAAO,IAAI,UAAU,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;YACjD,OAAO,IAAI,iCAAiC,CAAC;SAC7C;QACD,OAAO,IAAI,IAAI,EAAE,IAAI,CAAA;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;IACpD,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa,EAAE,MAAgB;IACjG,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAA"}
\ No newline at end of file
diff --git a/lib/cam/package.json b/lib/cam/package.json
deleted file mode 100644
index 980dbbd..0000000
--- a/lib/cam/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "cam",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/cmd/Readme.md b/lib/cmd/Readme.md
deleted file mode 100644
index e69de29..0000000
diff --git a/lib/cmd/index.js b/lib/cmd/index.js
deleted file mode 100644
index 632ba58..0000000
--- a/lib/cmd/index.js
+++ /dev/null
@@ -1,566 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const delay_1 = require("delay");
-class Commands {
- /**
- * @constructor
- * Assign all connected devices and mock devices as private classes.
- *
- * @param {object} cfg Configuration object
- * @param {object} proj Projector 1
- * @param {object} cam Camera 1
- * @param {object} light Light source
- * @param {object} cam2 (optional) Camera 2
- * @param {object} proj2 {optional} Projector 2
- **/
- constructor(cfg, proj, cam, light, cam2 = null, proj2 = null) {
- this.cfg = cfg;
- this.proj = proj;
- this.cam = cam;
- this.light = light;
- if (cam2)
- this.cam2 = cam2;
- if (proj2)
- this.proj2 = proj2;
- this.ipc = require('electron').ipcMain;
- }
- /**
- * Move the projector one frame forward
- *
- * @returns {integer} Length of action in ms
- **/
- async projector_forward() {
- let ms;
- try {
- if (!this.proj.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.proj.move();
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the projector one frame backward
- *
- * @returns {integer} Length of action in ms
- **/
- async projector_backward() {
- let ms;
- try {
- if (this.proj.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.proj.move();
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the camera one frame forward
- *
- * @param {array} rgb Color to set light for frame
- *
- * @returns {integer} Length of action in ms
- **/
- async camera_forward(rgb = [255, 255, 255]) {
- const off = [0, 0, 0];
- let ms;
- try {
- if (!this.cam.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(rgb);
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.cam.move();
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the camera one frame forward with light off
- *
- * @returns {integer} Length of action in ms
- **/
- async black_forward() {
- const off = [0, 0, 0];
- let ms;
- try {
- if (!this.cam.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off); //make sure set to off
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.cam.move();
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the camera one frame backward
- *
- * @param {array} rgb Color to set light for frame
- *
- * @returns {integer} Length of action in ms
- **/
- async camera_backward(rgb = [255, 255, 255]) {
- const off = [0, 0, 0];
- let ms;
- try {
- if (this.cam.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(rgb);
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.cam.move();
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the camera one frame forward, light set to black or off
- *
- * @returns {integer} Length of action in ms
- **/
- async black_backward() {
- const off = [0, 0, 0];
- let ms;
- try {
- if (this.cam.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off); //make sure set to off
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.cam.move();
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the second camera one frame forward
- *
- * @param {array} rgb Color to set light for frame
- *
- * @returns {integer} Length of action in ms
- **/
- async camera_second_forward(rgb = [255, 255, 255]) {
- const off = [0, 0, 0];
- let ms;
- try {
- if (!this.cam2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam2.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(rgb);
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.cam2.move();
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the second camera one frame backward
- *
- * @param {array} rgb Color to set light for frame
- *
- * @returns {integer} Length of action in ms
- **/
- async camera_second_backward(rgb = [255, 255, 255]) {
- const off = [0, 0, 0];
- let ms;
- try {
- if (this.cam2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam2.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(rgb);
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.cam2.move();
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the both cameras one frame forward
- *
- * @param {array} rgb Color to set light for frame
- *
- * @returns {integer} Length of action in ms
- **/
- async cameras_forward(rgb = [255, 255, 255]) {
- const off = [0, 0, 0];
- let both;
- let ms;
- try {
- if (!this.cam.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam.set(true);
- }
- if (!this.cam2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam2.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(rgb);
- await delay_1.delay(this.cfg.arduino.serialDelay);
- if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
- ms = await this.cam.both();
- }
- else {
- this.cam.move();
- this.cam2.move();
- both = [await this.cam.move, await this.cam2.move];
- ms = Math.max(...both);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the both cameras one frame backward
- *
- * @param {array} rgb Color to set light for frame
- *
- * @returns {integer} Length of action in ms
- **/
- async cameras_backward(rgb = [255, 255, 255]) {
- const off = [0, 0, 0];
- let both;
- let ms;
- try {
- if (this.cam.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam.set(false);
- }
- if (this.cam2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam2.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(rgb);
- await delay_1.delay(this.cfg.arduino.serialDelay);
- if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
- ms = await this.cam.both();
- }
- else {
- this.cam.move();
- this.cam2.move();
- both = [await this.cam.move, await this.cam2.move];
- ms = Math.max(...both);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move first camera one frame forward and rewind secondary camera one frame backward
- *
- * @param {array} rgb Color to set light for frames
- *
- * @returns {integer} Length of action in ms
- **/
- async camera_forward_camera_second_backward(rgb = [255, 255, 255]) {
- const off = [0, 0, 0];
- let both;
- let ms;
- try {
- if (!this.cam.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam.set(true);
- }
- if (this.cam2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam2.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(rgb);
- await delay_1.delay(this.cfg.arduino.serialDelay);
- if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
- ms = await this.cam.both();
- }
- else {
- this.cam.move();
- this.cam2.move();
- both = [await this.cam.move, await this.cam2.move];
- ms = Math.max(...both);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Rewind first camera one frame backward and move secondary camera one frame forward
- *
- * @param {array} rgb Color to set light for frame
- *
- * @returns {integer} Length of action in ms
- **/
- async camera_backward_camera_second_forward(rgb = [255, 255, 255]) {
- const off = [0, 0, 0];
- let both;
- let ms;
- try {
- if (this.cam.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam.set(false);
- }
- if (!this.cam2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.cam2.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(rgb);
- await delay_1.delay(this.cfg.arduino.serialDelay);
- if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
- ms = await this.cam.both();
- }
- else {
- this.cam.move();
- this.cam.move();
- both = [await this.cam.move, await this.proj2.move];
- ms = Math.max(...both);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.light.set(off);
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the secondary projector forward one frame
- *
- * @returns {integer} Length of action in ms
- **/
- async projector_second_forward() {
- let ms;
- try {
- if (!this.proj2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj2.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.proj2.move();
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Rewind the secondary projector backward one frame
- *
- * @returns {integer} Length of action in ms
- **/
- async projector_second_backward() {
- let ms;
- try {
- if (this.proj2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj2.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- ms = await this.proj2.move();
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the both projectors forward one frame
- *
- * @returns {integer} Length of action in ms
- **/
- async projectors_forward() {
- let both;
- let ms;
- try {
- if (!this.proj.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj.set(true);
- }
- if (!this.proj2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj2.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
- ms = await this.proj.both();
- }
- else {
- this.proj.move();
- this.proj2.move();
- both = [await this.proj.move, await this.proj2.move];
- ms = Math.max(...both);
- }
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Rewind both projectors backwards one frame
- *
- * @returns {integer} Length of action in ms
- **/
- async projectors_backward() {
- let both;
- let ms;
- try {
- if (this.proj.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj.set(false);
- }
- if (this.proj2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj2.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- //run one projector without await?
- if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
- ms = await this.proj.both();
- }
- else {
- this.proj.move();
- this.proj2.move();
- both = [await this.proj.move, await this.proj2.move];
- ms = Math.max(...both);
- }
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Move the primary projector forward one frame and rewind the secondary projector
- * one frame backwards.
- *
- * @returns {integer} Length of action in ms
- **/
- async projector_forward_projector_second_backward() {
- let both;
- let ms;
- try {
- if (!this.proj.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj.set(true);
- }
- if (this.proj2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj2.set(false);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- //run one projector without await?
- if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
- ms = await this.proj.both();
- }
- else {
- this.proj.move();
- this.proj2.move();
- both = [await this.proj.move, await this.proj2.move];
- ms = Math.max(...both);
- }
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
- /**
- * Rewind the primary projector backwards one frame and move the secondary
- * projector forward one frame.
- *
- * @returns {integer} Length of action in ms
- **/
- async projector_backward_projector_second_forward() {
- let both;
- let ms;
- try {
- if (this.proj.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj.set(false);
- }
- if (!this.proj2.state.dir) {
- await delay_1.delay(this.cfg.arduino.serialDelay);
- await this.proj2.set(true);
- }
- await delay_1.delay(this.cfg.arduino.serialDelay);
- //run one projector without await?
- if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
- ms = await this.proj.both();
- }
- else {
- this.proj.move();
- this.proj2.move();
- both = [await this.proj.move, await this.proj2.move];
- ms = Math.max(...both);
- }
- }
- catch (err) {
- throw err;
- }
- return ms;
- }
-}
-module.exports = function (cfg, proj, cam, light, cam2, proj2) {
- return new Commands(cfg, proj, cam, light, cam2, proj2);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/cmd/index.js.map b/lib/cmd/index.js.map
deleted file mode 100644
index 8996ce2..0000000
--- a/lib/cmd/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/cmd/package.json b/lib/cmd/package.json
deleted file mode 100644
index c8b0f10..0000000
--- a/lib/cmd/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "cmd",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/delay/Readme.md b/lib/delay/Readme.md
deleted file mode 100644
index 7110004..0000000
--- a/lib/delay/Readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-## delay(ms) ⇒ Promise
-Delay in an async/await function
-
-**Kind**: global function
-**Returns**: Promise
- Promise to resolve after timeout
-
-| Param | Type | Description |
-| --- | --- | --- |
-| ms | integer
| Milliseconds to delay for |
-
diff --git a/lib/delay/index.js b/lib/delay/index.js
deleted file mode 100644
index 4a0d243..0000000
--- a/lib/delay/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-/**
- * Delay in an async/await function
- *
- * @param {integer} ms Milliseconds to delay for
- *
- * @returns {Promise} Promise to resolve after timeout
- **/
-function delay(ms) {
- return new Promise((resolve) => {
- return setTimeout(resolve, ms);
- });
-}
-module.exports.delay = delay;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/delay/index.js.map b/lib/delay/index.js.map
deleted file mode 100644
index 38ed5e5..0000000
--- a/lib/delay/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delay/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;IAMI;AAEJ,SAAS,KAAK,CAAE,EAAW;IAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAa,EAAE,EAAE;QACpC,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC"}
\ No newline at end of file
diff --git a/lib/delay/package.json b/lib/delay/package.json
deleted file mode 100644
index 9a1fe44..0000000
--- a/lib/delay/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "delay",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/devices/Readme.md b/lib/devices/Readme.md
deleted file mode 100644
index e48bcbe..0000000
--- a/lib/devices/Readme.md
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-## Devices
-class representing the device discovery features
-
-**Kind**: global class
-
-* [Devices](#Devices)
- * [.init()](#Devices+init)
- * [.listen()](#Devices+listen)
- * [.listener()](#Devices+listener)
- * [.enumerate()](#Devices+enumerate)
- * [.favor()](#Devices+favor)
- * [.distinguish()](#Devices+distinguish)
- * [.fakeProjector()](#Devices+fakeProjector)
- * [.fakeCamera()](#Devices+fakeCamera)
- * [.fakeLight()](#Devices+fakeLight)
- * [.connectDevice()](#Devices+connectDevice)
- * [.all()](#Devices+all)
- * [.remember()](#Devices+remember)
- * [.ready()](#Devices+ready)
-
-
-
-### devices.init()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.listen()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.listener()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.enumerate()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.favor()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.distinguish()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.fakeProjector()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.fakeCamera()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.fakeLight()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.connectDevice()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.all()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.remember()
-**Kind**: instance method of [Devices
](#Devices)
-
-
-### devices.ready()
-**Kind**: instance method of [Devices
](#Devices)
diff --git a/lib/devices/index.js b/lib/devices/index.js
deleted file mode 100644
index 0564572..0000000
--- a/lib/devices/index.js
+++ /dev/null
@@ -1,468 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const delay_1 = require("delay");
-const Log = require("log");
-/**
- * class representing the device discovery features
- *
- *
- **/
-class Devices {
- /**
- * Constructor assigns arduino, settings, UI browser window and cam objects
- * locally to this class for reference.
- **/
- constructor(arduino, settings, mainWindow, cam) {
- this.connected = {};
- this.arduino = arduino;
- this.settings = settings;
- this.mainWindow = mainWindow;
- this.ui = this.mainWindow.webContents;
- this.cam = cam;
- this.init();
- }
- /**
- * Initialize the log for "devices". Establish an ipc connection to the UI.
- * Start listening on that ipc connection.
- **/
- async init() {
- this.log = await Log({ label: 'devices' });
- this.ipc = require('electron').ipcMain;
- this.listen();
- }
- /**
- * Listen to the "profile" channel for messages from the UI.
- **/
- listen() {
- this.ipc.on('profile', this.listener.bind(this));
- }
- /**
- * The "profile" channel callback. If a profile is changed, set it in the
- * local settings object.
- **/
- listener(event, arg) {
- this.log.info(`Saving profile ${arg.profile}`, 'SETTINGS', false, false);
- this.settings.update('profile', arg.profile);
- this.settings.save();
- }
- /**
- *
- **/
- async enumerate() {
- let devices;
- try {
- devices = await this.arduino.enumerate();
- }
- catch (err) {
- this.log.warn(err, 'SERIAL', false, true);
- await delay_1.delay(1000);
- return this.all([]);
- }
- this.log.info(`Found ${devices.length} USB devices`, 'SERIAL', true, true);
- devices = this.favor(devices);
- return await this.all(devices);
- }
- /**
- *
- **/
- favor(devices) {
- const past = this.settings.state.devices.filter((device) => {
- if (device.arduino) {
- return device;
- }
- }).map((device) => {
- return device.arduino;
- });
- if (past.length === 0) {
- return devices;
- }
- devices.sort((a, b) => {
- if (past.indexOf(a) !== -1 && past.indexOf(b) === -1) {
- return 1;
- }
- else if (past.indexOf(a) === -1 && past.indexOf(b) !== -1) {
- return -1;
- }
- return 0;
- });
- return devices;
- }
- /**
- *
- **/
- async distinguish(device) {
- let connectSuccess;
- let verifySuccess;
- let type;
- try {
- connectSuccess = await this.arduino.connect('connect', device, true);
- }
- catch (err) {
- this.log.error('Error connecting', err);
- return null;
- }
- await delay_1.delay(2000);
- try {
- verifySuccess = await this.arduino.verify();
- }
- catch (err) {
- this.log.error('Error verifying device', err);
- return null;
- }
- this.log.info(`Verified ${device} as mcopy device`, 'SERIAL', true, true);
- await delay_1.delay(1000);
- try {
- type = await this.arduino.distinguish();
- }
- catch (err) {
- this.log.error('Error distinguishing device', err);
- return null;
- }
- this.remember('arduino', device, type);
- this.log.info(`Determined ${device} to be ${type}`, 'SERIAL', true, true);
- return type;
- }
- /**
- *
- **/
- async fakeProjector() {
- this.connected.projector = '/dev/fake';
- try {
- await this.arduino.fakeConnect('projector');
- }
- catch (err) {
- console.error(err);
- this.log.error(`Error connecting to fake PRONECTOR device`, 'SERIAL', true, true);
- return false;
- }
- this.log.info('Connected to fake PROJECTOR device', 'SERIAL', true, true);
- return true;
- }
- /**
- *
- **/
- async fakeCamera() {
- this.connected.camera = '/dev/fake';
- try {
- await this.arduino.fakeConnect('camera');
- }
- catch (err) {
- console.error(err);
- this.log.error(`Error connecting to fake CAMERA device`, 'SERIAL', true, true);
- return false;
- }
- this.log.info('Connected to fake CAMERA device', 'SERIAL', true, true);
- return true;
- }
- /**
- *
- **/
- async fakeLight() {
- this.connected.light = '/dev/fake';
- try {
- await this.arduino.fakeConnect('light');
- }
- catch (err) {
- console.error(err);
- this.log.error(`Error connecting to fake LIGHT device`, 'SERIAL', true, true);
- return false;
- }
- this.log.info('Connected to fake LIGHT device', 'SERIAL', true, true);
- return true;
- }
- /**
- *
- **/
- async connectDevice(device, type) {
- let closeSuccess;
- let connectSuccess;
- try {
- closeSuccess = await this.arduino.close();
- }
- catch (err) {
- this.log.error('Error closing arduino connection', err);
- return false;
- }
- if (type === 'projector') {
- this.connected.projector = device;
- try {
- connectSuccess = await this.arduino.connect('projector', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to projector', err);
- return false;
- }
- this.log.info(`Connected to ${device} as PROJECTOR`, 'SERIAL', true, true);
- }
- else if (type === 'camera') {
- this.connected.camera = device;
- try {
- connectSuccess = await this.arduino.connect('camera', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to camera', err);
- return false;
- }
- this.log.info(`Connected to ${device} as CAMERA`, 'SERIAL', true, true);
- }
- else if (type === 'light') {
- this.connected.light = device;
- try {
- connectSuccess = await this.arduino.connect('light', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to light', err);
- return false;
- }
- this.log.info(`Connected to ${device} as LIGHT`, 'SERIAL', true, true);
- }
- else if (type === 'projector,light') {
- this.connected.projector = device;
- this.connected.light = device;
- this.arduino.aliasSerial('light', device);
- try {
- connectSuccess = await this.arduino.connect('projector', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to projector and light', err);
- return false;
- }
- this.log.info(`Connected to ${device} as PROJECTOR + LIGHT`, 'SERIAL', true, true);
- }
- else if (type === 'projector,camera,light') {
- this.connected.projector = device;
- this.connected.camera = device;
- this.connected.light = device;
- this.arduino.aliasSerial('camera', device);
- this.arduino.aliasSerial('light', device);
- try {
- connectSuccess = await this.arduino.connect('projector', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to projector, camera and light', err);
- return false;
- }
- this.log.info(`Connected to ${device} as PROJECTOR + CAMERA + LIGHT`, 'SERIAL', true, true);
- }
- else if (type === 'projector,camera') {
- this.connected.projector = device;
- this.connected.camera = device;
- this.arduino.aliasSerial('camera', device);
- try {
- connectSuccess = await this.arduino.connect('projector', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to projector and camera', err);
- return false;
- }
- this.log.info(`Connected to ${device} as PROJECTOR + CAMERA`, 'SERIAL', true, true);
- }
- else if (type === 'projector_second') {
- this.connected.projector_second = device;
- try {
- connectSuccess = await this.arduino.connect('projector_second', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to secondary projector', err);
- return false;
- }
- this.log.info(`Connected to ${device} as PROJECTOR_SECOND`, 'SERIAL', true, true);
- }
- else if (type === 'projector,projector_second') {
- this.connected.projector = device;
- this.connected.projector_second = device;
- this.arduino.aliasSerial('projector_second', device);
- try {
- connectSuccess = await this.arduino.connect('projector', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to projector and secondary projector', err);
- return false;
- }
- }
- else if (type === 'camera_second') {
- this.connected.camera_second = device;
- try {
- connectSuccess = await this.arduino.connect('camera_second', device, false);
- }
- catch (err) {
- console.error(err);
- return false;
- }
- }
- else if (type === 'camera,camera_second') {
- this.connected.camera = device;
- this.connected.camera_second = device;
- this.arduino.aliasSerial('camera_second', device);
- try {
- connectSuccess = await this.arduino.connect('camera', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to camera, camera_secondary and projector', err);
- return false;
- }
- }
- else if ('camera,projector,projector_second') {
- this.connected.camera = device;
- this.connected.projector = device;
- this.connected.projector_second = device;
- this.arduino.aliasSerial('projector', device);
- this.arduino.aliasSerial('projector_second', device);
- try {
- connectSuccess = await this.arduino.connect('camera', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to camera, projector and projector_second', err);
- return false;
- }
- }
- else if ('camera,camera_second,projector') {
- this.connected.camera = device;
- this.connected.camera_second = device;
- this.connected.projector = device;
- this.arduino.aliasSerial('camera_second', device);
- this.arduino.aliasSerial('projector', device);
- try {
- connectSuccess = await this.arduino.connect('camera', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to camera, camera_second and projector', err);
- return false;
- }
- }
- else if ('camera,camera_second,projector,projector_second') {
- this.connected.camera = device;
- this.connected.camera_second = device;
- this.connected.projector = device;
- this.connected.projector_second = device;
- this.arduino.aliasSerial('camera_second', device);
- this.arduino.aliasSerial('projector', device);
- this.arduino.aliasSerial('projector_second', device);
- try {
- connectSuccess = await this.arduino.connect('camera', device, false);
- }
- catch (err) {
- this.log.error('Error connecting to camera, camera_second, projector and projector_second', err);
- return false;
- }
- }
- return connectSuccess;
- }
- /**
- *
- **/
- //Cases for 1 or 2 arduinos connected
- async all(devices) {
- let c = {};
- let p = {};
- let l = {};
- let type;
- let d;
- let cs = {};
- let ps = {};
- let checklist = [];
- this.connected = {
- projector: false,
- camera: false,
- light: false,
- projector_second: false
- };
- for (let device of devices) {
- try {
- type = await this.distinguish(device);
- }
- catch (err) {
- this.log.error('Error distinguishing device', err);
- throw err;
- }
- try {
- await this.connectDevice(device, type);
- }
- catch (err) {
- this.log.error('Error connecting to device', err);
- throw err;
- }
- }
- //done checking devices
- if (!this.connected.projector) {
- await this.fakeProjector();
- }
- p.arduino = this.connected.projector;
- if (!this.connected.camera) {
- await this.fakeCamera();
- }
- c.arduino = this.connected.camera;
- if (!this.connected.light) {
- await this.fakeLight();
- }
- l.arduino = this.connected.light;
- if (this.connected.camera_second) {
- cs = { arduino: this.connected.camera_second };
- }
- if (this.connected.projector_second) {
- ps = { arduino: this.connected.projector_second };
- }
- if (this.settings.state.camera && this.settings.state.camera.intval) {
- c.intval = this.settings.state.camera.intval;
- }
- return this.ready(p, c, l, cs, ps);
- }
- /**
- *
- **/
- remember(which, device, type) {
- let deviceEntry;
- const match = this.settings.state.devices.filter((dev) => {
- if (dev[which] && dev[which] === device) {
- return dev;
- }
- });
- if (match.length === 0) {
- deviceEntry = {
- type: type
- };
- deviceEntry[which] = device;
- this.settings.state.devices.push(deviceEntry);
- this.settings.update('devices', this.settings.state.devices);
- this.settings.save();
- }
- }
- ;
- /**
- *
- **/
- ready(projector, camera, light, camera_second, projector_second) {
- let args = {
- camera,
- projector,
- light,
- profile: this.settings.state.profile
- };
- if (projector_second && projector_second.arduino) {
- args.projector_second = projector_second;
- this.settings.update('projector_second', projector_second);
- this.mainWindow.setSize(800, 800);
- }
- if (camera_second && camera_second.arduino) {
- args.camera_second = camera_second;
- this.settings.update('camera_second', camera_second);
- if (projector_second && projector_second.arduino) {
- this.mainWindow.setSize(900, 800);
- }
- else {
- this.mainWindow.setSize(800, 800);
- }
- }
- this.settings.update('camera', camera);
- this.settings.update('projector', projector);
- this.settings.update('light', light);
- this.settings.save();
- this.ui.send('ready', args);
- return true;
- }
- ;
-}
-module.exports = function (arduino, settings, mainWindow, cam) {
- return new Devices(arduino, settings, mainWindow, cam);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/devices/index.js.map b/lib/devices/index.js.map
deleted file mode 100644
index 0705a1d..0000000
--- a/lib/devices/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/devices/package.json b/lib/devices/package.json
deleted file mode 100644
index 53b9f3e..0000000
--- a/lib/devices/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "devices",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/display/Readme.md b/lib/display/Readme.md
deleted file mode 100644
index e69de29..0000000
diff --git a/lib/display/index.js b/lib/display/index.js
deleted file mode 100644
index 0e56e4e..0000000
--- a/lib/display/index.js
+++ /dev/null
@@ -1,208 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * @module display
- * Provides features for displaying a full screen display of images for the digital module.
- **/
-const spawn = require("spawn");
-const path_1 = require("path");
-const delay_1 = require("delay");
-const { BrowserWindow } = require('electron');
-function padded_frame(i) {
- let len = (i + '').length;
- let str = i + '';
- for (let x = 0; x < 5 - len; x++) {
- str = '0' + str;
- }
- return str;
-}
-class WebView {
- constructor(platform, display) {
- this.opened = false;
- this.showing = false;
- const prefs = {
- webPreferences: {
- nodeIntegration: true,
- allowRunningInsecureContent: false
- },
- width: 800,
- height: 600,
- minWidth: 800,
- minHeight: 600 //,
- //icon: path.join(__dirname, '../../assets/icons/icon.png')
- };
- if (!display.primary) {
- prefs.x = display.x + 50;
- prefs.y = display.y + 50;
- }
- this.digitalWindow = new BrowserWindow(prefs);
- this.digitalWindow.loadURL('file://' + __dirname + '../../../display.html');
- if (process.argv.indexOf('-d') !== -1 || process.argv.indexOf('--dev') !== -1) {
- this.digitalWindow.webContents.openDevTools();
- }
- this.digitalWindow.on('closed', () => {
- this.digitalWindow = null;
- this.close();
- });
- //this.digitalWindow.hide();
- this.platform = platform;
- this.display = display;
- }
- async open() {
- this.digitalWindow.show();
- this.showing = true;
- this.opened = true;
- await this.digitalWindow.setFullScreen(true);
- await delay_1.delay(300);
- if (this.platform === 'osx') {
- await delay_1.delay(300); //give macs an extra 300ms to open fullscreen
- }
- }
- async show(src) {
- if (!this.digitalWindow) {
- console.warn(`Cannot show "${src}" because window does not exist`);
- return false;
- }
- try {
- this.digitalWindow.webContents.send('display', { src });
- }
- catch (err) {
- console.error(err);
- }
- this.showing = true;
- await delay_1.delay(200);
- return true;
- }
- async focus() {
- if (!this.digitalWindow) {
- console.warn(`Cannot show focus screen because window does not exist`);
- return false;
- }
- await delay_1.delay(500);
- try {
- this.digitalWindow.webContents.send('focus', { focus: true });
- }
- catch (err) {
- console.error(err);
- }
- }
- async field(ratio) {
- if (!this.digitalWindow) {
- console.warn(`Cannot show field guide because window does not exist`);
- return false;
- }
- await delay_1.delay(500);
- try {
- this.digitalWindow.webContents.send('field', { field: true, ratio });
- }
- catch (err) {
- console.error(err);
- }
- }
- async meter() {
- if (!this.digitalWindow) {
- console.warn(`Cannot show meter screen because window does not exist`);
- return false;
- }
- await delay_1.delay(500);
- try {
- this.digitalWindow.webContents.send('meter', { meter: true });
- }
- catch (err) {
- console.error(err);
- }
- }
- hide() {
- if (this.digitalWindow) {
- this.digitalWindow.hide();
- }
- this.showing = false;
- return true;
- }
- close() {
- this.hide();
- if (this.digitalWindow) {
- this.digitalWindow.close();
- this.digitalWindow = null;
- }
- this.opened = false;
- this.showing = false;
- return true;
- }
-}
-class EOG {
- constructor() {
- }
- open() {
- this.hide();
- }
- async show(src) {
- //timeout 3 eog --fullscreen ${src}
- this.cp = spawn('eog', ['--fullscreen', src]);
- await delay_1.delay(200);
- return true;
- }
- hide() {
- if (this.cp) {
- this.cp.kill();
- this.cp = null;
- }
- }
- close() {
- this.hide();
- }
-}
-class Display {
- constructor(sys) {
- this.platform = sys.platform;
- this.displays = sys.displays;
- this.tmpdir = path_1.join(sys.tmp, 'mcopy_digital');
- this.display = this.displays.find((display) => {
- if (display.primary)
- return true;
- });
- }
- async open() {
- if (this.wv && this.wv.display && this.wv.display.id !== this.display.id) {
- this.wv.close();
- }
- if (!this.wv || !this.wv.opened) {
- this.wv = new WebView(this.platform, this.display);
- await this.wv.open();
- }
- }
- async show(frame) {
- let padded = padded_frame(frame);
- let ext = 'png';
- let tmppath;
- tmppath = path_1.join(this.tmpdir, `export-${padded}.${ext}`);
- await this.wv.show(tmppath);
- }
- async showPath(pathStr) {
- return await this.wv.show(pathStr);
- }
- hide() {
- }
- async close() {
- return await this.wv.close();
- }
- async focus() {
- return await this.wv.focus();
- }
- async field(ratio) {
- return await this.wv.field(ratio);
- }
- async meter() {
- return await this.wv.meter();
- }
- change(id) {
- this.display = this.displays.find((display) => {
- if (display.id == id)
- return true;
- });
- }
-}
-module.exports = function (sys) {
- return new Display(sys);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/display/index.js.map b/lib/display/index.js.map
deleted file mode 100644
index 613de21..0000000
--- a/lib/display/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/display/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/display/package.json b/lib/display/package.json
deleted file mode 100644
index 62e044a..0000000
--- a/lib/display/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "display",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/exec/Readme.md b/lib/exec/Readme.md
deleted file mode 100644
index 7724e22..0000000
--- a/lib/exec/Readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-## exec(cmd, arg, opts) ⇒ Promise.<{stdout: string, stderr: stderr}>
-Promisified child_process.exec
-
-**Kind**: global function
-
-| Param | Type | Description |
-| --- | --- | --- |
-| cmd | | |
-| arg | | |
-| opts | | See child_process.exec node docs |
-| opts.stdout | stream.Writable
| If defined, child process stdout will be piped to it. |
-| opts.stderr | stream.Writable
| If defined, child process stderr will be piped to it. |
-
diff --git a/lib/exec/index.js b/lib/exec/index.js
deleted file mode 100644
index 2238120..0000000
--- a/lib/exec/index.js
+++ /dev/null
@@ -1,44 +0,0 @@
-'use strict';
-const execRaw = require('child_process').exec;
-/**
- * Promisified child_process.exec
- *
- * @param cmd
- * @param arg
- * @param opts See child_process.exec node docs
- * @param {stream.Writable} opts.stdout If defined, child process stdout will be piped to it.
- * @param {stream.Writable} opts.stderr If defined, child process stderr will be piped to it.
- *
- * @returns {Promise<{ stdout: string, stderr: stderr }>}
- */
-async function exec(...args) {
- let cmd = args[0];
- let argz = null;
- let opts = null;
- if (typeof args[1] === 'object' && Array.isArray(args[1])) {
- argz = args[1];
- }
- if (argz === null && typeof args[1] === 'object') {
- opts = args[1];
- }
- else if (typeof args[2] === 'object') {
- opts = args[2];
- }
- if (opts === null) {
- opts = { maxBuffer: 1024 * 1024 };
- }
- return new Promise((resolve, reject) => {
- const child = execRaw(cmd, opts, (err, stdout, stderr) => err ? reject(err) : resolve({
- stdout,
- stderr
- }));
- if (opts.stdout) {
- child.stdout.pipe(opts.stdout);
- }
- if (opts.stderr) {
- child.stderr.pipe(opts.stderr);
- }
- });
-}
-module.exports.exec = exec;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/exec/index.js.map b/lib/exec/index.js.map
deleted file mode 100644
index 1e32b7b..0000000
--- a/lib/exec/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exec/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAA;AAE7C;;;;;;;;;;GAUG;AACH,KAAK,UAAU,IAAI,CAAC,GAAG,IAAe;IACrC,IAAI,GAAG,GAAY,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,IAAI,GAAY,IAAI,CAAA;IACxB,IAAI,IAAI,GAAS,IAAI,CAAA;IAErB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1D,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACjD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;SAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACvC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IACD,IAAI,IAAI,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,EAAE,SAAS,EAAG,IAAI,GAAG,IAAI,EAAE,CAAA;KAClC;IACE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EACjC,CAAC,GAAW,EAAE,MAAe,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7E,MAAM;YACN,MAAM;SACN,CAAC,CAAC,CAAC;QACC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA"}
\ No newline at end of file
diff --git a/lib/exec/package.json b/lib/exec/package.json
deleted file mode 100644
index 65f0c63..0000000
--- a/lib/exec/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "exec",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/exit/Readme.md b/lib/exit/Readme.md
deleted file mode 100644
index 8bed916..0000000
--- a/lib/exit/Readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-## exit(msg, code)
-Exit process with either a 0 code or other
-specified failure code. Print message to console first.
-
-**Kind**: global function
-
-| Param | Type | Default | Description |
-| --- | --- | --- | --- |
-| msg | string
| | Reason for exit |
-| code | integer
| 0
| process exit code, default 0 |
-
diff --git a/lib/exit/index.js b/lib/exit/index.js
deleted file mode 100644
index aef14d4..0000000
--- a/lib/exit/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-/**
- * Exit process with either a 0 code or other
- * specified failure code. Print message to console first.
- *
- * @param {string} msg Reason for exit
- * @param {integer} code process exit code, default 0
- **/
-function exit(msg, code = 0) {
- if (code === 0) {
- console.log(msg);
- process.exit();
- }
- else {
- console.error(msg);
- process.exit(code);
- }
-}
-module.exports.exit = exit;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/exit/index.js.map b/lib/exit/index.js.map
deleted file mode 100644
index 32d707c..0000000
--- a/lib/exit/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exit/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;IAMI;AAEJ,SAAS,IAAI,CAAE,GAAY,EAAE,OAAgB,CAAC;IAC7C,IAAI,IAAI,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC;KACf;SAAM;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnB;AACF,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC"}
\ No newline at end of file
diff --git a/lib/exit/package.json b/lib/exit/package.json
deleted file mode 100644
index 0ab494d..0000000
--- a/lib/exit/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "exit",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/ffmpeg/Readme.md b/lib/ffmpeg/Readme.md
deleted file mode 100644
index e69de29..0000000
diff --git a/lib/ffmpeg/index.js b/lib/ffmpeg/index.js
deleted file mode 100644
index 5053899..0000000
--- a/lib/ffmpeg/index.js
+++ /dev/null
@@ -1,220 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const path_1 = require("path");
-const fs_extra_1 = require("fs-extra");
-const exec_1 = require("exec");
-/** @class FFMPEG **/
-class FFMPEG {
- /**
- * @constructor
- * Creates an ffmpeg class
- *
- * @param {object} sys System object to be used to get temp directory
- **/
- constructor(sys) {
- this.id = 'ffmpeg';
- this.bin = sys.deps.ffmpeg;
- this.TMPDIR = path_1.join(sys.tmp, 'mcopy_digital');
- this.init();
- }
- /**
- * Async method to call async functions from constructor
- **/
- async init() {
- const Log = require('log');
- this.log = await Log({ label: this.id });
- await this.checkDir();
- }
- /**
- * Add padding to a number to 5 places. Return a string.
- *
- * @param {integer} i Integer to pad
- *
- * @returns {string} Padded string
- **/
- padded_frame(i) {
- let len = (i + '').length;
- let str = i + '';
- for (let x = 0; x < 5 - len; x++) {
- str = '0' + str;
- }
- return str;
- }
- /**
- * Render a single frame from a video or image to a png.
- *
- * @param {object} state State object containing file data
- * @param {object} light Object containing color information for frame
- *
- * @returns {string} Path of frame
- **/
- async frame(state, light) {
- const frameNum = state.frame;
- const video = state.path;
- const w = state.info.width;
- const h = state.info.height;
- const padded = this.padded_frame(frameNum);
- let ext = 'tif';
- let rgb = light.color;
- let tmpoutput;
- let cmd;
- let output;
- let cmd2;
- let output2;
- let scale = '';
- if (w && h) {
- scale = `,scale=${w}:${h}`;
- }
- //console.dir(state)
- //if (system.platform !== 'nix') {
- ext = 'png';
- //}
- tmpoutput = path_1.join(this.TMPDIR, `export-${padded}.${ext}`);
- rgb = rgb.map((e) => {
- return parseInt(e);
- });
- //
- cmd = `${this.bin} -y -i "${video}" -vf "select='gte(n\\,${frameNum})'${scale}" -vframes 1 -compression_algo raw -pix_fmt rgb24 "${tmpoutput}"`;
- cmd2 = `convert "${tmpoutput}" -resize ${w}x${h} -size ${w}x${h} xc:"rgb(${rgb[0]},${rgb[1]},${rgb[2]})" +swap -compose Darken -composite "${tmpoutput}"`;
- //ffmpeg -i "${video}" -ss 00:00:07.000 -vframes 1 "export-${time}.jpg"
- //ffmpeg -i "${video}" -compression_algo raw -pix_fmt rgb24 "export-%05d.tiff"
- //-vf "select=gte(n\,${frame})" -compression_algo raw -pix_fmt rgb24 "export-${padded}.png"
- try {
- this.log.info(cmd);
- output = await exec_1.exec(cmd);
- }
- catch (err) {
- this.log.error(err);
- }
- if (output && output.stdout)
- this.log.info(`"${output.stdout}"`);
- if (rgb[0] !== 255 || rgb[1] !== 255 || rgb[2] !== 255) {
- try {
- this.log.info(cmd2);
- output2 = await exec_1.exec(cmd2);
- }
- catch (err) {
- this.log.error(err);
- }
- }
- if (output2 && output2.stdout)
- this.log.info(`"${output2.stdout}"`);
- return tmpoutput;
- }
- /**
- * Render all frames in a video to the temp directory.
- * Not in use.
- *
- * @param {string} video Path to video
- * @param {object} obj Not sure
- *
- * @returns {?}
- **/
- async frames(video, obj) {
- const tmppath = this.TMPDIR;
- let ext = 'tif';
- let tmpoutput;
- //if (system.platform !== 'nix') {
- ext = 'png';
- //}
- tmpoutput = path_1.join(tmppath, `export-%05d.${ext}`);
- try {
- await fs_extra_1.mkdir(tmppath);
- }
- catch (err) {
- this.log.error(err);
- }
- //ffmpeg -i "${video}" -compression_algo raw -pix_fmt rgb24 "${tmpoutput}"
- }
- /**
- * Clears a specific frame from the tmp directory
- *
- * @param {integer} frame Integer of frame to clear
- *
- * @returns {boolean} True if successful, false if not
- **/
- async clear(frame) {
- const padded = this.padded_frame(frame);
- let ext = 'tif';
- let tmppath;
- let tmpoutput;
- let cmd;
- let fileExists;
- //if (system.platform !== 'nix') {
- ext = 'png';
- //}
- tmppath = path_1.join(this.TMPDIR, `export-${padded}.${ext}`);
- try {
- fileExists = await fs_extra_1.exists(tmppath);
- }
- catch (err) {
- this.log.error(err);
- }
- if (!fs_extra_1.exists)
- return false;
- try {
- await fs_extra_1.unlink(tmppath);
- this.log.info(`Cleared frame ${tmppath}`);
- }
- catch (err) {
- this.log.error(err);
- }
- return true;
- }
- /**
- * Delete all frames in temp directory.
- *
- **/
- async clearAll() {
- const tmppath = this.TMPDIR;
- let files;
- try {
- files = await fs_extra_1.readdir(tmppath);
- }
- catch (err) {
- this.log.error(err);
- }
- if (files) {
- files.forEach(async (file, index) => {
- try {
- await fs_extra_1.unlink(path_1.join(tmppath, file));
- }
- catch (err) {
- this.log.error(err);
- }
- });
- }
- }
- /**
- * Checks if mcopy temp directory exists. If it doesn't,
- * create it.
- **/
- async checkDir() {
- let fileExists;
- try {
- fileExists = await fs_extra_1.exists(this.TMPDIR);
- }
- catch (err) {
- this.log.error('Error checking for tmp dir', err);
- }
- if (!fileExists) {
- try {
- await fs_extra_1.mkdir(this.TMPDIR);
- this.log.info(`Created tmpdir ${this.TMPDIR}`);
- }
- catch (err) {
- this.log.error('Error creating tmp dir', err);
- }
- }
- try {
- await this.clearAll();
- }
- catch (err) {
- this.log.error(err);
- }
- }
-}
-module.exports = (sys) => {
- return new FFMPEG(sys);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/ffmpeg/index.js.map b/lib/ffmpeg/index.js.map
deleted file mode 100644
index 04f322b..0000000
--- a/lib/ffmpeg/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ffmpeg/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/ffmpeg/package.json b/lib/ffmpeg/package.json
deleted file mode 100644
index b78c1be..0000000
--- a/lib/ffmpeg/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "ffmpeg",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/ffprobe/Readme.md b/lib/ffprobe/Readme.md
deleted file mode 100644
index e69de29..0000000
diff --git a/lib/ffprobe/index.js b/lib/ffprobe/index.js
deleted file mode 100644
index a2064bf..0000000
--- a/lib/ffprobe/index.js
+++ /dev/null
@@ -1,125 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-/** @module FFPROBE **/
-const fs_extra_1 = require("fs-extra");
-const path_1 = require("path");
-const exec_1 = require("exec");
-//const spawn = require('spawn');
-//const exit = require('exit');
-class FFPROBE {
- constructor(sys) {
- this.system = sys;
- }
- /**
- * Get info on a video in json format. Use for filmout.
- *
- * @param {string} video Path to video
- *
- * @returns {object} Video info in an object
- **/
- async info(video) {
- const cmd = `ffprobe -v quiet -print_format json -show_format -show_streams "${video}"`;
- let fileExists;
- let raw;
- let json;
- let vid; //whether video has stream with video data
- try {
- fileExists = await fs_extra_1.exists(video);
- }
- catch (err) {
- return exit(err, 5);
- }
- if (!fileExists) {
- //return exit(`File ${video} does not exist`, 6);
- console.error(new Error(`File ${video} does not exist`));
- return false;
- }
- try {
- console.log(cmd);
- raw = await exec_1.exec(cmd);
- }
- catch (err) {
- //return exit(err, 7);
- console.error(err);
- return false;
- }
- try {
- json = JSON.parse(raw.stdout);
- }
- catch (err) {
- return raw.stdout;
- }
- if (json && json.streams) {
- vid = json.streams.find((stream) => {
- if (stream.width && stream.height)
- return stream;
- });
- }
- if (vid) {
- json.width = vid.width;
- json.height = vid.height;
- }
- return json;
- }
- /**
- * Count the number of frames in the video using one of two methods.
- * The first uses -select_streams and is very fast. The second uses
- * -count_frames and is VERY slow.
- *
- * @param {string} video Path to video
- *
- * @returns {integer} Number of frames in video
- **/
- async frames(video) {
- const ext = path_1.extname(video.toLowerCase());
- let cmd = `ffprobe -v error -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 "${video}"`;
- let backup_cmd = `ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 "${video}"`;
- let gif_cmd = `identify -format "%n\n" "${video}" | head -1`;
- let fileExists;
- let raw;
- let frames;
- try {
- fileExists = await fs_extra_1.exists(video);
- }
- catch (err) {
- //return exit(err, 5);
- console.error(err);
- return false;
- }
- if (!fileExists) {
- //return exit(`File ${video} does not exist`, 6);
- console.error(new Error(`File ${video} does not exist`));
- return false;
- }
- if (ext === '.mkv') {
- cmd = backup_cmd;
- }
- else if (ext === '.gif') {
- cmd = gif_cmd;
- }
- try {
- console.log(cmd);
- raw = await exec_1.exec(cmd);
- }
- catch (err) {
- console.error(err);
- return false;
- }
- try {
- frames = parseInt(raw.stdout);
- }
- catch (err) {
- return raw.stdout;
- }
- return frames;
- }
-}
-/*
-function map (obj : any) {
- console.dir(obj);
-}
-*/
-module.exports = (sys) => {
- return new FFPROBE(sys);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/ffprobe/index.js.map b/lib/ffprobe/index.js.map
deleted file mode 100644
index 7c38a17..0000000
--- a/lib/ffprobe/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ffprobe/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/ffprobe/package.json b/lib/ffprobe/package.json
deleted file mode 100644
index 586ea4e..0000000
--- a/lib/ffprobe/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "ffprobe",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/filmout/Readme.md b/lib/filmout/Readme.md
deleted file mode 100644
index 967474c..0000000
--- a/lib/filmout/Readme.md
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-## Digital
-**Kind**: global class
-
-* [Digital](#Digital)
- * [.init()](#Digital+init)
- * [.listen()](#Digital+listen)
- * [.set()](#Digital+set)
- * [.move()](#Digital+move)
- * [.start()](#Digital+start)
- * [.end()](#Digital+end)
- * [.connectDigital()](#Digital+connectDigital)
-
-
-
-### digital.init()
-**Kind**: instance method of [Digital
](#Digital)
-
-
-### digital.listen()
-**Kind**: instance method of [Digital
](#Digital)
-
-
-### digital.set()
-**Kind**: instance method of [Digital
](#Digital)
-
-
-### digital.move()
-**Kind**: instance method of [Digital
](#Digital)
-
-
-### digital.start()
-**Kind**: instance method of [Digital
](#Digital)
-
-
-### digital.end()
-**Kind**: instance method of [Digital
](#Digital)
-
-
-### digital.connectDigital()
-Use a file as the "digital" source on "projector"
-
-**Kind**: instance method of [Digital
](#Digital)
diff --git a/lib/filmout/index.js b/lib/filmout/index.js
deleted file mode 100644
index 5c00c96..0000000
--- a/lib/filmout/index.js
+++ /dev/null
@@ -1,339 +0,0 @@
-'use strict';
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const sharp_1 = __importDefault(require("sharp"));
-const animated_gif_detector_1 = __importDefault(require("animated-gif-detector"));
-const path_1 = require("path");
-const fs_extra_1 = require("fs-extra");
-const delay_1 = require("delay");
-/**
- * @module FilmOut
- **/
-class FilmOut {
- /**
- * @constructor
- * Builds FilmOut class with display, ffmpeg, ffprobe, ui and light as internal properties.
- *
- * @param {object} display Display object for showing frames
- * @param {object} ffmpeg FFMPEG wrapper
- * @param {object} ffprobe FFPROBE wrapper for file info
- * @param {object} ui Electron ui object
- * @param {object} light Light device object
- **/
- constructor(display, ffmpeg, ffprobe, ui, light) {
- this.id = 'filmout';
- this.videoExtensions = ['.mpg', '.mpeg', '.mov', '.mkv', '.avi', '.mp4'];
- this.stillExtensions = ['.tif', '.tiff', '.png', '.jpg', '.jpeg', '.bmp'];
- this.gifExtension = '.gif';
- this.state = {
- frame: 0,
- frames: 0,
- still: false,
- path: null,
- fileName: null,
- info: {},
- dir: true,
- enabled: false
- };
- this.display = display;
- this.ffmpeg = ffmpeg;
- this.ffprobe = ffprobe;
- this.ui = ui;
- this.light = light;
- this.init();
- }
- /**
- * Async function for requiring log, ipcMain and bind events.
- **/
- async init() {
- const Log = require('log');
- this.log = await Log({ label: this.id });
- this.ipc = require('electron').ipcMain;
- this.listen();
- }
- /**
- *
- **/
- listen() {
- this.ipc.on(this.id, this.onConnect.bind(this));
- this.ipc.on('focus', this.focus.bind(this));
- this.ipc.on('field', this.field.bind(this));
- this.ipc.on('meter', this.meter.bind(this));
- this.ipc.on('filmout_close', this.close.bind(this));
- this.ipc.on('preview', this.preview.bind(this));
- this.ipc.on('preview_frame', this.previewFrame.bind(this));
- this.ipc.on('display', this.onDisplay.bind(this));
- }
- /**
- * Sets filmout direction.
- *
- * @param {boolean} dir Direction of filmout
- **/
- set(dir) {
- this.state.dir = dir;
- }
- /**
- * Moves filmout a frame at a time.
- **/
- async move() {
- let start = +new Date();
- if (this.state.still) {
- return false;
- }
- if (this.state.dir) {
- this.state.frame++;
- }
- else {
- this.state.frame--;
- }
- if (this.state.frame < 1) {
- this.state.frame = 1;
- }
- return (+new Date()) - start;
- }
- /**
- * Begin the process of exporting single frames from the video for display.
- **/
- async start() {
- try {
- await this.ffmpeg.clearAll();
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- throw err;
- }
- try {
- await this.ffmpeg.frame(this.state, this.light.state);
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- throw err;
- }
- await this.display.show(this.state.frame);
- await delay_1.delay(20);
- }
- /**
- * Ends the filmout process and closes the display.
- **/
- async end() {
- await delay_1.delay(20);
- this.display.hide();
- }
- /**
- * Use a video file as a film out source on "projector"
- *
- * @param {object} evt Original connect event
- * @param {object} arg Arguments from ipc message
- **/
- async onConnect(evt, arg) {
- let frames = 0;
- let isAnimated = false;
- let info;
- let ext;
- ext = path_1.extname(arg.fileName.toLowerCase());
- //console.dir(arg)
- //console.log(ext)
- if (ext === this.gifExtension) {
- try {
- isAnimated = await this.isGifAnimated(arg.path);
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- await this.ui.send(this.id, { valid: false });
- return false;
- }
- this.state.still = !isAnimated;
- }
- else if (this.stillExtensions.indexOf(ext) !== -1) {
- this.state.still = true;
- }
- else if (this.videoExtensions.indexOf(ext) !== -1) {
- this.state.still = false;
- }
- else {
- this.log.error(`File is not of a valid file type`, 'FILMOUT', true, true);
- return false;
- }
- if (this.state.still) {
- try {
- info = await this.stillInfo(arg.path);
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- this.state.enabled = false;
- await this.ui.send(this.id, { valid: false });
- return false;
- }
- frames = 1;
- }
- else {
- try {
- info = await this.ffprobe.info(arg.path);
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- this.state.enabled = false;
- await this.ui.send(this.id, { valid: false });
- return false;
- }
- try {
- frames = await this.ffprobe.frames(arg.path);
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- this.state.enabled = false;
- await this.ui.send(this.id, { valid: false });
- return false;
- }
- }
- //console.dir(info)
- this.state.frame = 0;
- this.state.path = arg.path;
- this.state.fileName = arg.fileName;
- this.state.frames = frames;
- this.state.info = info;
- this.log.info(`Opened ${this.state.fileName}`, 'FILMOUT', true, true);
- this.log.info(`Frames : ${frames}`, 'FILMOUT', true, true);
- this.state.enabled = true;
- return await this.ui.send(this.id, { valid: true, state: JSON.stringify(this.state) });
- }
- /**
- * Return true if gif is animated, false if it is a still
- *
- * @param {string} pathStr Path to gif to check
- *
- * @returns {boolean} Whether or not gif is animated
- **/
- async isGifAnimated(pathStr) {
- let gifBuffer;
- try {
- gifBuffer = await fs_extra_1.readFile(pathStr);
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- return false;
- }
- return animated_gif_detector_1.default(gifBuffer);
- }
- /**
- * Return information on a still image using the sharp module
- *
- * @param {string} pathStr Path to gif to check
- *
- * @returns {object} Info about still from sharp
- **/
- async stillInfo(pathStr) {
- return sharp_1.default(pathStr).metadata();
- }
- /**
- * Preview a frame from the selected video.
- *
- * @param {object} evt Original event
- * @param {object} arg Arguments from message
- **/
- async previewFrame(evt, arg) {
- const state = JSON.parse(JSON.stringify(this.state));
- let path;
- state.frame = arg.frame;
- try {
- path = await this.ffmpeg.frame(state, { color: [255, 255, 255] });
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- ;
- throw err;
- }
- this.ui.send('preview_frame', { path, frame: arg.frame });
- }
- /**
- *
- *
- * @param {object} evt Original event
- * @param {object} arg Arguments from message
- **/
- async preview(evt, arg) {
- const state = JSON.parse(JSON.stringify(this.state));
- let path;
- state.frame = arg.frame;
- this.log.info(`Previewing frame ${state.frame} of ${state.fileName}`);
- try {
- path = await this.ffmpeg.frame(state, { color: [255, 255, 255] });
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- throw err;
- }
- try {
- await this.display.open();
- await this.display.show(arg.frame);
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- }
- }
- /**
- *
- **/
- async focus(evt, arg) {
- this.log.info(`Showing focus screen`);
- try {
- await this.display.open();
- await this.display.focus();
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- }
- }
- /**
- *
- **/
- async field(evt, arg) {
- const ratio = arg.ratio;
- this.log.info(`Showing field guide screen`);
- try {
- await this.display.open();
- await this.display.field(ratio);
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- }
- }
- /**
- *
- **/
- async meter(evt, arg) {
- this.log.info(`Showing meter screen`);
- try {
- await this.display.open();
- await this.display.meter();
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- }
- }
- /**
- *
- **/
- async close(evt, arg) {
- try {
- await this.display.hide();
- await this.display.close();
- }
- catch (err) {
- this.log.error(err, 'FILMOUT', true, true);
- }
- }
- /**
- *
- **/
- onDisplay(evt, arg) {
- this.display.change(arg.display);
- this.log.info(`Changing the display to ${arg.display}`);
- }
-}
-module.exports = (display, ffmpeg, ffprobe, ui, light) => {
- return new FilmOut(display, ffmpeg, ffprobe, ui, light);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/filmout/index.js.map b/lib/filmout/index.js.map
deleted file mode 100644
index 478a2a7..0000000
--- a/lib/filmout/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filmout/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/filmout/package.json b/lib/filmout/package.json
deleted file mode 100644
index afe4e39..0000000
--- a/lib/filmout/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "digital",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md
deleted file mode 100644
index e69de29..0000000
diff --git a/lib/intval/index.js b/lib/intval/index.js
deleted file mode 100644
index 0ecb0fd..0000000
--- a/lib/intval/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-'use strict';
-class Intval {
- constructor(url) {
- this._baseUrl = `http://${url}`;
- this.req = require('request');
- }
- async move() {
- return new Promise((resolve, reject) => {
- const timeStart = +new Date();
- const url = `${this._baseUrl}/frame`;
- //console.log(url)
- return this.req(url, (err, res, body) => {
- let ms = (+new Date()) - timeStart;
- if (err) {
- return reject(err);
- }
- return resolve(ms);
- });
- });
- }
- async setDir(dir) {
- return new Promise((resolve, reject) => {
- const timeStart = +new Date();
- const url = `${this._baseUrl}/dir?dir=${dir}`;
- //console.log(url)
- return this.req(url, (err, res, body) => {
- let ms = (+new Date()) - timeStart;
- if (err) {
- return reject(err);
- }
- return resolve(ms);
- });
- });
- }
- async setExposure(exposure, cb) {
- return new Promise((resolve, reject) => {
- const timeStart = +new Date();
- const url = `${this._baseUrl}/exposure?exposure=${exposure}`;
- //console.log(url)
- return this.req(url, (err, res, body) => {
- let ms = (+new Date()) - timeStart;
- if (err) {
- return reject(err);
- }
- return resolve(ms);
- });
- });
- }
- connect(cb) {
- const timeStart = +new Date();
- const url = `${this._baseUrl}/status`;
- const opts = {
- method: 'GET',
- uri: url,
- timeout: 5000
- };
- this.req(opts, (err, res, body) => {
- let ms = (+new Date()) - timeStart;
- if (err) {
- //console.error(err)
- return cb(err, ms);
- }
- cb(null, ms, body);
- });
- }
-}
-module.exports.Intval = Intval;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/intval/index.js.map b/lib/intval/index.js.map
deleted file mode 100644
index b951f19..0000000
--- a/lib/intval/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intval/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/intval/package.json b/lib/intval/package.json
deleted file mode 100644
index d888b72..0000000
--- a/lib/intval/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "intval",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/light/Readme.md b/lib/light/Readme.md
deleted file mode 100644
index fbc28b4..0000000
--- a/lib/light/Readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-## Light
-**Kind**: global class
-
-* [Light](#Light)
- * [.init()](#Light+init)
- * [.listen()](#Light+listen)
- * [.listener()](#Light+listener)
- * [.set()](#Light+set)
- * [.end()](#Light+end)
-
-
-
-### light.init()
-**Kind**: instance method of [Light
](#Light)
-
-
-### light.listen()
-**Kind**: instance method of [Light
](#Light)
-
-
-### light.listener()
-**Kind**: instance method of [Light
](#Light)
-
-
-### light.set()
-**Kind**: instance method of [Light
](#Light)
-
-
-### light.end()
-**Kind**: instance method of [Light
](#Light)
diff --git a/lib/light/index.js b/lib/light/index.js
deleted file mode 100644
index b310adf..0000000
--- a/lib/light/index.js
+++ /dev/null
@@ -1,87 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const delay_1 = require("delay");
-const Log = require("log");
-class Light {
- /**
- *
- **/
- constructor(arduino, cfg, ui) {
- this.state = { color: [0, 0, 0] };
- this.enabled = true;
- this.id = 'light';
- this.arduino = arduino;
- this.cfg = cfg;
- this.ui = ui;
- this.init();
- }
- /**
- *
- **/
- async init() {
- this.log = await Log({ label: this.id });
- this.ipc = require('electron').ipcMain;
- this.listen();
- }
- /**
- *
- **/
- listen() {
- this.ipc.on(this.id, this.listener.bind(this));
- }
- /**
- *
- **/
- async listener(event, arg) {
- if (typeof arg.rgb !== 'undefined') {
- try {
- await this.set(arg.rgb, arg.id, true);
- }
- catch (err) {
- this.log.error('Error setting light', err);
- }
- }
- else if (typeof arg.enable !== 'undefined') {
- this.enabled = true;
- }
- else if (typeof arg.disable !== 'undefined') {
- this.enabled = false;
- }
- event.returnValue = true;
- }
- /**
- *
- **/
- async set(rgb, id, on) {
- const str = rgb.join(',');
- let ms;
- this.state.color = rgb;
- try {
- ms = this.arduino.send(this.id, this.cfg.arduino.cmd.light);
- }
- catch (err) {
- this.log.error('Error sending light command', err);
- }
- await delay_1.delay(1);
- try {
- this.arduino.string(this.id, str);
- }
- catch (err) {
- this.log.error('Error sending light string', err);
- }
- await delay_1.delay(1);
- await ms;
- return await this.end(rgb, id, ms);
- }
- /**
- *
- **/
- async end(rgb, id, ms) {
- this.log.info(`Light set to ${rgb.join(',')}`, 'LIGHT', true, true);
- return await this.ui.send(this.id, { rgb: rgb, id: id, ms: ms });
- }
-}
-module.exports = function (arduino, cfg, ui) {
- return new Light(arduino, cfg, ui);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/light/index.js.map b/lib/light/index.js.map
deleted file mode 100644
index afe1a4e..0000000
--- a/lib/light/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/light/package.json b/lib/light/package.json
deleted file mode 100644
index 0d59b65..0000000
--- a/lib/light/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "light",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/log/Readme.md b/lib/log/Readme.md
deleted file mode 100644
index 4c3bea3..0000000
--- a/lib/log/Readme.md
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-## logFile() ⇒ string
-Determine the location of the log file based on the operating system
-and return as an absolute string from os.homedir()
-
-**Kind**: global function
-**Returns**: string
- Path to log file
diff --git a/lib/log/index.js b/lib/log/index.js
deleted file mode 100644
index 25a6921..0000000
--- a/lib/log/index.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const winston_1 = require("winston");
-const path_1 = require("path");
-const fs_extra_1 = require("fs-extra");
-const os_1 = require("os");
-const logTime = 'MM/DD/YY-HH:mm:ss';
-let transport;
-/**
- * Determine the location of the log file based on the operating system
- * and return as an absolute string from os.homedir()
- *
- * @returns {string} Path to log file
- **/
-async function logFile() {
- const homeDir = os_1.homedir();
- const linuxDir = `/.config/mcopy/`;
- const macDir = `/Library/Logs/mcopy/`;
- const winDir = `/AppData/Roaming/mcopy/`;
- let logPath = path_1.join(homeDir, linuxDir);
- let dirExists;
- if (process.platform === 'darwin') {
- logPath = path_1.join(homeDir, macDir);
- }
- else if (process.platform === 'win32') {
- logPath = path_1.join(homeDir, winDir);
- }
- dirExists = await fs_extra_1.exists(logPath);
- if (!dirExists) {
- await fs_extra_1.mkdir(logPath);
- }
- return path_1.join(logPath, 'mcopy.log');
-}
-/**
- * Create and return the logger transport based on settings determined in
- * arguments object
- *
- * @param {object} arg Arguments from process
- *
- * @returns {object} Logger transport
- **/
-module.exports = async function (arg) {
- let consoleFormat = {
- colorize: true
- };
- let fileFormat = {
- filename: await logFile(),
- json: true
- };
- if (arg && arg.quiet) {
- transport = {
- info: function () { return false; },
- warn: function () { return false; },
- error: function () { return false; }
- };
- }
- else {
- if (arg && arg.label) {
- consoleFormat.label = arg.label;
- fileFormat.label = arg.label;
- }
- transport = new (winston_1.Logger)({
- transports: [
- new (winston_1.transports.Console)(consoleFormat),
- new (winston_1.transports.File)(fileFormat)
- ]
- });
- }
- return transport;
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/log/index.js.map b/lib/log/index.js.map
deleted file mode 100644
index 3ce8ede..0000000
--- a/lib/log/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,qCAA6C;AAC7C,+BAA4B;AAC5B,uCAAyC;AACzC,2BAA6B;AAE7B,MAAM,OAAO,GAAG,mBAAmB,CAAA;AACnC,IAAI,SAAe,CAAA;AAEnB;;;;;IAKI;AACJ,KAAK,UAAU,OAAO;IACrB,MAAM,OAAO,GAAY,YAAO,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAY,iBAAiB,CAAC;IAC5C,MAAM,MAAM,GAAY,sBAAsB,CAAC;IAC/C,MAAM,MAAM,GAAY,yBAAyB,CAAC;IAClD,IAAI,OAAO,GAAY,WAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,SAAmB,CAAC;IAExB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAClC,OAAO,GAAG,WAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAChC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QACxC,OAAO,GAAG,WAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAChC;IACD,SAAS,GAAG,MAAM,iBAAM,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE;QACf,MAAM,gBAAK,CAAC,OAAO,CAAC,CAAC;KACrB;IACD,OAAO,WAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AACD;;;;;;;IAOI;AACJ,MAAM,CAAC,OAAO,GAAG,KAAK,WAAW,GAAS;IACzC,IAAI,aAAa,GAAS;QACzB,QAAQ,EAAG,IAAI;KACf,CAAA;IACD,IAAI,UAAU,GAAS;QACtB,QAAQ,EAAG,MAAM,OAAO,EAAE;QAC1B,IAAI,EAAG,IAAI;KACX,CAAA;IACD,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;QACrB,SAAS,GAAG;YACX,IAAI,EAAG,cAAc,OAAO,KAAK,CAAA,CAAC,CAAC;YACnC,IAAI,EAAG,cAAc,OAAO,KAAK,CAAA,CAAC,CAAC;YACnC,KAAK,EAAG,cAAc,OAAO,KAAK,CAAA,CAAC,CAAC;SACpC,CAAA;KACD;SAAM;QACN,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YACrB,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YAChC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;SAC7B;QACD,SAAS,GAAG,IAAI,CAAC,gBAAM,CAAC,CAAC;YACxB,UAAU,EAAE;gBACX,IAAI,CAAC,oBAAU,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;gBACvC,IAAI,CAAC,oBAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;aACjC;SACD,CAAC,CAAA;KACF;IACD,OAAO,SAAS,CAAA;AACjB,CAAC,CAAA"}
\ No newline at end of file
diff --git a/lib/log/package.json b/lib/log/package.json
deleted file mode 100644
index 7d7202a..0000000
--- a/lib/log/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "log",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/mscript/Readme.md b/lib/mscript/Readme.md
deleted file mode 100644
index 3112f09..0000000
--- a/lib/mscript/Readme.md
+++ /dev/null
@@ -1,186 +0,0 @@
-
-
-## lib/mscript
-
-* [lib/mscript](#module_lib/mscript)
- * [~Mscript](#module_lib/mscript..Mscript)
- * [.clear()](#module_lib/mscript..Mscript+clear)
- * [.interpret()](#module_lib/mscript..Mscript+interpret)
- * [.basic_cmd()](#module_lib/mscript..Mscript+basic_cmd)
- * [.new_loop()](#module_lib/mscript..Mscript+new_loop)
- * [.end_loop()](#module_lib/mscript..Mscript+end_loop)
- * [.move_cam()](#module_lib/mscript..Mscript+move_cam)
- * [.move_proj()](#module_lib/mscript..Mscript+move_proj)
- * [.set_state()](#module_lib/mscript..Mscript+set_state)
- * [.last_loop()](#module_lib/mscript..Mscript+last_loop)
- * [.parent_loop()](#module_lib/mscript..Mscript+parent_loop)
- * [.loop_count()](#module_lib/mscript..Mscript+loop_count)
- * [.fade()](#module_lib/mscript..Mscript+fade)
- * [.fade_count()](#module_lib/mscript..Mscript+fade_count)
- * [.fade_start()](#module_lib/mscript..Mscript+fade_start)
- * [.fade_end()](#module_lib/mscript..Mscript+fade_end)
- * [.update()](#module_lib/mscript..Mscript+update)
- * [.str_to_arr()](#module_lib/mscript..Mscript+str_to_arr)
- * [.light_to_arr()](#module_lib/mscript..Mscript+light_to_arr)
- * [.light_state()](#module_lib/mscript..Mscript+light_state)
- * [.fail()](#module_lib/mscript..Mscript+fail)
- * [~startsWith()](#module_lib/mscript..startsWith)
-
-
-
-### lib/mscript~Mscript
-class Mscript
-
-**Kind**: inner class of [lib/mscript
](#module_lib/mscript)
-
-* [~Mscript](#module_lib/mscript..Mscript)
- * [.clear()](#module_lib/mscript..Mscript+clear)
- * [.interpret()](#module_lib/mscript..Mscript+interpret)
- * [.basic_cmd()](#module_lib/mscript..Mscript+basic_cmd)
- * [.new_loop()](#module_lib/mscript..Mscript+new_loop)
- * [.end_loop()](#module_lib/mscript..Mscript+end_loop)
- * [.move_cam()](#module_lib/mscript..Mscript+move_cam)
- * [.move_proj()](#module_lib/mscript..Mscript+move_proj)
- * [.set_state()](#module_lib/mscript..Mscript+set_state)
- * [.last_loop()](#module_lib/mscript..Mscript+last_loop)
- * [.parent_loop()](#module_lib/mscript..Mscript+parent_loop)
- * [.loop_count()](#module_lib/mscript..Mscript+loop_count)
- * [.fade()](#module_lib/mscript..Mscript+fade)
- * [.fade_count()](#module_lib/mscript..Mscript+fade_count)
- * [.fade_start()](#module_lib/mscript..Mscript+fade_start)
- * [.fade_end()](#module_lib/mscript..Mscript+fade_end)
- * [.update()](#module_lib/mscript..Mscript+update)
- * [.str_to_arr()](#module_lib/mscript..Mscript+str_to_arr)
- * [.light_to_arr()](#module_lib/mscript..Mscript+light_to_arr)
- * [.light_state()](#module_lib/mscript..Mscript+light_state)
- * [.fail()](#module_lib/mscript..Mscript+fail)
-
-
-
-#### mscript.clear()
-Clear the state of the script
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.interpret()
-Main function, accepts multi-line string, parses into lines
-and interprets the instructions from the text. Returns an array
-of steps to be fed into the mcopy.
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.basic\_cmd()
-Apply a basic two character command
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.new\_loop()
-Start a new loop
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.end\_loop()
-Close the most recent loop
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.move\_cam()
-Move camera to explicitly-defined frame
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.move\_proj()
-Move projector to explicitly-defined frame
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.set\_state()
-Set the state of either the cam or projector
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.last\_loop()
-Return the last loop
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.parent\_loop()
-Return the second-last loop
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.loop\_count()
-Extract the loop count integer from a LOOP cmd
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.fade()
-Execute a fade of frame length, from color to another color
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.fade\_count()
-Extract the fade length integer from a FADE cmd
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.fade\_start()
-Extract the start color from a string
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.fade\_end()
-Extract the end color from a string
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.update()
-Increase the state of a specific object, such as the camera/projector,
-by the value defined in val
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.str\_to\_arr()
-Split string on command, extract any integers from string
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.light\_to\_arr()
-Split a string on a command to extract data for light array
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.light\_state()
-Split a string to extract an rgb color value
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-#### mscript.fail()
-Throw an error with specific message
-
-**Kind**: instance method of [Mscript
](#module_lib/mscript..Mscript)
-
-
-### lib/mscript~startsWith()
-startswith function from lodash, do not want the entire lib for this
-
-**Kind**: inner method of [lib/mscript
](#module_lib/mscript)
diff --git a/lib/mscript/TODO.md b/lib/mscript/TODO.md
deleted file mode 100644
index b0f824f..0000000
--- a/lib/mscript/TODO.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# TODO - mscript
-
-* Add variables and simple evaluation
-* Add "Light" feature
-
-Bash-like variables?
-Similar to LESS/SASS?
-Makes a tokenization easier
-
-@ is better than $
-
-RangeError: Invalid array length
- at Mscript.str_to_arr (./mcopy/app/lib/mscript/index.js:474:9)
diff --git a/lib/mscript/index.js b/lib/mscript/index.js
deleted file mode 100644
index daf4dbd..0000000
--- a/lib/mscript/index.js
+++ /dev/null
@@ -1,691 +0,0 @@
-'use strict';
-const BLACK = '0,0,0';
-const WHITE = '255,255,255';
-const CMD = [
- 'CF',
- 'PF',
- 'BF',
- 'CB',
- 'PB',
- 'BB'
-];
-const ALTS = {
- 'CF': ['CAMERA FORWARD', 'CAM FORWARD'],
- 'PF': ['PROJECTOR FORWARD', 'PROJ FORWARD'],
- 'BF': ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'],
- 'CB': ['CAMERA BACKWARD', 'CAM BACKWARD', 'CAMERA BACK', 'CAM BACK'],
- 'PB': ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'],
- 'BB': ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'],
- 'L ': ['LIGHT', 'COLOR', 'LAMP'],
- 'F ': ['FADE']
-};
-const PAUSE = 'PAUSE';
-const ALERT = 'ALERT';
-/** helper functions */
-/** startswith function from lodash, do not want the entire lib for this
- * @param str {string} Text to evaluate
- * @param target {string} Text to compare string against
- * @param position {integer} Position in the string to make comparison at
- *
- * @returns {boolean} True for match, false for no match
- **/
-function startsWith(str, target, position) {
- const { length } = str;
- position = position == null ? 0 : position;
- if (position < 0) {
- position = 0;
- }
- else if (position > length) {
- position = length;
- }
- target = `${target}`;
- return str.slice(position, position + target.length) == target;
-}
-/** class Mscript */
-class Mscript {
- /**
- * @constructor
- * Create new Mscript interpreter
- **/
- constructor() {
- this.output = {};
- }
- /**
- * Clear the state of the script
- */
- clear() {
- this.lines = [];
- this.cam = 0;
- this.proj = 0;
- this.color = '';
- this.loops = [];
- this.rec = -1;
- this.two = '';
- this.arr = [];
- this.meta = [];
- this.target = 0; //move to target using CAM # or PROJ #
- this.dist = 0;
- this.variables = {};
- this.output = {};
- }
- /**
- * Main function, accepts multi-line string, parses into lines
- * and interprets the instructions from the text. Returns an array
- * of steps to be fed into the mcopy sequence.
- *
- * @param {string} text Mscript text to interpret
- * @param {function} callback Function to call when string is interpreted
- *
- * @returns {object} if callback is not provided
- */
- interpret(text, callback) {
- this.clear();
- if (typeof text === 'undefined') {
- return this.fail('No input');
- }
- //split string into lines, each containing a command
- this.lines = text.split('\n');
- this.lines = this.lines.map(line => {
- line = line.replace(/\t+/g, ''); //strip tabs
- line = line.trim(); //remove excess whitespace before and after command
- line = line.toUpperCase();
- return line;
- });
- for (let line of this.lines) {
- this.two = line.substring(0, 2);
- if (CMD.indexOf(this.two) !== -1) {
- this.basic_cmd(line);
- }
- else if (startsWith(line, PAUSE)) {
- this.pause(line);
- }
- else if (startsWith(line, ALERT)) {
- this.alert(line);
- }
- else if (startsWith(line, '@') || line.indexOf('@') !== -1) {
- this.variable(line);
- }
- else if (startsWith(line, 'LOOP')) {
- this.new_loop(line);
- }
- else if (startsWith(line, 'L ')) {
- this.light_state(line);
- }
- else if (startsWith(line, 'F ')) {
- this.new_loop(line, true);
- }
- else if (startsWith(line, 'END')) {
- this.end_loop(line);
- }
- else if (startsWith(line, 'CAM')) { //directly go to that frame (black?)
- this.move_cam(line);
- }
- else if (startsWith(line, 'PROJ')) { //directly go to that frame
- this.move_proj(line);
- }
- else if (startsWith(line, 'SET')) { //set that state
- this.set_state(line);
- }
- else if (startsWith(line, '#') || startsWith(line, '//')) {
- //comments
- //ignore while parsing
- }
- else if (startsWith(line, 'ALERT')) {
- }
- else if (startsWith(line, 'PAUSE')) {
- this.pause(line);
- }
- }
- this.output.success = true;
- this.output.arr = this.arr; //all instructions
- this.output.meta = this.meta; //all metadata for instructions
- this.output.cam = this.cam;
- this.output.proj = this.proj;
- if (typeof callback !== 'undefined') {
- //should only be invoked by running mscript.tests()
- callback(this.output);
- }
- else {
- return this.output;
- }
- }
- /**
- * Interprets variables for complex sequence behavior.
- * TODO: Fully implement, add test coverage
- *
- * @param {string} line Line containing a variable assignment
- *
- **/
- variable(line) {
- let parts = line.split('=');
- let key = parts[0];
- let value = parts[1];
- let update = false;
- if (value && value.indexOf('#') !== -1) {
- value = value.split('#')[0];
- }
- if (value && value.indexOf('//') !== -1) {
- value = value.split('//')[0];
- }
- if (value && value.indexOf('+') !== -1) {
- if (value)
- update = true;
- }
- if (line.indexOf('-') !== -1) {
- update = true;
- }
- if (line.indexOf(',') === -1) { //if not color string
- try {
- value = parseInt(value);
- }
- catch (err) {
- //supress parsing error
- }
- }
- //console.dir(parts)
- if (!this.variables[key] || update) {
- this.variables[key] = value;
- }
- //console.dir(this.variables)
- }
- /**
- * Replace variable with value at time of interpretation
- * TODO: Implement this please
- *
- * @param {string} line Line containing variable to be replaced with value
- *
- * @returns {string} New string to be interpreted
- **/
- variable_replace(line) {
- return line;
- }
- /**
- * Interpret a basic two character command
- *
- * @param {string} line Line of script to interpret
- */
- basic_cmd(line) {
- if (this.rec !== -1) {
- //hold generated arr in state loop array
- this.loops[this.rec].arr
- .push.apply(this.loops[this.rec].arr, this.str_to_arr(line, this.two));
- this.loops[this.rec].meta
- .push.apply(this.loops[this.rec].meta, this.light_to_arr(line, this.two));
- }
- else {
- this.arr.push.apply(this.arr, this.str_to_arr(line, this.two));
- this.meta.push.apply(this.meta, this.light_to_arr(line, this.two));
- }
- }
- /**
- * Start a new loop
- *
- * @param {string} line Line to evaluate as either loop or fade
- * @param {boolean} fade Flag as boolean if true
- */
- new_loop(line, fade) {
- this.rec++;
- this.loops[this.rec] = {
- arr: [],
- meta: [],
- cam: 0,
- proj: 0,
- cmd: line + ''
- };
- if (fade) {
- this.fade(line);
- }
- }
- /**
- * Close the most recent loop
- *
- * @param {string} line Line to interpret
- */
- end_loop(line) {
- let meta_arr;
- let start;
- let end;
- let len;
- for (let x = 0; x < this.loop_count(this.loops[this.rec].cmd); x++) {
- meta_arr = this.loops[this.rec].meta;
- if (this.loops[this.rec].fade) {
- start = this.loops[this.rec].start;
- end = this.loops[this.rec].end;
- len = this.loops[this.rec].fade_len;
- meta_arr = meta_arr.map(l => {
- return this.fade_rgb(start, end, len, x);
- });
- }
- if (this.rec === 0) {
- this.arr.push.apply(this.arr, this.loops[this.rec].arr);
- this.meta.push.apply(this.meta, meta_arr);
- }
- else if (this.rec >= 1) {
- this.loops[this.rec - 1].arr
- .push.apply(this.loops[this.rec - 1].arr, this.loops[this.rec].arr);
- this.loops[this.rec - 1].meta
- .push.apply(this.loops[this.rec - 1].meta, meta_arr);
- }
- }
- this.update('END', this.loop_count(this.loops[this.rec].cmd));
- delete this.loops[this.rec];
- this.rec--;
- }
- /**
- * Move camera to explicitly-defined frame
- *
- * @param {string} line Line to interpret with camera move statement
- */
- move_cam(line) {
- this.target = parseInt(line.split('CAM ')[1]);
- if (this.rec !== -1) {
- if (this.target > this.cam) {
- this.dist = this.target - this.cam;
- for (let x = 0; x < this.dist; x++) {
- this.loops[this.rec].arr.push('BF');
- this.loops[this.rec].meta.push(BLACK);
- this.update('BF');
- }
- }
- else {
- this.dist = this.cam - this.target;
- for (let x = 0; x < this.dist; x++) {
- this.loops[this.rec].arr.push('BB');
- this.loops[this.rec].meta.push(BLACK);
- this.update('BB');
- }
- }
- }
- else {
- if (this.target > this.cam) {
- this.dist = this.target - this.cam;
- for (let x = 0; x < this.dist; x++) {
- this.arr.push('BF');
- this.meta.push(BLACK);
- this.update('BF');
- }
- }
- else {
- this.dist = this.cam - this.target;
- for (let x = 0; x < this.dist; x++) {
- this.arr.push('BB');
- this.meta.push(BLACK);
- this.update('BB');
- }
- }
- }
- }
- /**
- * Move projector to explicitly-defined frame
- *
- * @param {string} line Line containing `move` statement to interpret
- */
- move_proj(line) {
- this.target = parseInt(line.split('PROJ ')[1]);
- if (this.rec !== -1) {
- if (this.target > this.proj) {
- this.dist = this.target - this.proj;
- for (let x = 0; x < this.dist; x++) {
- this.loops[this.rec].arr.push('PF');
- this.loops[this.rec].meta.push('');
- this.update('PF');
- }
- }
- else {
- this.dist = this.proj - this.target;
- for (let x = 0; x < this.dist; x++) {
- this.loops[this.rec].arr.push('PB');
- this.loops[this.rec].meta.push('');
- this.update('PB');
- }
- }
- }
- else {
- if (this.target > this.proj) {
- this.dist = this.target - this.proj;
- for (let x = 0; x < this.dist; x++) {
- this.arr.push('PF');
- this.meta.push('');
- this.update('PF');
- }
- }
- else {
- this.dist = this.proj - this.target;
- for (let x = 0; x < this.dist; x++) {
- this.arr.push('PB');
- this.meta.push('');
- this.update('PB');
- }
- }
- }
- }
- /**
- * Set the state of either the cam or projector
- *
- * @param line {string} String containing set statement
- */
- set_state(line) {
- if (startsWith(line, 'SET CAM')) {
- this.cam = parseInt(line.split('SET CAM')[1]);
- }
- else if (startsWith(line, 'SET PROJ')) {
- this.proj = parseInt(line.split('SET PROJ')[1]);
- }
- }
- /**
- * Return the last loop
- *
- * @returns {object}
- */
- last_loop() {
- return this.loops[this.loops.length - 1];
- }
- /**
- * Return the second-last loop
- *
- * @returns {object} Loop array
- */
- parent_loop() {
- return this.loops[this.loops.length - 2];
- }
- /**
- * Extract the loop count integer from a LOOP cmd
- *
- * @returns {integer} Loop count in string parsed into integer
- */
- loop_count(str) {
- return parseInt(str.split(' ')[1]);
- }
- /**
- * Execute a fade of frame length, from color to another color
- *
- * @param {string} line Line containing a fade initiator
- */
- fade(line) {
- let len = this.fade_count(line);
- let start = this.fade_start(line);
- let end = this.fade_end(line);
- this.loops[this.rec].start = start;
- this.loops[this.rec].end = end;
- this.loops[this.rec].fade = true;
- this.loops[this.rec].fade_count = 0;
- this.loops[this.rec].fade_len = len;
- }
- /**
- * Extract the fade length integer from a FADE cmd
- *
- * @param {string} str Line containing the length of fade in frames
- */
- fade_count(str) {
- return parseInt(str.split(' ')[1]);
- }
- /**
- * Extract the start color from a string
- *
- * @param {string} str Line containing the start color value in a fade initiator
- *
- * @returns {array} Array containing RGB color values
- */
- fade_start(str) {
- let color = str.split(' ')[2];
- return this.rgb(color.trim());
- }
- /**
- * Extract the end color from a string
- *
- * @param {string} str Line containing the end color value in a fade initiator
- *
- * @returns {array} Array containing RGB color values
- */
- fade_end(str) {
- let color = str.split(' ')[3];
- return this.rgb(color.trim());
- }
- /**
- * Determine the state of a fade at a particular frame in the sequence, x
- *
- * @param {array} start Color the fade starts at
- * @param {array} end Color the fade finishes at
- * @param {integer} len Total length of the fade in frames
- * @param {integer} x Position of the fade to get color value of
- *
- * @returns {array} Array containing RGB color values
- */
- fade_rgb(start, end, len, x) {
- let cur = [];
- let diff;
- for (let i = 0; i < 3; i++) {
- if (x === len - 1) {
- cur[i] = end[i];
- }
- else if (start[i] >= end[i]) {
- diff = start[i] - end[i];
- cur[i] = start[i] - Math.round((diff / (len - 1)) * x);
- }
- else {
- diff = end[i] - start[i];
- cur[i] = start[i] + Math.round((diff / (len - 1)) * x);
- }
- }
- return this.rgb_str(cur);
- }
- /**
- * Parse string into array of RGB color values. 0-255 octet.
- *
- * @param {string} str String containing only color values as `#,#,#`
- **/
- rgb(str) {
- let rgb = str.split(',');
- return rgb.map((char) => {
- return parseInt(char);
- });
- }
- /**
- * Cast RGB color values as string
- *
- * @param {array} arr Array to join into string
- *
- * @returns {string} String of RGB values
- **/
- rgb_str(arr) {
- return arr.join(',');
- }
- /**
- * Increase the state of a specific object, such as the camera/projector,
- * by the value defined in val.
- *
- * @param {string} cmd String representing command to interpret and update state
- */
- update(cmd, val = 1) {
- if (cmd === 'END') {
- //I don't understand this loop
- for (let i = 0; i < val; i++) {
- if (this.rec === 0) {
- this.cam += this.loops[this.rec].cam;
- this.proj += this.loops[this.rec].proj;
- }
- else if (this.rec >= 1) {
- this.loops[this.rec - 1].cam += this.loops[this.rec].cam;
- this.loops[this.rec - 1].proj += this.loops[this.rec].proj;
- }
- }
- }
- else if (cmd === 'CF') {
- if (this.rec === -1) {
- this.cam += val;
- }
- else {
- this.loops[this.rec].cam += val;
- }
- }
- else if (cmd === 'CB') {
- if (this.rec === -1) {
- this.cam -= val;
- }
- else {
- this.loops[this.rec].cam--;
- }
- }
- else if (cmd === 'PF') {
- if (this.rec === -1) {
- this.proj += val;
- }
- else {
- this.loops[this.rec].proj += val;
- }
- }
- else if (cmd === 'PB') {
- if (this.rec === -1) {
- this.proj -= val;
- }
- else {
- this.loops[this.rec].proj--;
- }
- }
- else if (cmd === 'BF') {
- if (this.rec === -1) {
- this.cam += val;
- }
- else {
- this.loops[this.rec].cam += val;
- }
- }
- else if (cmd === 'BB') {
- if (this.rec === -1) {
- this.cam -= val;
- }
- else {
- this.loops[this.rec].cam -= val;
- }
- }
- else if (cmd === 'L ') {
- }
- }
- /**
- * Split string on command, turn into array of commands
- * as long as count variable. Default 1.
- *
- * @param {string} str String to split
- * @param {string} cmd String representing command to split at
- *
- * @returns {array} Array containing commands
- */
- str_to_arr(str, cmd) {
- const cnt = str.split(cmd);
- let c = parseInt(cnt[1]);
- let arr = [];
- if (cnt[1] === '') {
- c = 1;
- }
- else {
- c = parseInt(cnt[1]);
- }
- arr = new Array(c).fill(cmd);
- this.update(cmd, c);
- return arr;
- }
- /**
- * Split a string on a command to extract data for light array
- *
- * @param {string} str String containing light command
- * @param {string} cmd String representing command
- *
- * @returns {array} An RGB array containing the color values
- */
- light_to_arr(str, cmd) {
- const cnt = str.split(cmd);
- let c = parseInt(cnt[1]);
- let arr = [];
- if (cnt[1] === '') {
- c = 1;
- }
- else {
- c = parseInt(cnt[1]);
- }
- for (let i = 0; i < c; i++) {
- if (cmd === 'CF'
- || cmd === 'CB') {
- arr.push(this.color);
- }
- else if (cmd === 'BF'
- || cmd === 'BB') {
- arr.push(BLACK);
- }
- else {
- arr.push('');
- }
- }
- return arr;
- }
- /**
- * Split a string to extract an rgb color value
- *
- * @param {string} Color string assign to color property
- */
- light_state(str) {
- //add parsers for other color spaces
- const color = str.replace('L ', '').trim();
- this.color = color;
- }
- /**
- * Interpret a pause command
- *
- * @param {string} line String containing pause command
- **/
- pause(line) {
- let lenStr = line.split(' ')[1] || '';
- let len;
- lenStr = lenStr.trim();
- try {
- len = parseInt(lenStr, 10); //clean up string or fail
- }
- catch (err) {
- len = 0;
- }
- if (isNaN(len)) {
- len = 0;
- }
- lenStr = String(len);
- if (this.rec !== -1) {
- //hold generated arr in state loop array
- this.loops[this.rec].arr
- .push('PA');
- this.loops[this.rec].meta
- .push(lenStr);
- }
- else {
- this.arr.push('AL');
- this.meta.push(lenStr);
- }
- }
- /**
- * Interpret an alert command
- *
- * @param {string} line String containing pause command
- **/
- alert(line) {
- let msg = line.split(' ')[1] || '';
- msg = msg.trim();
- if (this.rec !== -1) {
- //hold generated arr in state loop array
- this.loops[this.rec].arr
- .push('AL');
- this.loops[this.rec].meta
- .push(msg);
- }
- else {
- this.arr.push('AL');
- this.meta.push(msg);
- }
- }
- /**
- * Throw an error with specific message
- *
- * @param {string} msg Error message to print
- */
- fail(msg) {
- throw new Error(msg);
- }
-}
-module.exports = Mscript;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/mscript/index.js.map b/lib/mscript/index.js.map
deleted file mode 100644
index ea5ec61..0000000
--- a/lib/mscript/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/mscript/index.old.js b/lib/mscript/index.old.js
deleted file mode 100644
index 65e8d17..0000000
--- a/lib/mscript/index.old.js
+++ /dev/null
@@ -1,476 +0,0 @@
-'use strict';
-
-/** @module lib/mscript */
-
-let fs;
-let input;
-
-/** object mscript */
-const mscript = {};
-
-/**
- * Check for the presence of specific arguments in process
- * argv
- *
- * @param {string} shrt Short version of argument or flag
- * @param {string} lng Long version of argument or flag
- *
- * @return {boolean} Is flag present
- */
-mscript.arg = function arg (shrt, lng) {
- if (process.argv.indexOf(shrt) !== -1 ||
- process.argv.indexOf(lng) !== -1) {
- return true;
- }
- return false;
-};
-
-/**
- * Check for the position of specific arguments in process
- * argv
- *
- * @param {string} shrt Short version of argument or flag
- * @param {string} lng Long version of argument or flag
- *
- * @return {boolean} Position of arg or flag, for locating input
- */
-mscript.arg_pos = function arg_pos (shrt, lng) {
- var pos = -1;
- pos = process.argv.indexOf(shrt);
- if (pos === -1) {
- pos = process.argv.indexOf(lng);
- }
- return pos;
-};
-
-mscript.black = '0,0,0';
-mscript.cmd = [
- 'CF',
- 'PF',
- 'BF',
- 'CB',
- 'PB',
- 'BB'
-];
-mscript.alts = {
- 'CF' : ['CAMERA FORWARD', 'CAM FORWARD'],
- 'PF' : ['PROJECTOR FORWARD', 'PROJ FORWARD'],
- 'BF' : ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'],
- 'CB' : ['CAMERA BACKWARD', 'CAM BACKWARD', 'CAMERA BACK', 'CAM BACK'],
- 'PB' : ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'],
- 'BB' : ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'],
- 'L ' : ['LIGHT', 'COLOR', 'LAMP'],
- 'F ' : ['FADE']
-};
-
-mscript.state = {};
-
-/**
- * Clear the state object
- */
-mscript.state_clear = function state_clear () {
- mscript.state = {
- cam : 0,
- proj : 0,
- color : '',
- loops : [],
- rec : -1
- };
-};
-/**
- * This is never used and doesn't do anything?
- */
-mscript.alts_unique = function alts_unique () {
- var ids = Object.keys(mscript.alts),
- all = [];
- for (var i = 0; i < ids.length; i++) {
- if (all.indexOf(ids[i]) === -1) {
- all.push(ids[i]);
- } else {
- mscript.fail("Can't compile");
- }
- }
-};
-/**
- *
- */
-mscript.interpret = function interpret (text, callback) {
- mscript.state_clear();
- if (typeof text === 'undefined') {
- mscript.fail('No input');
- }
- var lines = text.split('\n'),
- two = '',
- arr = [],
- light = [],
- target = 0,
- dist = 0, //?
- output = {};
- for (var i = 0; i < lines.length; i++) {
- lines[i] = lines[i].replace(/\t+/g, ""); //strip tabs
- lines[i] = lines[i].trim(); //remove excess whitespace before and after command
- two = lines[i].substring(0, 2);
- if (mscript.cmd.indexOf(two) !== -1) {
-
- if (mscript.state.loops.length > 0) {
- //hold generated arr in state loop array
- mscript.state.loops[mscript.state.rec].arr
- .push.apply(mscript.state.loops[mscript.state.rec].arr,
- mscript.str_to_arr(lines[i],
- two));
- mscript.state.loops[mscript.state.rec].light
- .push.apply(mscript.state.loops[mscript.state.rec].light,
- mscript.light_to_arr(lines[i],
- two));
- } else {
- arr.push.apply(arr, mscript.str_to_arr(lines[i], two));
- light.push.apply(light, mscript.light_to_arr(lines[i], two))
- }
-
- } else if (lines[i].substring(0, 4) === 'LOOP') {
- mscript.state.rec++;
- mscript.state.loops[mscript.state.rec] = {
- arr : [],
- light : [],
- cam : 0,
- proj : 0,
- cmd : lines[i] + ''
- };
- } else if (lines[i].substring(0, 2) === 'L ') {
- mscript.light_state(lines[i]);
- } else if (lines[i].substring(0, 3) === 'END') {
- for (var x = 0; x < mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd); x++) {
- if (mscript.state.rec === 0) {
- arr.push.apply(arr, mscript.state.loops[mscript.state.rec].arr);
- light.push.apply(light, mscript.state.loops[mscript.state.rec].light);
- } else if (mscript.state.rec >= 1) {
- mscript.state.loops[mscript.state.rec - 1].arr
- .push.apply(mscript.state.loops[mscript.state.rec - 1].arr,
- mscript.state.loops[mscript.state.rec].arr);
- mscript.state.loops[mscript.state.rec - 1].light
- .push.apply(mscript.state.loops[mscript.state.rec - 1].light,
- mscript.state.loops[mscript.state.rec].light);
- }
- }
- mscript.state_update('END', mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd));
- delete mscript.state.loops[mscript.state.rec];
- mscript.state.rec--;
- } else if (lines[i].substring(0, 3) === 'CAM') { //directly go to that frame (black?)
- target = parseInt(lines[i].split('CAM ')[1]);
- if (mscript.state.loops.length > 0) {
- if (target > mscript.state.cam) {
- dist = target - mscript.state.cam;
- for (var x = 0; x < dist; x++) {
- mscript.state.loops[mscript.state.rec].arr.push('BF');
- mscript.state.loops[mscript.state.rec].light.push(mscript.black);
- mscript.state_update('BF');
- }
- } else {
- dist = mscript.state.cam - target;
- for (var x = 0; x < dist; x++) {
- mscript.state.loops[mscript.state.rec].arr.push('BB');
- mscript.state.loops[mscript.state.rec].light.push(mscript.black);
- mscript.state_update('BB');
- }
- }
- } else {
- if (target > mscript.state.cam) {
- dist = target - mscript.state.cam;
- for (var x = 0; x < dist; x++) {
- arr.push('BF');
- light.push(mscript.black);
- mscript.state_update('BF');
- }
- } else {
- dist = mscript.state.cam - target;
- for (var x = 0; x < dist; x++) {
- arr.push('BB');
- light.push(mscript.black);
- mscript.state_update('BB');
- }
- }
- }
- } else if (lines[i].substring(0, 4) === 'PROJ') { //directly go to that frame
- target = parseInt(lines[i].split('PROJ ')[1]);
- if (mscript.state.loops.length > 0) {
- if (target > mscript.state.proj) {
- dist = target - mscript.state.proj;
- for (var x = 0; x < dist; x++) {
- mscript.state.loops[mscript.state.rec].arr.push('PF');
- mscript.state.loops[mscript.state.rec].light.push('');
- mscript.state_update('PF');
- }
- } else {
- dist = mscript.state.proj - target;
- for (var x = 0; x < dist; x++) {
- mscript.state.loops[mscript.state.rec].arr.push('PB');
- mscript.state.loops[mscript.state.rec].light.push('');
- mscript.state_update('PB');
- }
- }
- } else {
- if (target > mscript.state.proj) {
- dist = target - mscript.state.proj;
- for (var x = 0; x < dist; x++) {
- arr.push('PF');
- light.push('');
- mscript.state_update('PF');
- }
- } else {
- dist = mscript.state.proj - target;
- for (var x = 0; x < dist; x++) {
- arr.push('PB');
- light.push('');
- mscript.state_update('PB');
- }
- }
- }
- } else if (lines[i].substring(0, 3) === 'SET') { //set that state
- if (lines[i].substring(0, 7) === 'SET CAM') {
- mscript.state.cam = parseInt(lines[i].split('SET CAM')[1]);
- } else if (lines[i].substring(0, 8) === 'SET PROJ') {
- mscript.state.proj = parseInt(lines[i].split('SET PROJ')[1]);
- }
- } else if (lines[i].substring(0, 1) === '#' || lines[i].substring(0, 2) === '//') {
- //comments
- //ignore while parsing
- }
- }
- output.success = true;
- output.arr = arr;
- output.light = light;
- output.cam = mscript.state.cam;
- output.proj = mscript.state.proj;
- if (typeof callback !== 'undefined') {
- //should only be invoked by running mscript.tests()
- callback(output);
- } else {
- return mscript.output(output);
- }
-};
-/**
- *
- */
-mscript.last_loop = function last_loop () {
- return mscript.state.loops[mscript.state.loops.length - 1];
-};
-/**
- *
- */
-mscript.parent_loop = function parent_loop () {
- return mscript.state.loops[mscript.state.loops.length - 2];
-};
-/**
- *
- */
-mscript.state_update = function state_update (cmd, val) {
- if (cmd === 'END') {
- for (var i = 0; i < val; i++) {
- if (mscript.state.rec === 0) {
- mscript.state.cam += mscript.state.loops[mscript.state.rec].cam;
- mscript.state.proj += mscript.state.loops[mscript.state.rec].proj;
- } else if (mscript.state.rec >= 1) {
- mscript.state.loops[mscript.state.rec - 1].cam += mscript.state.loops[mscript.state.rec].cam;
- mscript.state.loops[mscript.state.rec - 1].proj += mscript.state.loops[mscript.state.rec].proj;
- }
- }
- } else if (cmd === 'CF') {
- if (mscript.state.loops.length < 1) {
- mscript.state.cam++;
- } else {
- mscript.state.loops[mscript.state.rec].cam++;
- }
- } else if (cmd === 'CB') {
- if (mscript.state.loops.length < 1) {
- mscript.state.cam--;
- } else {
- mscript.state.loops[mscript.state.rec].cam--;
- }
- } else if (cmd === 'PF') {
- if (mscript.state.loops.length < 1) {
- mscript.state.proj++;
- } else {
- mscript.state.loops[mscript.state.rec].proj++;
- }
- } else if (cmd === 'PB') {
- if (mscript.state.loops.length < 1) {
- mscript.state.proj--;
- } else {
- mscript.state.loops[mscript.state.rec].proj--;
- }
- } else if (cmd === 'BF') {
- if (mscript.state.loops.length < 1) {
- mscript.state.cam++;
- } else {
- mscript.state.loops[mscript.state.rec].cam++;
- }
- } else if (cmd === 'BB') {
- if (mscript.state.loops.length < 1) {
- mscript.state.cam--;
- } else {
- mscript.state.loops[mscript.state.rec].cam++;
- }
- } else if (cmd === 'L ') {
-
- }
-};
-/**
- *
- */
-mscript.str_to_arr = function str_to_arr (str, cmd) {
- var cnt = str.split(cmd),
- c = parseInt(cnt[1]),
- arr = [];
- if (cnt[1] === '') {
- c = 1;
- } else {
- c = parseInt(cnt[1]);
- }
- for (var i = 0; i < c; i++) {
- arr.push(cmd);
- mscript.state_update(cmd);
- }
- return arr;
-};
-/**
- *
- */
-mscript.light_state = function light_state (str) {
- //add parsers for other color spaces
- var color = str.replace('L ', '').trim();
- mscript.state.color = color;
-};
-/**
- *
- */
-mscript.light_to_arr = function light_to_arr (str, cmd) {
- var cnt = str.split(cmd),
- c = parseInt(cnt[1]),
- arr = [];
- if (cnt[1] === '') {
- c = 1;
- } else {
- c = parseInt(cnt[1]);
- }
- for (var i = 0; i < c; i++) {
- if (cmd === 'CF'
- || cmd === 'CB') {
- arr.push(mscript.state.color);
- } else if (cmd === 'BF'
- || cmd === 'BB') {
- arr.push(mscript.black);
- } else {
- arr.push('');
- }
- }
- return arr;
-};
-/**
- *
- */
-mscript.loop_count = function loop_count (str) {
- return parseInt(str.split(' ')[1]);
-};
-mscript.fade_count = function fade_count (str) {
- return parseInt(str.split(' ')[1]);
-}
-/**
- *
- */
-mscript.fail = function fail (reason) {
- console.error(JSON.stringify({success: false, error: true, msg : reason}));
- if (process) process.exit();
-};
-/**
- *
- */
-mscript.output = function output (data) {
- var json = true; //default
- if (mscript.arg('-j', '--json')) {
- json = true;
- }
-
- if (mscript.arg('-t', '--text')) {
- json = false;
- }
-
- if (json) {
- console.log(JSON.stringify(data));
- } else {
- var ids = Object.keys(data);
- for (var i = 0; i < ids.length; i++) {
- console.log(ids[i] + ': ' + data[ids[i]]);
- }
- }
-};
-/**
- *
- */
-mscript.init = function init () {
- if (mscript.arg('-t', '--tests')) {
- return mscript.tests();
- }
-
- if (mscript.arg('-v', '--verbose')) {
- console.time('mscript');
- }
-
- if (mscript.arg('-c', '--cam')) {
- mscript.state.cam = parseInt(process.argv[mscript.arg_pos('-c', '--cam') + 1]);
- }
-
- if (mscript.arg('-p', '--proj')) {
- mscript.state.proj = parseInt(process.argv[mscript.arg_pos('-p', '--proj') + 1]);
- }
-
- if (mscript.arg('-f', '--file')) {
- input = process.argv[mscript.arg_pos('-f', '--file') + 1];
- mscript.interpret(fs.readFileSync(input, 'utf8'));
- } else {
- mscript.interpret(input);
- }
-
- if (mscript.arg('-v', '--verbose')) {
- console.timeEnd('mscript');
- }
-};
-
-if (typeof document === 'undefined'
- && typeof module !== 'undefined'
- && !module.parent) {
- //node script
- fs = require('fs');
- input = process.argv[2];
- mscript.init();
-} else if (typeof module !== 'undefined' && module.parent) {
- //module
- fs = require('fs');
- module.exports = mscript;
-} else {
- //web
-}
-
-
-/*
-
-CAM # - go to camera frame #
-PROJ # - go to projector frame #
-
-SET CAM # - sets camera count to #
-SET PROJ # - sets projector count to #
-
-LOOP # - begin loop, can nest recursively, # times
-END LOOP - (or END) closes loop
-
-L #RGB - sets light to rgb value
-
-FADE
-
-CF - Camera forwards
-PF - Projector forwards
-BF - Black forwards
-CB - Camera backwards
-PB - Projector backwards
-BB - Black backwards
-
-*/
\ No newline at end of file
diff --git a/lib/mscript/package.json b/lib/mscript/package.json
deleted file mode 100644
index 5453ae8..0000000
--- a/lib/mscript/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "mscript",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/proj/Readme.md b/lib/proj/Readme.md
deleted file mode 100644
index a3d61e0..0000000
--- a/lib/proj/Readme.md
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-## Projector
-**Kind**: global class
-
-* [Projector](#Projector)
- * [.init()](#Projector+init)
- * [.listen()](#Projector+listen)
- * [.set()](#Projector+set)
- * [.move()](#Projector+move)
- * [.listener()](#Projector+listener)
- * [.end()](#Projector+end)
-
-
-
-### projector.init()
-**Kind**: instance method of [Projector
](#Projector)
-
-
-### projector.listen()
-**Kind**: instance method of [Projector
](#Projector)
-
-
-### projector.set()
-**Kind**: instance method of [Projector
](#Projector)
-
-
-### projector.move()
-**Kind**: instance method of [Projector
](#Projector)
-
-
-### projector.listener()
-**Kind**: instance method of [Projector
](#Projector)
-
-
-### projector.end()
-**Kind**: instance method of [Projector
](#Projector)
diff --git a/lib/proj/index.js b/lib/proj/index.js
deleted file mode 100644
index 9eaf156..0000000
--- a/lib/proj/index.js
+++ /dev/null
@@ -1,175 +0,0 @@
-"use strict";
-/** class representing the Projector features **/
-Object.defineProperty(exports, "__esModule", { value: true });
-const Log = require("log");
-class Projector {
- /**
- *
- **/
- constructor(arduino, cfg, ui, filmout, second = false) {
- this.state = {
- pos: 0,
- dir: true
- };
- this.arduino = null;
- this.id = 'projector';
- this.arduino = arduino;
- this.cfg = cfg;
- this.ui = ui;
- this.filmout = filmout;
- if (second)
- this.id += '_second';
- this.init();
- }
- /**
- *
- **/
- async init() {
- this.log = await Log({ label: this.id });
- this.ipc = require('electron').ipcMain;
- this.listen();
- }
- /**
- *
- **/
- listen() {
- this.ipc.on(this.id, this.listener.bind(this));
- }
- /**
- *
- **/
- async set(dir, id) {
- let cmd;
- let ms;
- if (dir) {
- cmd = this.cfg.arduino.cmd[`${this.id}_forward`];
- }
- else {
- cmd = this.cfg.arduino.cmd[`${this.id}_backward`];
- }
- this.state.dir = dir;
- if (this.filmout.state.enabled) {
- this.filmout.set(dir);
- }
- else {
- try {
- ms = await this.arduino.send(this.id, cmd);
- }
- catch (err) {
- this.log.error(`Error setting ${this.id} direction`, err);
- }
- }
- return await this.end(cmd, id, ms);
- }
- /**
- *
- **/
- async move(frame, id) {
- const cmd = this.cfg.arduino.cmd[this.id];
- let ms;
- if (this.filmout.state.enabled) {
- try {
- ms = await this.filmout.move();
- }
- catch (err) {
- this.log.error(err);
- }
- }
- else {
- try {
- ms = await this.arduino.send(this.id, cmd);
- }
- catch (err) {
- this.log.error(`Error moving ${this.id}`, err);
- }
- }
- //this.log.info('Projector move time', { ms });
- return await this.end(cmd, id, ms);
- }
- async both(frame, id) {
- const cmd = this.cfg.arduino.cmd[this.id + 's'];
- let ms;
- try {
- ms = await this.arduino.send(this.id, cmd);
- }
- catch (err) {
- this.log.error(`Error moving ${this.id}`, err);
- }
- //this.log.info('Projectors move time', { ms });
- return await this.end(cmd, id, ms);
- }
- /**
- *
- **/
- async listener(event, arg) {
- if (typeof arg.dir !== 'undefined') {
- try {
- await this.set(arg.dir, arg.id);
- }
- catch (err) {
- this.log.error(err);
- }
- }
- else if (typeof arg.frame !== 'undefined') {
- try {
- await this.move(arg.frame, arg.id);
- }
- catch (err) {
- this.log.error(err);
- }
- }
- else if (typeof arg.val !== 'undefined') {
- this.state.pos = arg.val;
- this.filmout.state.frame = arg.val;
- }
- event.returnValue = true;
- }
- /**
- *
- **/
- async end(cmd, id, ms) {
- let message = '';
- if (cmd === this.cfg.arduino.cmd.projector_forward) {
- message = 'Projector set to FORWARD';
- }
- else if (cmd === this.cfg.arduino.cmd.projector_backward) {
- message = 'Projector set to BACKWARD';
- }
- else if (cmd === this.cfg.arduino.cmd.projector_second_forward) {
- message = 'Projector second set to FORWARD';
- }
- else if (cmd === this.cfg.arduino.cmd.projector_second_backward) {
- message = 'Projector second set to BACKWARD';
- }
- else if (cmd === this.cfg.arduino.cmd.projector) {
- message = 'Projector ';
- if (this.state.dir) {
- message += 'ADVANCED';
- }
- else {
- message += 'REWOUND';
- }
- message += ' 1 frame';
- }
- else if (cmd === this.cfg.arduino.cmd.projector_second) {
- message = 'Projector second ';
- if (this.state.dir) {
- message += 'ADVANCED';
- }
- else {
- message += 'REWOUND';
- }
- message += ' 1 frame';
- }
- else if (cmd === this.cfg.arduino.cmd.projectors) {
- message += 'Projectors both MOVED 1 frame each';
- }
- message += ` ${ms}ms`;
- this.log.info(message, 'PROJECTOR');
- return await this.ui.send(this.id, { cmd: cmd, id: id, ms: ms });
- }
-}
-module.exports = function (arduino, cfg, ui, filmout, second) {
- return new Projector(arduino, cfg, ui, filmout, second);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/proj/index.js.map b/lib/proj/index.js.map
deleted file mode 100644
index d6afd21..0000000
--- a/lib/proj/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proj/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/proj/package.json b/lib/proj/package.json
deleted file mode 100644
index 9c9782f..0000000
--- a/lib/proj/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "proj",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/sequencer/Readme.md b/lib/sequencer/Readme.md
deleted file mode 100644
index e69de29..0000000
diff --git a/lib/sequencer/index.js b/lib/sequencer/index.js
deleted file mode 100644
index a993b5a..0000000
--- a/lib/sequencer/index.js
+++ /dev/null
@@ -1,240 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const Log = require("log");
-const electron_1 = require("electron");
-/** @module lib/sequencer **/
-let seq;
-class Sequencer {
- /**
- * @constructor
- * Create a new sequencer and assign command and UI as private sub-classes
- *
- * @param {object} cfg Configuration object
- * @param {object} cmd Shared command class
- * @param {object} ui Electron UI, browser window
- **/
- constructor(cfg, cmd, ui) {
- this.running = false;
- this.paused = false;
- this.grid = [];
- this.gridLoops = 1;
- this.arr = []; //store sequence from gui
- this.loops = 1;
- this.CMDS = {};
- this.id = 'sequence';
- this.alerted = false;
- this.cfg = cfg;
- this.cmd = cmd;
- this.ui = ui;
- this.cmds(cfg.cmd);
- this.init();
- }
- /**
- * Take configuration object and assign all commands as keys
- * in the internal CMDS object.
- *
- * @param {object} obj Configuration object
- **/
- cmds(obj) {
- let keys = Object.keys(obj);
- for (let key of keys) {
- this.CMDS[obj[key]] = key;
- }
- //
- //
- }
- /**
- * Initialize the class by requiring ipcMain from electron
- * and creating logger.
- *
- **/
- async init() {
- this.log = await Log({ label: this.id });
- this.ipc = require('electron').ipcMain;
- this.listen();
- }
- /**
- * Bind ipc listener to channel 'sequencer' or current id of
- * class.
- **/
- listen() {
- this.ipc.on(this.id, this.listener.bind(this));
- }
- /**
- * Listener callback function. Called whenever ipc
- * message is sent to channel 'sequencer'.
- *
- * @param {object} event IPC message event
- * @param {object} arg Arguments provided in message
- **/
- async listener(event, arg) {
- if (arg && arg.start) {
- this.start(arg);
- }
- else if (arg && arg.stop) {
- this.stop();
- }
- else if (arg && arg.pause) {
- this.pause();
- }
- else if (arg && arg.set) {
- this.setSteps(arg.set);
- }
- else if (arg && arg.unset) {
- this.unsetSteps(arg.unset);
- }
- else if (arg && arg.loops) {
- this.setLoops(arg.loops);
- }
- event.returnValue = true;
- }
- /**
- * Sets the value of the loops in the grid sequence
- * to value sent by UI in ipc message.
- *
- * @param {integer} count Number of loops to set grid sequence to
- **/
- setLoops(count) {
- this.gridLoops = count;
- this.log.info(`Set loop count to ${count}`);
- }
- /**
- * Sets multiple steps at once
- *
- * @param {array} steps Array of steps to set or update
- **/
- setSteps(steps) {
- for (let step of steps) {
- this.grid[step.x] = step;
- }
- }
- /**
- * Resets multiple steps to default 'undefined' state
- *
- * @param {array} steps Array containing the x location of steps to unset
- **/
- unsetSteps(steps) {
- for (let x of steps) {
- this.grid[x] = undefined;
- }
- }
- /**
- * Starts a sequence with the existing grid sequence,
- * or if one is provided in the arg object, starts
- * that sequence.
- *
- * @param {object} arg Arguments from ipc message
- **/
- async start(arg) {
- let startTime = +new Date();
- let ms;
- this.psbId = electron_1.powerSaveBlocker.start('prevent-display-sleep');
- if (arg && arg.arr) {
- this.arr = arg.arr; //overwrite sequence
- }
- else {
- this.arr = this.grid;
- }
- if (arg && arg.loops) {
- this.loops = arg.loops; //overwrite loops
- }
- else {
- this.loops = this.gridLoops;
- }
- this.running = true;
- this.paused = false;
- //start sequence
- this.log.info(`Starting sequence...`);
- this.ui.send(this.id, { start: true });
- if (this.cmd.proj.filmout.state.enabled === true) {
- await this.cmd.proj.filmout.display.open();
- }
- for (let x = 0; x < this.loops; x++) {
- //start loop
- this.log.info(`Starting loop ${x + 1}`);
- this.ui.send(this.id, { loop: x, start: true });
- for (let y = 0; y < this.arr.length; y++) {
- //start step
- if (!this.running) {
- break;
- }
- //UI initiates pause, not planned
- while (this.paused) {
- await delay(42);
- }
- if (typeof this.arr[y] === 'undefined') {
- continue;
- }
- this.log.info(`Starting step ${y + 1} of loop ${x + 1}`);
- this.ui.send(this.id, { step: y, loop: x, start: true });
- await this.step(y);
- //end step
- this.log.info(`Ended step ${y + 1} of loop ${x + 1}`);
- this.ui.send(this.id, { step: y, loop: x, stop: true });
- }
- if (!this.running) {
- break;
- }
- //end loop
- this.log.info(`Ended loop ${x + 1}`);
- this.ui.send(this.id, { loop: x, stop: true });
- }
- if (this.cmd.proj.filmout.state.enabled === true) {
- await this.cmd.proj.filmout.display.close();
- }
- electron_1.powerSaveBlocker.stop(this.psbId);
- this.psbId = null;
- ms = (+new Date()) - startTime;
- //end sequence
- this.log.info(`Ended sequence`);
- this.ui.send(this.id, { stop: true, ms });
- }
- /**
- * Pauses sequence from UI.
- **/
- pause() {
- this.paused = true;
- }
- /**
- * Stops the sequence
- **/
- stop() {
- if (this.cmd.proj.filmout.state.enabled === true) {
- this.cmd.proj.filmout.display.close();
- }
- this.running = false;
- if (this.psbId) {
- electron_1.powerSaveBlocker.stop(this.psbId);
- }
- //clear?
- }
- /**
- * Execute command @ step x. Wrapper with try catch.
- *
- * @param {integer} x Step to execute command at
- **/
- async step(x) {
- try {
- await this.cmdExec(x);
- }
- catch (err) {
- throw err;
- }
- }
- /**
- * Locate step @ position x and execute the command.
- *
- * @param {integer} x Step to execute command at
- **/
- async cmdExec(x) {
- const cmdOriginal = this.arr[x].cmd;
- const cmd = this.CMDS[cmdOriginal];
- this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`);
- //I wrote this when I was very tired and delirious
- return await this.cmd[cmd]();
- }
-}
-module.exports = function (cfg, cmd, ui) {
- return new Sequencer(cfg, cmd, ui);
-};
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/sequencer/index.js.map b/lib/sequencer/index.js.map
deleted file mode 100644
index ece6970..0000000
--- a/lib/sequencer/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/sequencer/package.json b/lib/sequencer/package.json
deleted file mode 100644
index 6fb32b0..0000000
--- a/lib/sequencer/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "sequencer",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/settings/Readme.md b/lib/settings/Readme.md
deleted file mode 100644
index 7ed0553..0000000
--- a/lib/settings/Readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-## Settings
-**Kind**: global class
-
-* [Settings](#Settings)
- * [.checkDir()](#Settings+checkDir)
- * [.save()](#Settings+save)
- * [.update()](#Settings+update)
- * [.get()](#Settings+get)
- * [.all()](#Settings+all)
- * [.restore()](#Settings+restore)
- * [.reset()](#Settings+reset)
-
-
-
-### settings.checkDir()
-**Kind**: instance method of [Settings
](#Settings)
-
-
-### settings.save()
-**Kind**: instance method of [Settings
](#Settings)
-
-
-### settings.update()
-**Kind**: instance method of [Settings
](#Settings)
-
-
-### settings.get()
-**Kind**: instance method of [Settings
](#Settings)
-
-
-### settings.all()
-**Kind**: instance method of [Settings
](#Settings)
-
-
-### settings.restore()
-**Kind**: instance method of [Settings
](#Settings)
-
-
-### settings.reset()
-**Kind**: instance method of [Settings
](#Settings)
diff --git a/lib/settings/index.js b/lib/settings/index.js
deleted file mode 100644
index 869e3b4..0000000
--- a/lib/settings/index.js
+++ /dev/null
@@ -1,113 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const os = require("os");
-const path = require("path");
-const fs = require("fs-extra");
-class Settings {
- /**
- *
- **/
- constructor() {
- this.file = path.join(os.homedir(), `/.mcopy/settings.json`);
- this.defaultState = {
- server: {
- port: 1111,
- enabled: true
- },
- devices: [],
- profile: 'mcopy',
- camera: {},
- projector: {},
- light: {}
- };
- this.state = this.freshState();
- }
- freshState() {
- return JSON.parse(JSON.stringify(this.defaultState));
- }
- /**
- *
- **/
- async checkDir() {
- const dir = path.join(os.homedir(), '.mcopy/');
- const exists = await fs.exists(dir);
- if (!exists) {
- try {
- await fs.mkdir(dir);
- }
- catch (err) {
- if (err.code === 'EEXIST')
- return true;
- console.error(err);
- }
- }
- return true;
- }
- /**
- *
- **/
- async save() {
- const str = JSON.stringify(this.state, null, '\t');
- this.checkDir();
- try {
- await fs.writeFile(this.file, str, 'utf8');
- }
- catch (err) {
- console.error(err);
- }
- }
- /**
- *
- **/
- update(key, val) {
- this.state[key] = val;
- }
- /**
- *
- **/
- get(key) {
- return this.state[key];
- }
- /**
- *
- **/
- all() {
- return this.state;
- }
- /**
- *
- **/
- async restore() {
- let exists;
- let str;
- this.checkDir();
- exists = await fs.exists(this.file);
- if (exists) {
- str = await fs.readFile(this.file, 'utf8');
- this.state = JSON.parse(str);
- //console.dir(this.state)
- }
- else {
- this.save();
- }
- }
- /**
- *
- **/
- async reset() {
- const exists = await fs.exists(this.file);
- if (exists) {
- try {
- await fs.unlink(this.file);
- }
- catch (err) {
- console.error(err);
- }
- }
- this.state = this.freshState();
- this.restore();
- }
- ;
-}
-module.exports = new Settings();
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/settings/index.js.map b/lib/settings/index.js.map
deleted file mode 100644
index 09bd78c..0000000
--- a/lib/settings/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/settings/package.json b/lib/settings/package.json
deleted file mode 100644
index 87cc2fb..0000000
--- a/lib/settings/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "settings",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}
diff --git a/lib/system/Readme.md b/lib/system/Readme.md
deleted file mode 100644
index 9a1dbf0..0000000
--- a/lib/system/Readme.md
+++ /dev/null
@@ -1,37 +0,0 @@
-## Functions
-
-
Evaluates system dependencies for digital -projector features by executing processes with ---help flag. If they do not exist, log to console
-object
Profile the current system and return an object with -data about the displays and dependencies for the digital -projector feature.
-string
| Operating system type |
-
-
-
-## system() ⇒ object
-Profile the current system and return an object with
-data about the displays and dependencies for the digital
-projector feature.
-
-**Kind**: global function
-**Returns**: object
- Object containing system information
diff --git a/lib/system/index.js b/lib/system/index.js
deleted file mode 100644
index 92d00d1..0000000
--- a/lib/system/index.js
+++ /dev/null
@@ -1,115 +0,0 @@
-'use strict';
-Object.defineProperty(exports, "__esModule", { value: true });
-const os_1 = require("os");
-const electron_1 = require("electron");
-//private
-const exec_1 = require("exec");
-/**
- * Evaluates system dependencies for digital
- * projector features by executing `which` on binary.
- * If they do not exist, log to console
- *
- * @param {string} platform Operating system type
- *
- * @returns {object} Object containing path to dependency from `which`, if they exist
- **/
-async function dependencies(platform) {
- let obj = {};
- let ffmpeg = require('ffmpeg-static');
- let ffoutput;
- let imoutput;
- let eogoutput;
- obj.ffmpeg = ffmpeg.path;
- try {
- imoutput = await exec_1.exec('which convert');
- }
- catch (err) {
- console.error('imagemagick is not installed', err);
- }
- if (!imoutput || imoutput.stdout.trim() === '') {
- console.error('imagemagick is not installed');
- }
- else {
- obj.convert = imoutput.stdout.trim();
- }
- //if linux
- if (platform === 'nix') {
- try {
- eogoutput = await exec_1.exec('which eog');
- }
- catch (err) {
- console.error('eog is not installed', err);
- }
- if (!eogoutput || eogoutput.stdout.trim() === '') {
- console.error('eog is not installed');
- }
- else {
- obj.eog = eogoutput.stdout.trim();
- }
- }
- return obj;
-}
-function displayMap(obj) {
- const sm = {
- id: obj.id,
- width: obj.size.width,
- height: obj.size.height,
- x: obj.bounds.x,
- y: obj.bounds.y,
- scale: obj.scaleFactor,
- primary: (obj.bounds.x === 0 && obj.bounds.y === 0)
- };
- const primary = sm.primary ? ' (Primary)' : '';
- sm.name = `${sm.width}x${sm.height}${primary}`;
- return sm;
-}
-function displaySort(a, b) {
- if (a.primary) {
- return -1;
- }
- else if (b.primary) {
- return 1;
- }
- return 0;
-}
-async function displays() {
- let displays = electron_1.screen.getAllDisplays();
- displays = displays.map(displayMap);
- displays.sort(displaySort);
- return displays;
-}
-/**
- * Profile the current system and return an object with
- * data about the displays and dependencies for the digital
- * projector feature.
- *
- * @returns {object} Object containing system information
- */
-async function system(ui) {
- const obj = {};
- let platform;
- try {
- obj.tmp = os_1.tmpdir();
- }
- catch (err) {
- obj.tmp = '/tmp';
- }
- platform = os_1.type();
- if (platform === 'Darwin') {
- obj.platform = 'osx';
- }
- else if (platform === 'Windows_NT') {
- obj.platform = 'win';
- }
- else {
- obj.platform = 'nix';
- }
- obj.displays = await displays();
- obj.deps = await dependencies(obj.platform);
- setTimeout(() => {
- ui.send('system', obj);
- }, 3000);
- return obj;
-}
-module.exports = system;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/system/index.js.map b/lib/system/index.js.map
deleted file mode 100644
index a21ff24..0000000
--- a/lib/system/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/system/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/system/package.json b/lib/system/package.json
deleted file mode 100644
index 148877b..0000000
--- a/lib/system/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "system",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC"
-}