All capper features in app, can shoot blank frames, can turn on capper independently and can schedule blank frames in the sequencer. Some cleanup may be needed but there are no noticeable regressions in the app. TODO: Finish all arduino scripts.
This commit is contained in:
parent
ea055d6e56
commit
9d0545aa4f
|
@ -484,6 +484,9 @@ button:focus {
|
|||
#sequence #projector_second_backward > div {
|
||||
color: #bf2e39;
|
||||
}
|
||||
#sequence #black input[type=checkbox]:checked {
|
||||
background: white;
|
||||
}
|
||||
#sequence input[type=checkbox] {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
|
@ -500,6 +503,10 @@ button:focus {
|
|||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
}
|
||||
#sequence input[type=checkbox].disabled {
|
||||
cursor: not-allowed;
|
||||
border-color: #646464;
|
||||
}
|
||||
#sequence .L {
|
||||
display: inline-block;
|
||||
width: 35px;
|
||||
|
@ -627,6 +634,11 @@ button:focus {
|
|||
background: #AB1A25;
|
||||
border-color: #AB1A25;
|
||||
}
|
||||
.cmd:active.capper,
|
||||
.cmd.active.capper {
|
||||
background: white;
|
||||
color: #272b30;
|
||||
}
|
||||
.cmd:active i,
|
||||
.cmd.active i {
|
||||
color: #272b30;
|
||||
|
@ -1140,19 +1152,23 @@ button:focus {
|
|||
float: right;
|
||||
}
|
||||
.cam2,
|
||||
.proj2 {
|
||||
.proj2,
|
||||
.black {
|
||||
display: none;
|
||||
}
|
||||
.cam2 > *,
|
||||
.proj2 > * {
|
||||
.proj2 > *,
|
||||
.black > * {
|
||||
visibility: hidden;
|
||||
}
|
||||
.cam2.on,
|
||||
.proj2.on {
|
||||
.proj2.on,
|
||||
.black.on {
|
||||
display: block;
|
||||
}
|
||||
.cam2.on > *,
|
||||
.proj2.on > * {
|
||||
.proj2.on > *,
|
||||
.black.on > * {
|
||||
visibility: visible;
|
||||
}
|
||||
#overlay {
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
"momentary": 0
|
||||
},
|
||||
"black": {
|
||||
"before": 0,
|
||||
"after": 0
|
||||
"before": 100,
|
||||
"after": 100
|
||||
},
|
||||
"light": false
|
||||
},
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<div id="projector_backward" class="row" y="1"></div>
|
||||
<div id="projector_second_backward" class="row proj2" y="3"></div>
|
||||
|
||||
<div id="capper" class="row capper" y="4"></div>
|
||||
<div id="black" class="row black"></div>
|
||||
|
||||
<div id="light_set" class="row spacer"></div>
|
||||
<div id="numbers" class="row"></div>
|
||||
|
@ -62,7 +62,7 @@
|
|||
<div><span>PROJ </span><i class="fa fa-minus"></i></div>
|
||||
<div class="proj2"><span>PROJ2 </span><i class="fa fa-minus"></i></div>
|
||||
|
||||
<div class="capper"><span>BLANK </span><i class="fa fa-times"></i></div>
|
||||
<div class="black"><span>BLANK </span><i class="fa fa-times"></i></div>
|
||||
|
||||
<div class="spacer"><span>LIGHT</span></div>
|
||||
</div>
|
||||
|
@ -162,6 +162,20 @@
|
|||
<i class="fa fa-step-backward"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="hide">
|
||||
<button id="cmd_capper_on" onclick="cmd.capper_on();" class="cmd capper">
|
||||
<i class="fa fa-times-circle"></i>
|
||||
CAPPER ON
|
||||
<i class="fa fa-eye"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="hide">
|
||||
<button id="cmd_capper_off" onclick="cmd.capper_off();" class="cmd capper active">
|
||||
<i class="fa fa-eye"></i>
|
||||
CAPPER OFF
|
||||
<i class="fa fa-eye"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
|
|
|
@ -175,7 +175,8 @@
|
|||
}
|
||||
|
||||
.cam2,
|
||||
.proj2{
|
||||
.proj2,
|
||||
.black{
|
||||
display : none;
|
||||
> * {
|
||||
visibility: hidden;
|
||||
|
|
|
@ -42,6 +42,10 @@
|
|||
background: @BACKWARD;
|
||||
border-color: @BACKWARD;
|
||||
}
|
||||
&.capper{
|
||||
background: white;
|
||||
color: @BG;
|
||||
}
|
||||
i{
|
||||
color: @BG;
|
||||
}
|
||||
|
|
|
@ -126,6 +126,13 @@
|
|||
color: @BACKWARD + @SECOND;
|
||||
}
|
||||
}
|
||||
#black{
|
||||
input[type=checkbox]{
|
||||
&:checked{
|
||||
background: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
input[type=checkbox]{
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
|
@ -141,6 +148,10 @@
|
|||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
&.disabled{
|
||||
cursor: not-allowed;
|
||||
border-color: rgb(100, 100, 100);
|
||||
}
|
||||
}
|
||||
.L{
|
||||
display: inline-block;
|
||||
|
|
|
@ -57,9 +57,9 @@ class Capper {
|
|||
*
|
||||
**/
|
||||
async listener(event, arg) {
|
||||
if (typeof arg.capper !== 'undefined') {
|
||||
if (typeof arg.state !== 'undefined') {
|
||||
try {
|
||||
await this.capper(arg.capper, arg.id);
|
||||
await this.capper(arg.state, arg.id);
|
||||
}
|
||||
catch (err) {
|
||||
this.log.error(err);
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capper/index.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capper/index.ts"],"names":[],"mappings":"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"}
|
|
@ -14,15 +14,17 @@ class Commands {
|
|||
* @param {object} cam2 (optional) Camera 2
|
||||
* @param {object} proj2 {optional} Projector 2
|
||||
**/
|
||||
constructor(cfg, proj, cam, light, cam2 = null, proj2 = null) {
|
||||
constructor(cfg, proj, cam, light, cam2 = null, proj2 = null, capper = null) {
|
||||
this.cfg = cfg;
|
||||
this.proj = proj;
|
||||
this.cam = cam;
|
||||
this.light = light;
|
||||
if (cam2)
|
||||
if (cam2 !== null)
|
||||
this.cam2 = cam2;
|
||||
if (proj2)
|
||||
if (proj2 !== null)
|
||||
this.proj2 = proj2;
|
||||
if (capper !== null)
|
||||
this.capper = capper;
|
||||
this.ipc = require('electron').ipcMain;
|
||||
}
|
||||
/**
|
||||
|
@ -101,18 +103,25 @@ class Commands {
|
|||
async black_forward() {
|
||||
const id = uuid_1.v4();
|
||||
const off = [0, 0, 0];
|
||||
let ms;
|
||||
let ms = 0;
|
||||
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);
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(true, id);
|
||||
}
|
||||
await delay_1.delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id); //make sure set to off
|
||||
await delay_1.delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam.move();
|
||||
ms += await this.cam.move();
|
||||
await delay_1.delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(false, id);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
throw err;
|
||||
|
@ -155,18 +164,24 @@ class Commands {
|
|||
async black_backward() {
|
||||
const id = uuid_1.v4();
|
||||
const off = [0, 0, 0];
|
||||
let ms;
|
||||
let ms = 0;
|
||||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await delay_1.delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
}
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(true, id);
|
||||
}
|
||||
await delay_1.delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id); //make sure set to off
|
||||
await delay_1.delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam.move();
|
||||
ms += await this.cam.move();
|
||||
await delay_1.delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(false, id);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
throw err;
|
||||
|
@ -571,7 +586,7 @@ class Commands {
|
|||
return ms;
|
||||
}
|
||||
}
|
||||
module.exports = function (cfg, proj, cam, light, cam2, proj2) {
|
||||
return new Commands(cfg, proj, cam, light, cam2, proj2);
|
||||
module.exports = function (cfg, proj, cam, light, cam2, proj2, capper) {
|
||||
return new Commands(cfg, proj, cam, light, cam2, proj2, capper);
|
||||
};
|
||||
//# sourceMappingURL=index.js.map
|
File diff suppressed because one or more lines are too long
|
@ -418,7 +418,7 @@ class Devices {
|
|||
let d;
|
||||
let cs = {};
|
||||
let ps = {};
|
||||
let capper;
|
||||
let capper = {};
|
||||
let checklist = [];
|
||||
this.connected = {
|
||||
projector: false,
|
||||
|
@ -457,16 +457,13 @@ class Devices {
|
|||
}
|
||||
l.arduino = this.connected.light;
|
||||
if (this.connected.camera_second) {
|
||||
cs = { arduino: this.connected.camera_second };
|
||||
cs.arduino = this.connected.camera_second;
|
||||
}
|
||||
if (this.connected.projector_second) {
|
||||
ps = { arduino: this.connected.projector_second };
|
||||
ps.arduino = this.connected.projector_second;
|
||||
}
|
||||
if (this.connected.capper) {
|
||||
capper = { arduino: this.connected.capper };
|
||||
}
|
||||
else {
|
||||
await this.fakeCapper();
|
||||
capper.arduino = this.connected.capper;
|
||||
}
|
||||
if (this.settings.state.camera && this.settings.state.camera.intval) {
|
||||
c.intval = this.settings.state.camera.intval;
|
||||
|
@ -518,7 +515,7 @@ class Devices {
|
|||
this.mainWindow.setSize(800, 800);
|
||||
}
|
||||
}
|
||||
if (capper) {
|
||||
if (capper && capper.arduino) {
|
||||
args.capper = capper;
|
||||
this.mainWindow.setSize(800, 800);
|
||||
this.settings.update('capper', capper);
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,18 +2,24 @@
|
|||
let capper;
|
||||
class Capper {
|
||||
constructor() {
|
||||
this.enabled = false;
|
||||
this.queue = {};
|
||||
this.lock = false;
|
||||
this.id = 'capper';
|
||||
this.state = true;
|
||||
this.state = false;
|
||||
}
|
||||
init() {
|
||||
this.listen();
|
||||
}
|
||||
enable() {
|
||||
$('.capper').addClass('on');
|
||||
$('.black').addClass('on');
|
||||
$('#cmd_black_forward').parent().removeClass('hide');
|
||||
$('#cmd_black_backward').parent().removeClass('hide');
|
||||
$('#cmd_capper_on').parent().removeClass('hide');
|
||||
$('#cmd_capper_off').parent().removeClass('hide');
|
||||
this.enabled = true;
|
||||
}
|
||||
set(state, callback) {
|
||||
capper(state, callback) {
|
||||
let obj;
|
||||
if (this.lock) {
|
||||
return false;
|
||||
|
@ -28,6 +34,15 @@ class Capper {
|
|||
}
|
||||
this.queue[obj.id] = obj;
|
||||
this.lock = true;
|
||||
this.state = state;
|
||||
if (state) {
|
||||
$('#cmd_capper_on').addClass('active');
|
||||
$('#cmd_capper_off').removeClass('active');
|
||||
}
|
||||
else {
|
||||
$('#cmd_capper_off').addClass('active');
|
||||
$('#cmd_capper_on').removeClass('active');
|
||||
}
|
||||
}
|
||||
end(c, id, ms) {
|
||||
if (c === cfg.arduino.cmd.capper_on) {
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"capper.js","sourceRoot":"","sources":["../../src/lib/ui/capper.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAQb,IAAI,MAAe,CAAC;AAQpB,MAAM,MAAM;IAMX;QALA,UAAK,GAAS,EAAE,CAAC;QACjB,SAAI,GAAa,KAAK,CAAC;QACvB,OAAE,GAAY,QAAQ,CAAC;QACvB,UAAK,GAAa,IAAI,CAAC;IAIvB,CAAC;IAED,IAAI;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAEM,MAAM;QACZ,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAE,KAAe,EAAE,QAAmB;QAC/C,IAAI,GAAiB,CAAC;QAEtB,IAAI,IAAI,CAAC,IAAI,EAAE;YACd,OAAO,KAAK,CAAC;SACb;QAED,GAAG,GAAG;YACL,KAAK;YACL,EAAE,EAAG,IAAI,EAAE;SACX,CAAC;QAEF,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAEnC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACpC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACxB;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAEM,GAAG,CAAE,CAAU,EAAE,EAAW,EAAE,EAAW;QAC/C,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SAClB;aAAM,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACnB;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,WAAW,EAAE;YAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,KAAK,WAAW,EAAE;gBACnD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC5B;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SAClB;IACF,CAAC;IACO,MAAM;QACb,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,KAAa,EAAE,GAAS;YACzD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IAAA,CAAC;CAEF;AAED,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AACtB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC"}
|
||||
{"version":3,"file":"capper.js","sourceRoot":"","sources":["../../src/lib/ui/capper.ts"],"names":[],"mappings":"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"}
|
|
@ -155,24 +155,63 @@ cmd.black_forward = function (callback) {
|
|||
if (callback) { callback(ms); }
|
||||
};
|
||||
$('#cmd_black_forward').addClass('active');
|
||||
|
||||
if (!cam.dir) {
|
||||
cam.set(true, function () {
|
||||
setTimeout( function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
setTimeout( function () {
|
||||
cam.move(res);
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
if (capper.enabled) {
|
||||
cam.set(true, function () {
|
||||
setTimeout( function () {
|
||||
capper.capper(true, function () {
|
||||
setTimeout( function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
setTimeout( function () {
|
||||
cam.move(function () {
|
||||
setTimeout(function () {
|
||||
capper.capper(false, res);
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay)
|
||||
})
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
} else {
|
||||
cam.set(true, function () {
|
||||
setTimeout( function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
setTimeout( function () {
|
||||
cam.move(res);
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
setTimeout(function () {
|
||||
cam.move(res);
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
if (capper.enabled) {
|
||||
capper.capper(true, function () {
|
||||
setTimeout( function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
setTimeout( function () {
|
||||
cam.move(function () {
|
||||
setTimeout(function () {
|
||||
capper.capper(false, res);
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
} else {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
setTimeout(function () {
|
||||
cam.move(res);
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
/**
|
||||
|
@ -226,21 +265,57 @@ cmd.black_backward = function (callback) {
|
|||
};
|
||||
$('#cmd_black_backward').addClass('active');
|
||||
if (cam.dir) {
|
||||
cam.set(false, function () {
|
||||
if (capper.enabled) {
|
||||
cam.set(false, function () {
|
||||
setTimeout( function () {
|
||||
capper.capper(true, function () {
|
||||
setTimeout(function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
cam.move(function () {
|
||||
setTimeout(function () {
|
||||
capper.capper(false, res);
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
} else {
|
||||
cam.set(false, function () {
|
||||
setTimeout(function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
cam.move(res);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
if (capper.enabled) {
|
||||
capper.capper(true, function () {
|
||||
setTimeout( function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
setTimeout( function () {
|
||||
cam.move(function () {
|
||||
setTimeout(function () {
|
||||
capper.capper(false, res);
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
} else {
|
||||
setTimeout(function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
cam.move(res);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
});
|
||||
} else {
|
||||
setTimeout(function () {
|
||||
light.display(off);
|
||||
light.set(off, function () {
|
||||
cam.move(res);
|
||||
});
|
||||
}, cfg.arduino.serialDelay);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -534,4 +609,32 @@ cmd.projector_second_to = function (t) {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Turn the capper on (block the camera)
|
||||
*
|
||||
* @param {function} callback Function to call after capper is on
|
||||
**/
|
||||
cmd.capper_on = function (callback) {
|
||||
'use strict';
|
||||
var res = function (ms) {
|
||||
gui.updateState();
|
||||
if (callback) { callback(ms); }
|
||||
};
|
||||
capper.capper(true, res);
|
||||
};
|
||||
|
||||
/**
|
||||
* Turn the capper off (not blocking the camera)
|
||||
*
|
||||
* @param {function} callback Function to call after capper is off
|
||||
**/
|
||||
cmd.capper_off = function (callback) {
|
||||
'use strict';
|
||||
var res = function (ms) {
|
||||
gui.updateState();
|
||||
if (callback) { callback(ms); }
|
||||
};
|
||||
capper.capper(false, res);
|
||||
};
|
||||
|
||||
module.exports = cmd;
|
|
@ -85,11 +85,6 @@ class Devices {
|
|||
}
|
||||
//devices.profile(arg.profile)
|
||||
}
|
||||
seq.set(0, cfg.cmd.camera_forward);
|
||||
seq.set(1, cfg.cmd.projector_forward);
|
||||
grid.state(0);
|
||||
grid.state(1);
|
||||
seq.stats();
|
||||
if (arg.projector_second) {
|
||||
//add second row of projector pads to grid
|
||||
proj.second.enable();
|
||||
|
@ -99,8 +94,14 @@ class Devices {
|
|||
cam.second.enable();
|
||||
}
|
||||
if (arg.capper) {
|
||||
//add capper features to grid
|
||||
capper.enable();
|
||||
}
|
||||
seq.set(0, cfg.cmd.camera_forward);
|
||||
seq.set(1, cfg.cmd.projector_forward);
|
||||
grid.state(0);
|
||||
grid.state(1);
|
||||
seq.stats();
|
||||
return event.returnValue = true;
|
||||
});
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -6,6 +6,9 @@ let grid;
|
|||
class Grid {
|
||||
constructor() {
|
||||
this.swatchesElem = {};
|
||||
this.projector_cmds = [
|
||||
'PF', 'PB', 'P2F', 'P2B', 'PPF', 'PPB'
|
||||
];
|
||||
}
|
||||
init() {
|
||||
this.refresh();
|
||||
|
@ -24,8 +27,8 @@ class Grid {
|
|||
const step = seq.grid[x];
|
||||
let className;
|
||||
let className2;
|
||||
elem.prop('checked', false);
|
||||
if (typeof step !== 'undefined') {
|
||||
elem.prop('checked', false);
|
||||
if (step.cmd === cfg.cmd.cameras_forward) {
|
||||
className = cfg.cmd.camera_forward;
|
||||
className2 = cfg.cmd.camera_second_forward;
|
||||
|
@ -58,6 +61,14 @@ class Grid {
|
|||
className = cfg.cmd.projector_backward;
|
||||
className2 = cfg.cmd.projector_second_forward;
|
||||
}
|
||||
else if (step.cmd === cfg.cmd.black_forward) {
|
||||
className = cfg.cmd.camera_forward;
|
||||
className2 = 'black';
|
||||
}
|
||||
else if (step.cmd === cfg.cmd.black_backward) {
|
||||
className = cfg.cmd.camera_backward;
|
||||
className2 = 'black';
|
||||
}
|
||||
else {
|
||||
className = step.cmd;
|
||||
}
|
||||
|
@ -75,6 +86,12 @@ class Grid {
|
|||
.removeClass('a')
|
||||
.prop('title', '');
|
||||
}
|
||||
if (capper.enabled && this.projector_cmds.indexOf(step.cmd) !== -1) {
|
||||
$(`.black[x=${x}]`).addClass('disabled');
|
||||
}
|
||||
else if (capper.enabled) {
|
||||
$(`.black[x=${x}]`).removeClass('disabled');
|
||||
}
|
||||
}
|
||||
else {
|
||||
lightElem.css('background', 'transparent')
|
||||
|
@ -113,6 +130,7 @@ class Grid {
|
|||
'camera_second_backward',
|
||||
'projector_backward',
|
||||
'projector_second_backward',
|
||||
'black',
|
||||
'light_set',
|
||||
'numbers'
|
||||
];
|
||||
|
@ -132,6 +150,10 @@ class Grid {
|
|||
elem = `<div x="${x}" class="L"></div>`;
|
||||
$(cmd).append($(elem));
|
||||
}
|
||||
else if (cmds[i] === 'black') {
|
||||
elem = `<input type="checkbox" x="${x}" class="black" />`;
|
||||
$(cmd).append($(elem));
|
||||
}
|
||||
else {
|
||||
elem = `<input type="checkbox" x="${x}" />`;
|
||||
$(cmd).append($(elem).addClass(cfg.cmd[cmds[i]]));
|
||||
|
@ -159,7 +181,24 @@ class Grid {
|
|||
current = seq.grid[x].cmd + ''; // cast to string, bad hack
|
||||
}
|
||||
if (checked) {
|
||||
if (cam.second.enabled && current.indexOf('C') !== -1) {
|
||||
if (c.indexOf('black') !== -1) {
|
||||
if (other === '') {
|
||||
c = cfg.cmd.black_forward;
|
||||
}
|
||||
else if (current.indexOf('C') !== -1) {
|
||||
if (other == cfg.cmd.camera_forward) {
|
||||
c = cfg.cmd.black_forward;
|
||||
}
|
||||
else if (other === cfg.cmd.camera_backward) {
|
||||
c = cfg.cmd.black_backward;
|
||||
}
|
||||
}
|
||||
else if (current.indexOf('P') !== -1) {
|
||||
$(elem).prop('checked', false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (cam.second.enabled && current.indexOf('C') !== -1) {
|
||||
if (c === cfg.cmd.camera_forward) {
|
||||
if (other === cfg.cmd.camera_second_forward) {
|
||||
c = cfg.cmd.cameras_forward;
|
||||
|
@ -254,7 +293,27 @@ class Grid {
|
|||
seq.set(x, c);
|
||||
}
|
||||
else {
|
||||
if (cam.second.enabled && current.indexOf('C') !== -1) {
|
||||
if (c.indexOf('black') !== -1) {
|
||||
if (current === 'BF' || current === 'BB') {
|
||||
if (other === cfg.cmd.camera_forward) {
|
||||
c = cfg.cmd.camera_forward;
|
||||
}
|
||||
else if (other === cfg.cmd.camera_backward) {
|
||||
c = cfg.cmd.camera_backward;
|
||||
}
|
||||
}
|
||||
else if (current.indexOf('P') !== -1) {
|
||||
$(elem).prop('checked', false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (other === 'black' && current === cfg.cmd.camera_forward) {
|
||||
c = '';
|
||||
}
|
||||
else if (other === 'black' && current === cfg.cmd.camera_backward) {
|
||||
c = '';
|
||||
}
|
||||
else if (cam.second.enabled && current.indexOf('C') !== -1) {
|
||||
if (current === cfg.cmd.cameras_forward) {
|
||||
if (other === cfg.cmd.camera_second_forward) {
|
||||
c = cfg.cmd.camera_second_forward;
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -47,10 +47,19 @@ class Sequence {
|
|||
log.info('Sequence stopped', 'SERIAL', true);
|
||||
timeStr = (arg.ms < 2000) ? `${arg.ms}ms` : humanizeDuration(arg.ms);
|
||||
gui.notify(`SEQUENCE`, `Sequence finished in ${timeStr}`);
|
||||
if (capper.enabled && this.arr.some(this.hasCapper)) {
|
||||
$('#cmd_capper_off').addClass('active');
|
||||
$('#cmd_capper_on').removeClass('active');
|
||||
}
|
||||
}
|
||||
}
|
||||
return event.returnValue = true;
|
||||
}
|
||||
hasCapper(el) {
|
||||
if (['BF', 'BB'].indexOf(el.cmd) !== -1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
progress(step, loop) {
|
||||
const elem = $('.progress-bar');
|
||||
const len = this.arr.length;
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -127,12 +127,11 @@ var init = async function () {
|
|||
if (dev && dev.connected && dev.connected.projector_second) {
|
||||
proj2 = require('proj')(arduino, cfg, mainWindow.webContents, filmout, true)
|
||||
}
|
||||
|
||||
if (dev && dev.connected && dev.connected.capper) {
|
||||
capper = require('capper')(arduino, cfg, mainWindow.webContents, filmout, true)
|
||||
}
|
||||
|
||||
cmd = require('cmd')(cfg, proj, cam, light, cam2, proj2)
|
||||
|
||||
cmd = require('cmd')(cfg, proj, cam, light, cam2, proj2, capper)
|
||||
seq = require('sequencer')(cfg, cmd, mainWindow.webContents)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# compile main process code
|
||||
cd ..
|
||||
npm run compile
|
||||
|
|
|
@ -19,7 +19,7 @@ class Capper {
|
|||
queue : any = {};
|
||||
lock : boolean = false;
|
||||
id : string = 'capper';
|
||||
state : boolean = true;
|
||||
state : boolean = false;
|
||||
|
||||
constructor () {
|
||||
|
||||
|
@ -30,11 +30,15 @@ class Capper {
|
|||
}
|
||||
|
||||
public enable () {
|
||||
$('.capper').addClass('on');
|
||||
enabled = true
|
||||
$('.black').addClass('on');
|
||||
$('#cmd_black_forward').parent().removeClass('hide');
|
||||
$('#cmd_black_backward').parent().removeClass('hide');
|
||||
$('#cmd_capper_on').parent().removeClass('hide');
|
||||
$('#cmd_capper_off').parent().removeClass('hide');
|
||||
this.enabled = true;
|
||||
}
|
||||
|
||||
public set (state : boolean, callback : Function) {
|
||||
public capper (state : boolean, callback : Function) {
|
||||
let obj : CapperEvent;
|
||||
|
||||
if (this.lock) {
|
||||
|
@ -54,6 +58,15 @@ class Capper {
|
|||
|
||||
this.queue[obj.id] = obj;
|
||||
this.lock = true;
|
||||
this.state = state;
|
||||
|
||||
if (state) {
|
||||
$('#cmd_capper_on').addClass('active');
|
||||
$('#cmd_capper_off').removeClass('active');
|
||||
} else {
|
||||
$('#cmd_capper_off').addClass('active');
|
||||
$('#cmd_capper_on').removeClass('active');
|
||||
}
|
||||
}
|
||||
|
||||
public end (c : string, id : string, ms : number) {
|
||||
|
|
|
@ -81,12 +81,6 @@ class Devices {
|
|||
}
|
||||
//devices.profile(arg.profile)
|
||||
}
|
||||
|
||||
seq.set(0, cfg.cmd.camera_forward);
|
||||
seq.set(1, cfg.cmd.projector_forward);
|
||||
grid.state(0);
|
||||
grid.state(1);
|
||||
seq.stats();
|
||||
|
||||
if (arg.projector_second) {
|
||||
//add second row of projector pads to grid
|
||||
|
@ -97,8 +91,16 @@ class Devices {
|
|||
cam.second.enable();
|
||||
}
|
||||
if (arg.capper) {
|
||||
//add capper features to grid
|
||||
capper.enable();
|
||||
}
|
||||
|
||||
seq.set(0, cfg.cmd.camera_forward);
|
||||
seq.set(1, cfg.cmd.projector_forward);
|
||||
grid.state(0);
|
||||
grid.state(1);
|
||||
seq.stats();
|
||||
|
||||
return event.returnValue = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,9 @@ let grid : Grid;
|
|||
*******/
|
||||
class Grid {
|
||||
private swatchesElem : any = {};
|
||||
private projector_cmds : string[] = [
|
||||
'PF', 'PB', 'P2F', 'P2B', 'PPF', 'PPB'
|
||||
];
|
||||
constructor () {
|
||||
|
||||
}
|
||||
|
@ -40,8 +43,9 @@ class Grid {
|
|||
const step : Step = seq.grid[x];
|
||||
let className : string;
|
||||
let className2 : string;
|
||||
|
||||
elem.prop('checked', false);
|
||||
if (typeof step !== 'undefined') {
|
||||
elem.prop('checked', false);
|
||||
if (step.cmd === cfg.cmd.cameras_forward) {
|
||||
className = cfg.cmd.camera_forward;
|
||||
className2 = cfg.cmd.camera_second_forward;
|
||||
|
@ -67,6 +71,12 @@ class Grid {
|
|||
} else if (step.cmd === cfg.cmd.projector_backward_projector_second_forward) {
|
||||
className = cfg.cmd.projector_backward;
|
||||
className2 = cfg.cmd.projector_second_forward;
|
||||
} else if (step.cmd === cfg.cmd.black_forward) {
|
||||
className = cfg.cmd.camera_forward;
|
||||
className2 = 'black';
|
||||
} else if (step.cmd === cfg.cmd.black_backward) {
|
||||
className = cfg.cmd.camera_backward;
|
||||
className2 = 'black';
|
||||
} else {
|
||||
className = step.cmd;
|
||||
}
|
||||
|
@ -80,12 +90,17 @@ class Grid {
|
|||
lightElem.css('background', `rgb(${step.light})`)
|
||||
.addClass('a')
|
||||
.prop('title', `rgb(${seq.light})`);
|
||||
|
||||
} else {
|
||||
lightElem.css('background', 'transparent')
|
||||
.removeClass('a')
|
||||
.prop('title', '');
|
||||
}
|
||||
if (capper.enabled && this.projector_cmds.indexOf(step.cmd) !== -1) {
|
||||
$(`.black[x=${x}]`).addClass('disabled');
|
||||
} else if (capper.enabled) {
|
||||
$(`.black[x=${x}]`).removeClass('disabled');
|
||||
}
|
||||
|
||||
} else {
|
||||
lightElem.css('background', 'transparent')
|
||||
.removeClass('a')
|
||||
|
@ -142,6 +157,9 @@ class Grid {
|
|||
} else if (cmds[i] === 'light_set') {
|
||||
elem = `<div x="${x}" class="L"></div>`
|
||||
$(cmd).append($(elem));
|
||||
} else if (cmds[i] === 'black') {
|
||||
elem = `<input type="checkbox" x="${x}" class="black" />`;
|
||||
$(cmd).append($(elem));
|
||||
} else {
|
||||
elem = `<input type="checkbox" x="${x}" />`;
|
||||
$(cmd).append($(elem).addClass(cfg.cmd[cmds[i]]));
|
||||
|
@ -170,7 +188,20 @@ class Grid {
|
|||
current = seq.grid[x].cmd + ''; // cast to string, bad hack
|
||||
}
|
||||
if (checked) {
|
||||
if (cam.second.enabled && current.indexOf('C') !== -1) {
|
||||
if (c.indexOf('black') !== -1) {
|
||||
if (other === '') {
|
||||
c = cfg.cmd.black_forward;
|
||||
} else if (current.indexOf('C') !== -1) {
|
||||
if (other == cfg.cmd.camera_forward) {
|
||||
c = cfg.cmd.black_forward;
|
||||
} else if (other === cfg.cmd.camera_backward) {
|
||||
c = cfg.cmd.black_backward;
|
||||
}
|
||||
} else if (current.indexOf('P') !== -1) {
|
||||
$(elem).prop('checked', false);
|
||||
return;
|
||||
}
|
||||
} else if (cam.second.enabled && current.indexOf('C') !== -1) {
|
||||
if (c === cfg.cmd.camera_forward) {
|
||||
if (other === cfg.cmd.camera_second_forward) {
|
||||
c = cfg.cmd.cameras_forward;
|
||||
|
@ -198,7 +229,6 @@ class Grid {
|
|||
}
|
||||
} else if (proj.second.enabled && current.indexOf('P') !== -1) {
|
||||
if (c === cfg.cmd.projector_forward) {
|
||||
|
||||
if (current === cfg.cmd.projectors_backward) {
|
||||
c = cfg.cmd.projector_forward_projector_second_backward;
|
||||
} else if (current === cfg.cmd.projector_backward_projector_second_forward) {
|
||||
|
@ -209,7 +239,6 @@ class Grid {
|
|||
c = cfg.cmd.projector_forward_projector_second_backward;
|
||||
}
|
||||
} else if (c === cfg.cmd.projector_backward) {
|
||||
|
||||
if (current === cfg.cmd.projectors_forward) {
|
||||
c = cfg.cmd.projector_backward_projector_second_forward;
|
||||
} else if (current === cfg.cmd.projector_forward_projector_second_backward) {
|
||||
|
@ -220,7 +249,6 @@ class Grid {
|
|||
c = cfg.cmd.projectors_backward;
|
||||
}
|
||||
} else if (c === cfg.cmd.projector_second_forward) {
|
||||
|
||||
if (current === cfg.cmd.projectors_backward) {
|
||||
c = cfg.cmd.projector_backward_projector_second_forward;
|
||||
} else if (current === cfg.cmd.projector_forward_projector_second_backward) {
|
||||
|
@ -231,7 +259,6 @@ class Grid {
|
|||
c = cfg.cmd.projector_backward_projector_second_forward;
|
||||
}
|
||||
} else if (c === cfg.cmd.projector_second_backward) {
|
||||
|
||||
if (current === cfg.cmd.projectors_forward) {
|
||||
c = cfg.cmd.projector_forward_projector_second_backward;
|
||||
} else if (current === cfg.cmd.projector_backward_projector_second_forward) {
|
||||
|
@ -245,7 +272,22 @@ class Grid {
|
|||
}
|
||||
seq.set(x, c);
|
||||
} else {
|
||||
if (cam.second.enabled && current.indexOf('C') !== -1) {
|
||||
if (c.indexOf('black') !== -1) {
|
||||
if (current === 'BF' || current === 'BB') {
|
||||
if (other === cfg.cmd.camera_forward) {
|
||||
c = cfg.cmd.camera_forward;
|
||||
} else if (other === cfg.cmd.camera_backward) {
|
||||
c = cfg.cmd.camera_backward;
|
||||
}
|
||||
} else if (current.indexOf('P') !== -1) {
|
||||
$(elem).prop('checked', false);
|
||||
return;
|
||||
}
|
||||
} else if (other === 'black' && current === cfg.cmd.camera_forward) {
|
||||
c = '';
|
||||
} else if (other === 'black' && current === cfg.cmd.camera_backward) {
|
||||
c = '';
|
||||
} else if (cam.second.enabled && current.indexOf('C') !== -1) {
|
||||
if (current === cfg.cmd.cameras_forward) {
|
||||
if (other === cfg.cmd.camera_second_forward) {
|
||||
c = cfg.cmd.camera_second_forward;
|
||||
|
|
|
@ -71,11 +71,21 @@ class Sequence {
|
|||
log.info('Sequence stopped', 'SERIAL', true);
|
||||
timeStr = ( arg.ms < 2000 ) ? `${arg.ms}ms` : humanizeDuration(arg.ms);
|
||||
gui.notify(`SEQUENCE`, `Sequence finished in ${timeStr}`);
|
||||
if (capper.enabled && this.arr.some(this.hasCapper)) {
|
||||
$('#cmd_capper_off').addClass('active');
|
||||
$('#cmd_capper_on').removeClass('active');
|
||||
}
|
||||
}
|
||||
}
|
||||
return event.returnValue = true;
|
||||
}
|
||||
|
||||
private hasCapper (el : any) {
|
||||
if (['BF', 'BB'].indexOf(el.cmd) !== -1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private progress (step : number, loop : number) {
|
||||
const elem : any = $('.progress-bar');
|
||||
const len : number = this.arr.length;
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
"momentary": 0
|
||||
},
|
||||
"black": {
|
||||
"before": 0,
|
||||
"after": 0
|
||||
"before": 100,
|
||||
"after": 100
|
||||
},
|
||||
"light": false
|
||||
},
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
"momentary": 0
|
||||
},
|
||||
"black": {
|
||||
"before": 0,
|
||||
"after": 0
|
||||
"before": 100,
|
||||
"after": 100
|
||||
},
|
||||
"light": false
|
||||
},
|
||||
|
|
|
@ -65,17 +65,17 @@ class Capper {
|
|||
} catch (err) {
|
||||
this.log.error(err);
|
||||
}
|
||||
|
||||
return await this.end(cmd, id, ms);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private async listener (event : any, arg : any) {
|
||||
if (typeof arg.capper !== 'undefined') {
|
||||
if (typeof arg.state !== 'undefined') {
|
||||
try {
|
||||
await this.capper(arg.capper, arg.id)
|
||||
await this.capper(arg.state, arg.id)
|
||||
} catch (err) {
|
||||
this.log.error(err)
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@ class Commands {
|
|||
private cam2 : any;
|
||||
private proj2 : any;
|
||||
|
||||
private capper : any;
|
||||
|
||||
private cfg : any;
|
||||
private ipc : any;
|
||||
|
||||
|
@ -26,15 +28,16 @@ class Commands {
|
|||
* @param {object} proj2 {optional} Projector 2
|
||||
**/
|
||||
|
||||
constructor (cfg : any, proj : any, cam : any, light : any, cam2 : any = null, proj2 : any = null) {
|
||||
constructor (cfg : any, proj : any, cam : any, light : any, cam2 : any = null, proj2 : any = null, capper : any = null) {
|
||||
this.cfg = cfg;
|
||||
this.proj = proj;
|
||||
this.cam = cam;
|
||||
this.light = light;
|
||||
|
||||
if (cam2) this.cam2 = cam2;
|
||||
if (proj2) this.proj2 = proj2;
|
||||
|
||||
if (cam2 !== null) this.cam2 = cam2;
|
||||
if (proj2 !== null) this.proj2 = proj2;
|
||||
if (capper !== null) this.capper = capper;
|
||||
|
||||
this.ipc = require('electron').ipcMain;
|
||||
}
|
||||
|
||||
|
@ -111,18 +114,25 @@ class Commands {
|
|||
public async black_forward () {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let ms : number;
|
||||
let ms : number = 0;
|
||||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id); //make sure set to off
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam.move();
|
||||
ms += await this.cam.move();
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(false, id);
|
||||
}
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
|
@ -163,18 +173,24 @@ class Commands {
|
|||
public async black_backward () {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let ms : number;
|
||||
let ms : number = 0;
|
||||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
}
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id); //make sure set to off
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam.move();
|
||||
ms += await this.cam.move();
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(false, id);
|
||||
}
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
|
@ -575,6 +591,6 @@ class Commands {
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = function (cfg : any, proj : any, cam : any, light : any, cam2 : any, proj2 : any) {
|
||||
return new Commands(cfg, proj, cam, light, cam2, proj2);
|
||||
module.exports = function (cfg : any, proj : any, cam : any, light : any, cam2 : any, proj2 : any, capper : any) {
|
||||
return new Commands(cfg, proj, cam, light, cam2, proj2, capper);
|
||||
}
|
|
@ -403,7 +403,7 @@ class Devices {
|
|||
let d : any
|
||||
let cs : any = {}
|
||||
let ps : any = {}
|
||||
let capper : any;
|
||||
let capper : any = {}
|
||||
let checklist : any[] = []
|
||||
|
||||
this.connected = {
|
||||
|
@ -448,17 +448,15 @@ class Devices {
|
|||
l.arduino = this.connected.light
|
||||
|
||||
if (this.connected.camera_second) {
|
||||
cs = { arduino : this.connected.camera_second }
|
||||
cs.arduino = this.connected.camera_second
|
||||
}
|
||||
|
||||
if (this.connected.projector_second) {
|
||||
ps = { arduino : this.connected.projector_second }
|
||||
ps.arduino = this.connected.projector_second
|
||||
}
|
||||
|
||||
if (this.connected.capper) {
|
||||
capper = { arduino : this.connected.capper }
|
||||
} else {
|
||||
await this.fakeCapper()
|
||||
capper.arduino = this.connected.capper
|
||||
}
|
||||
|
||||
if (this.settings.state.camera && this.settings.state.camera.intval) {
|
||||
|
@ -514,7 +512,7 @@ class Devices {
|
|||
}
|
||||
}
|
||||
|
||||
if (capper) {
|
||||
if (capper && capper.arduino) {
|
||||
args.capper = capper
|
||||
this.mainWindow.setSize(800, 800)
|
||||
this.settings.update('capper', capper)
|
||||
|
|
Loading…
Reference in New Issue