Commit Graph

506 Commits

Author SHA1 Message Date
mmcwilliams 23d663c3e7 Create digital.ts and devices.ts. Begin rewriting devices as-is and then refactor the existing digital features into digital.ts. Gonna rename, screw it. 2019-06-18 15:19:57 -04:00
mmcwilliams 1e2b542e4c Begin refactoring devices.js and create a new digital.js lib for the film-out features. Maybe think of renaming now, before it hurts. 2019-06-18 15:18:08 -04:00
mmcwilliams 5cd6b22ea4 Only use webview in full screen mode for now on all platforms. EOG is trickier and flickers the entire screen into view between frames, which is unsettling. Will look for a lower-level solution than webviews, but works for now. Also, uses real fullscreen on macOS instead of just maximizing the window. 2019-06-18 13:47:55 -04:00
mmcwilliams 32f02d42ce During the film out mode, the webview now correctly handles "closed" events when the user manually closes the window. The window also now closes at the end of a sequence (caught a typo) and correctly removed the webview from the WebView object when it does not exist. Resolves #15 2019-06-18 13:35:50 -04:00
mmcwilliams 7740dc39ec Include in last commit 2019-06-15 11:06:57 -04:00
mmcwilliams 07940bc2c6 All film out work from Friday. Re-structure the display module into 3 classes instead of a mess of functions. 2019-06-15 11:06:39 -04:00
mmcwilliams 7c43f2de2c Add the film out screen and begin styling. 2019-06-15 11:05:29 -04:00
mmcwilliams 39e6ab5247 Update all modules, and update gulpfile to gulp4 syntax. 2019-06-14 13:11:28 -04:00
mmcwilliams 76c7b49142 Import delay and add comments to digital. Starting work on film-out improvements. 2019-06-14 12:00:22 -04:00
mmcwilliams 5b418aeccd Camera module imports intval class properly. 2019-06-14 11:59:47 -04:00
mmcwilliams b5fbe0153b Refactor intval module into Typescript. 2019-06-14 11:58:35 -04:00
mmcwilliams 3aeb971b4d Merge remote-tracking branch 'origin/master' 2019-06-14 11:31:13 -04:00
mmcwilliams dab5c34bad stash progress 2019-06-14 11:29:52 -04:00
mmcwilliams 596832119b Uninstall node-media-server. What was I thinking? Oh yeah, I wasn't. Instead of using the system to pipe an RTMP stream to nms, I'm just going to use electron's built in navigator.getUserMedia or somesuch. Silly of me. 2019-06-11 16:30:44 -04:00
mmcwilliams 6442d99817 Update delay, exec and exit usage and require statments. 2019-06-08 21:43:14 -04:00
mmcwilliams e3d213e4f1 Ported ffmpeg, ffprobe, exit and exec modules to typescript 2019-06-08 20:51:00 -04:00
mmcwilliams c169b7fbae Update mscript tests. Increase coverage. 2019-05-28 22:40:50 -04:00
mmcwilliams d8e5e4521a Increment patch number. Commit 418670ce33 resolves #14; 2019-05-28 17:53:23 -04:00
mmcwilliams 418670ce33 Time a sequence and pass back value of milliseconds back when sequence stops. 2019-05-28 17:48:42 -04:00
mmcwilliams 8ddc6e5a20 Promisify gui.notify. Will not run it synchronously, but is nice to have. 2019-05-28 17:47:39 -04:00
mmcwilliams f015a6f2c5 Display the time of the completed sequence when passed from main process. 2019-05-28 17:46:53 -04:00
mmcwilliams 1fd3b83ca1 Mscript does not need a callback. Remove from compile() method 2019-05-28 17:42:42 -04:00
mmcwilliams da6fef6080 Notify on mock device connectio 2019-05-28 17:41:39 -04:00
mmcwilliams 9a0ebcca06 cfg has latest version number 2019-05-28 17:41:23 -04:00
mmcwilliams 93144322db Re-writing mscript tests. 2019-05-28 17:40:59 -04:00
mmcwilliams 02ca59ea7e Removed the "undefined" lines from occurring. Code is a mess, but won't break anything else... for now. 2019-05-28 14:10:00 -04:00
mmcwilliams ce226a7f86 Calculate stats on device.ready 2019-05-28 13:41:25 -04:00
mmcwilliams 4ea390897a Refactored seq.js to Typescript and fixed stats for 1 cam 1 proj. Will need further work to add in multiple devices. Resolves #6. 2019-05-28 13:33:16 -04:00
mmcwilliams c942d89572 Wire goto button on projector 2 and camera 2 to cmd.projector_second_to and cmd.camera_second_to. Resolves #9 2019-05-28 12:52:50 -04:00
mmcwilliams d0cc8eca70 GOTO counter error on projector 2 was due to a CSS error. Resolved #8. Increment patch number. 2019-05-28 12:28:45 -04:00
mmcwilliams 2e8d20f40a Update comments on devices module. 2019-05-28 12:16:01 -04:00
mmcwilliams 5c9091d957 Can't reproduce issue #13. Appeared on installation of unknown version. Close #13 for now. 2019-05-28 10:33:31 -04:00
mmcwilliams 1b3f554492 Caught the "to sequence" bug. Had not fully updated code. Resolves #5 2019-05-28 10:15:57 -04:00
mmcwilliams 67a009ae8d Increment patch to reflect changes that resolved issue 3 2019-05-28 09:15:29 -04:00
mmcwilliams 39301f5b59 FOUND THE BUG causing #3. Mscript still needs full conversion to typescript. This would have been caught on compile. Resolves #3, create a new issue for mscript refactor. 2019-05-28 09:06:59 -04:00
mmcwilliams ab8d7f57e9 Add a mocha-style test for mscript, related to issue #3 2019-05-28 09:02:55 -04:00
mmcwilliams abaeb1cbda Update loop progress styles 2019-04-27 22:28:23 -04:00
mmcwilliams e15d03a536 Semicolon 2019-04-20 19:52:26 -04:00
mmcwilliams ad558608ee All remaining dual projector, dual camera work. 2019-04-20 10:15:28 -04:00
mmcwilliams 1a612376cb Grid works for dual projectors. cam needs to be examined. 2019-04-20 10:15:01 -04:00
mmcwilliams a241ef0a2a Update config 2019-04-20 10:14:22 -04:00
mmcwilliams 687e1887ee Grid is reasonably functional with dual projectors. 2019-04-19 22:55:57 -04:00
mmcwilliams 5e0947d343 As much as I could do. Still doesn't work. Last commit. 2019-04-18 21:58:11 -04:00
mmcwilliams 88e470c5ac Installed 2019-04-16 14:36:55 -04:00
mmcw-dev bb2bfabf9c 2 2019-04-16 10:01:54 -04:00
mmcw-dev b33ef36ab4 Work on multiple device UI 2019-04-16 10:01:42 -04:00
mmcw-dev ed14564de7 Fix issue of false positives on detecting second cmaeras and projectors 2019-04-15 16:15:34 -04:00
mmcw-dev 9603f82c49 Use mocha for testing, instead of qunit 2019-04-15 16:14:07 -04:00
mmcw-dev 52aac3f8b0 Settings module restores state to a default on "restore" 2019-04-15 16:13:28 -04:00
mmcw-dev 4f7dd92311 Update the silent log methods to return false. 2019-04-15 16:11:18 -04:00
mmcw-dev 265f383f65 Create new tests for mocha and chai 2019-04-15 15:10:29 -04:00
mmcw-dev 11b389172c Stash old tests 2019-04-15 15:08:28 -04:00
mmcw-dev dac70a122f Begin testing with mocha and chai. 2019-04-15 13:07:47 -04:00
mmcwilliams 7a52bc7c6e Secondary projector and secondary camera behaviors have been added to the main process. This is not represented in the UI... yet. All renderer code is still in flux. 2019-04-04 18:49:07 -04:00
mmcwilliams 18c515402e Installed on mac and ran build on mac. Works! 2019-04-04 01:07:30 -04:00
mmcwilliams cda100b3e6 Electron build works again on debian-based linux. 2019-04-03 18:58:13 -04:00
mmcwilliams 63e42f2dd3 Need to install request now, locally, for latest electron build. 2019-04-03 18:54:37 -04:00
mmcw-dev d995a4800d Update install process. 2019-04-02 11:11:26 -04:00
mmcwilliams 96754fcf49 Work on progress bar. 2019-04-02 10:21:01 -04:00
mmcwilliams d1480181b3 Remove exasperated comment. 2019-04-01 11:07:25 -04:00
mmcwilliams d6fd83762e Remove mcopy.state.camera and mcopy.state.projector. 2019-03-31 15:13:21 -04:00
mmcwilliams 7d2033db3d Remove comment containing documentation for the dialog.showMessageBox method from electron. That API is ever-evolving and it's best to rely on their published docs. 2019-03-31 12:13:15 -04:00
mmcwilliams 072c67fd0f Update counters. Use local state within objects cam and proj instead of mcopy.state 2019-03-30 20:29:01 -04:00
mmcwilliams 3e5bda77db Move docs generation to host repo 2019-03-30 17:56:31 -04:00
mmcwilliams 1510762fbb Sequencer uses class variables that are either set using arguments passed from the renderer, or uses the variables named "grid" referring to the grid.js gui. 2019-03-29 20:44:12 -04:00
mmcwilliams 429e66717d Files from previous commit 2019-03-24 00:25:16 -04:00
mmcwilliams c129739394 Sequence module is controlled from the UI. Everything runs in the main.js on the main process. The DOM changes when ipc messages are sent from the sequence module to the render process. 2019-03-24 00:24:39 -04:00
mmcwilliams 43ee0d0672 Sequence now runs entirely in the main process. Renderer no longer stores the sequence, it is a for loop inside the main process. 2019-03-23 21:58:22 -04:00
mmcwilliams e35c41791b Create a system lib that can be used in the UI and cli. 2019-03-22 20:29:36 -04:00
mmcwilliams b02b92c1c7 Update version across the repo. 2019-03-22 20:29:09 -04:00
mmcwilliams 74e6b9c1b2 Install systeminformation module. This will allow a cross platform solution that doesnt use the electron api for enumerating displays 2019-03-22 19:53:44 -04:00
mmcwilliams f09ada2cd2 Build and version the package json files on each npm run build 2019-03-22 19:52:21 -04:00
mmcwilliams 42691c1577 All work on grid + sequencer rewrite. 2019-03-22 17:06:57 -04:00
mmcwilliams cfbeeb3ce9 Add a pause button that is hidden by default. 2019-03-22 17:04:29 -04:00
mmcwilliams dcca364b78 Update to electron 4. Updated electron-rebuild and electron-packager. Removed sqlite because it is currently unused and takes forever to rebuild. Originally intended to store timings of actions to optimize performance. Putting those plans on ice for now. 2019-03-22 17:01:54 -04:00
mmcwilliams 553d2bbb0d Made progress on sequencer module, renamed from sequence. 2019-03-22 04:33:53 -04:00
mmcwilliams 425dd9fd6a Initial updates to sequence module. Will try to simplify into a for loop, but if tests fail will re-write to a similar form as the renderer seq.js module 2019-03-22 03:22:33 -04:00
mmcwilliams c436406e9e Add todo in grid.js. This will be the biggest change in the rewrite. All ui/cmd.js commands must be re-written to be entirely ipc based and then all seq commands will be re-written to be ipc based as well. 2019-03-22 03:15:43 -04:00
mmcwilliams 52e6431d65 Rename seq.cmd object keys to new full-length strings 2019-03-22 03:14:16 -04:00
mmcwilliams ddb33e7f35 Require the Commands module as cmd in main.js 2019-03-22 03:13:46 -04:00
mmcwilliams 3dcfa708d2 Add shortened commands to the cfg.json file 2019-03-22 03:12:42 -04:00
mmcwilliams aff3678daf Rename "RUN" button to "START" to match internal terminology and make it clearer to me. 2019-03-22 03:12:04 -04:00
mmcwilliams 4356abc820 Disable light from the UI if necessary. Kind of circuitous, will refactor. 2019-03-21 22:55:12 -04:00
mmcwilliams 41a5fd087d Last work on display for tonight. Add a boolean attribute "opened" to re-open the digitalWindow if closed. 2019-03-21 22:54:49 -04:00
mmcwilliams 742adccf34 Took a tiny detour on the film out feature, or "digital projector". This now avoids showing a browser window fullscreen on mac, which is having performance issues when opening and then running sequences. There is a major source of lag, seemingly coming from the camera? Need to test with fake projector to see if there's a problem with the arduino lib. 2019-03-21 22:33:30 -04:00
mmcwilliams 97f1464106 Print the current active version into the mcopy.state object 2019-03-21 21:32:33 -04:00
mmcwilliams 0ff1b5ff7d Refactor display module into typescript 2019-03-21 21:18:13 -04:00
mmcwilliams d264429726 Create new doc files for new libs or ones with jsdoc 2019-03-21 21:03:03 -04:00
mmcwilliams 65ba1f8c18 Add new grid file 2019-03-21 21:02:41 -04:00
mmcwilliams 48e8415ee4 Rename all keys to full "camera_" vs "cam_" and "projector_" vs "proj_" for consistency across the app.
Successfully separate and refactor gui.grid object to gui.
2019-03-21 21:02:28 -04:00
mmcwilliams e5a1654341 Use local id string so that duplicate instances of the classes can talk to one another. 2019-03-21 19:45:48 -04:00
mmcwilliams 6d1e9ec78f Print state for now. Need to store position in it? Make resetting it simple. 2019-03-21 19:36:37 -04:00
mmcwilliams fe046027da In camera and projector modules, for both main and renderer, use a string id to bind ipc paths and set up the ability to then have multiple of the proj, cam or even light class. Need to do light. 2019-03-21 19:34:56 -04:00
mmcwilliams 600a0abc72 Create and install main process lib to control the cmd.js module 2019-03-21 19:33:01 -04:00
M McWilliams 7a87ac924a Windows install seems to swap some https/http calls ins package-lock.json. Fascinating. 2019-03-21 18:14:53 -04:00
mmcwilliams 7ce3fa854a Remove dev object and replace with new devices module. Log an error on failure to enumerate devices that isn't caught within the method. 2019-03-21 18:09:14 -04:00
mmcwilliams 82e10bb4a4 Increment minor version. This marks the "feature complete" refactor of the core functionality in typescript using classes instead of objects in the main.js process.
Also, install the new devices module that was refactored into a class from an object. This has been tested with firmware, but additional development on this minor version will pull more UI elements into the main process. This will allow a CLI app to be created more efficiently and kept in sync with the rest of the project. Interface with the firmware will be expanded to control multiple projectors or multiple cameras in the next minor version.
2019-03-21 18:08:24 -04:00
mmcwilliams fc3cc96cd8 Use the import Log = require() method of including log lib. This is cleaner and easier to read when parsing dependencies. 2019-03-21 18:03:53 -04:00
mmcwilliams 478799965e Update log format, remove timestamp and use file "mcopy.log" in mcopy dir, not mcopy-cli. 2019-03-21 18:01:41 -04:00
mmcwilliams 099cd3052a Refactor settings into Typescript class module.
Refactor devices into Typescript class module from object.
2019-03-21 18:00:34 -04:00