Commit Graph

799 Commits

Author SHA1 Message Date
mmcwilliams cc41b75130 FFMPEG not working yet 2020-04-24 22:12:56 -04:00
mmcwilliams f929ea2cc2 No, use ffmpeg-static and ffprobe-static but explcitly whitelist the node_modules bin folder where the binaries actually sit 2020-04-24 17:22:58 -04:00
mmcwilliams d4987ed3a3 Replace ffmpeg-static and ffprobe-static with ffmpeg-static-electron and ffprobe-static-electron. These will allow for packaging ffmpeg and ffprobe binaries that can be accessed from within the build. The path replace string hacks weren't cutting it. 2020-04-24 16:01:09 -04:00
mmcwilliams da00c62db3 FFMPEG and FFPROBE need to be stored unpacked in asar for build. 2020-04-24 15:09:51 -04:00
sixteenmillimeter 55c460fbb4 Install new frame module in electron app package 2020-04-24 14:46:05 -04:00
sixteenmillimeter 01cac728f5 Remove ImageMagick dependency. Replace sharp with jimp (prevent linux build issues). Jimp will also perform the same composite step as convert was. Light module is still disabled globally. 2020-04-24 14:33:58 -04:00
sixteenmillimeter 8d5663d3a2 Drop unnecessary console.dir statement 2020-03-09 15:58:36 -04:00
sixteenmillimeter 1c940d6df7 Display export progress and time estimate while all frames are being exported 2020-03-09 15:46:06 -04:00
sixteenmillimeter e25a8bbc7c Use the gui.confirm dialog and not the native confirm function. 2020-02-21 16:58:35 -05:00
sixteenmillimeter d70de98256 Pre-export all frames in video (with confirmation dialog). Greatly improves sequence times and reliablity in conjunction with last commit. Resolves #36 and resolves #39. 2020-02-21 13:34:22 -05:00
sixteenmillimeter aec3e29476 Wait until image is loaded in a temp element and then report back to main process using ipc. This uses the "display_load" ipc channel to call back to the Display class and resolve a promise made in the .show() method. Resolves #38. 2020-02-21 02:28:26 -05:00
sixteenmillimeter 32fe873707 Allow for longer videos by using longer padded numbers for sequences 2020-02-21 01:58:56 -05:00
sixteenmillimeter 549cd3cc04 1.5.2 changes. Build includes code not in repo :( 2020-01-21 11:38:50 -05:00
sixteenmillimeter 8dc955a5e7 FFprobe added as static binary. Needed for filmout feature. 2020-01-20 11:51:15 -05:00
sixteenmillimeter ed75924e24 Filmout release 1.5.0. 2020-01-20 01:37:38 -05:00
sixteenmillimeter 49ba9a090b Turn off light feature for all cfgs. None support it. 2020-01-20 01:20:56 -05:00
sixteenmillimeter 691e741d70 Add check for convert. Never used. 2020-01-20 01:15:20 -05:00
sixteenmillimeter 35b8b0def2 Fixed some counter confusion. Setting the primary and secondary projectors with correct variables. 2020-01-19 01:39:57 -05:00
mmcwilliams 529c275c0f Filmout needed update in use of dialog class. ffmpeg-static needed to reference the required module, not .path 2020-01-19 00:36:58 -05:00
mmcwilliams d604f2aab5 Resolved #28 issues with color selection in the GUI. Performing final tests before 1.5 release. On release will use new repo tagging methods and will build more frequently. 2020-01-14 12:48:15 -05:00
mmcwilliams b0c7e4eed4 Created a new, custom superior log format with timestamps and "splat()" objects. Tired of parsing json from logfiles for analysis. Now can easily grep through logfiles. 2020-01-14 11:51:25 -05:00
mmcwilliams c6d0256929 Compile renderer js with tsconfig.json file. Add maps. 2020-01-10 16:43:12 -05:00
mmcwilliams 4d022883ff Update cfg files 2020-01-09 20:19:13 -05:00
sixteenmillimeter b595225870 Increment patch to 1.4.20 2020-01-09 18:43:16 -05:00
sixteenmillimeter fc2593c6ee Resolves #34. Added delay lib to renderer and added a magic delay before ending devices.ready(). Just works. Move on and don't question it. 2020-01-09 18:06:18 -05:00
sixteenmillimeter 4c0aa4220c Log with "simple" format, no more json in the console. 2020-01-09 18:05:10 -05:00
mmcwilliams 42621bbf71 Devices discovery WIP 2020-01-05 12:40:38 -05:00
mmcwilliams 4c8c2b66f3 Serialport library was updated and changed to Promise-based returns from callbacks as was being used in the arduino lib. 2019-12-18 17:17:48 -05:00
mmcwilliams c6ebab4032 Post upgrade, log library needs to be upgraded to support winston 3.x API 2019-12-18 16:05:58 -05:00
mmcwilliams 4461670e14 Fixes security concerns. Resolves #24 and #27 2019-12-16 19:25:51 -05:00
mmcwilliams 8e4c32073a Sequencer now blocks system sleep while running a sequence. Made me upset last night when it happened during a filmout and I shot 1000 frames of black. Resolves #26 2019-10-04 14:36:26 -04:00
sixteenmillimeter ac1da17b8d Handle different aspect ratio images and screens. Add additional counts on fields and thicken lines. Resolves #19 2019-08-25 15:54:50 -04:00
sixteenmillimeter 9b2ed018bf If filmout picture source is set, set the field guide to match the aspect ratio of the image. Right now that only works if ratio is lower than the screen. Need to add case in display.html that corrects for when screen ratio is lower than image ratio. 2019-08-25 15:26:43 -04:00
sixteenmillimeter 51acbdfd30 Add comments to filmout lib. 2019-08-25 14:59:39 -04:00
mmcwilliams 5ce0aed2ff Use module "ffmpeg-static" to use a binary of ffmpeg stored in node_modules, rather than rely on the system version. 2019-08-23 15:39:38 -04:00
sixteenmillimeter f0c28b8624 Properly count number of frames in animated gifs using `identify` from imagemagick because ffprobe was failing. 2019-08-15 15:25:33 -04:00
mmcwilliams 5f701ccecb Increment patch number. 2019-08-04 19:53:51 -04:00
mmcwilliams cfa22d3a1d Replace native js confirm() with a new gui.confirm() method that uses electrons "dialog" module. Resolves issue #25 2019-08-04 19:52:52 -04:00
mmcwilliams 1b83fe6937 Downgrade winston from 3 to 2 because it prints better in the console. Change all require statements to imports, requiring only what's used. 2019-08-04 19:38:45 -04:00
mmcwilliams 2ff98a2148 Refactor ffprobe into a class. Add jsdoc comments to all methods. 2019-08-04 18:04:06 -04:00
mmcwilliams 30c36baa9c Add comments and switch in logger module for console.log 2019-08-04 17:54:38 -04:00
mmcwilliams bd79025305 Refactored ffmpeg module into a class. Add a logger, not implemented. Not tested. 2019-08-04 17:42:27 -04:00
mmcwilliams 7c4e9d5823 Add jsdoc comments to ffmpeg lib. Also added types for tsc where they were implicit any type. Also added some semi-colons. Whoops. 2019-08-04 17:31:27 -04:00
mmcwilliams 5695bfd645 App was throwing error during filmout. Re-wrote the resizing logic so that if it can't find dimensions in the info, don't resize the image. This may lead to squashing, as I've seen in frameloom, but I suspect this problem is with the UI and the superfluous "USE FILE" button. 2019-08-04 17:20:45 -04:00
mmcwilliams c5f3c72f73 All workshop work. Freeze dev on mac and test on linux 2019-07-29 12:45:13 -04:00
mmcwilliams 7e05b5f680 Fix dual projector bug and increment patch. 2019-07-27 08:47:35 -04:00
mmcwilliams 741d4619ee Replace all references to dig with filmout 2019-07-27 08:39:39 -04:00
mmcwilliams 7c50b66499 Updated gui mscript lib to use .meta instead of .light when preparing an mscript sequence. 2019-07-26 19:59:16 -04:00
mmcwilliams 96d0897f65 Made a breaking change to the mscript module: light array is now the "meta" array to allow for types of commands other than camera movements to have associated metadata. The two driving motivations for this change are the proposed alert feature which will have a string message as its metadata and the proposed pause feature, which will have seconds as its metadata.
Updated tests as well. Still need to change behavior in the mscript.js gui lib.
2019-07-26 19:54:22 -04:00
mmcwilliams c01f3ceff8 Add jsdoc comments AND semi-colons to sequencer module. 2019-07-26 19:03:42 -04:00
mmcwilliams 4023704d31 Added missing jsdoc comment to method "fade_rgb". 2019-07-26 18:57:17 -04:00
mmcwilliams 798e9ce1a3 Fixed comments in system module to reflect the fact that dependency check happens by executing 'which {cmd}' and storing the response as the absolute path to the binary. If which returns a blank string, dependency is marked not present. 2019-07-26 18:31:22 -04:00
mmcwilliams 6612ffa6d1 Add jsdoc comments to cmd module 2019-07-26 18:30:10 -04:00
mmcwilliams 07100a588c Add jsdoc comments to remaining methods. 2019-07-26 18:12:06 -04:00
mmcwilliams 0b2d386ca2 Compile mscript with Typescript 2019-07-26 17:28:27 -04:00
mmcwilliams f0804fe23b Incorrectly bound counter to wrong device. 2019-07-24 22:00:53 -04:00
mmcwilliams 97591b1c1d Support gifs and stills in filmout 2019-07-24 22:00:23 -04:00
mmcwilliams b5da7ba233 Filmout supports still images. Uses FFMPEG to convert to png, still. Should use sharp and re-sample the image to the maximum allowed for the screen in the smallest dimension. 2019-07-07 00:02:01 -04:00
mmcwilliams 0f52812767 Add path to main GUI process 2019-07-07 00:00:45 -04:00
mmcwilliams 0d6c3e44b0 Rename "video" to "file" in UI 2019-07-07 00:00:33 -04:00
mmcwilliams 60147e3b0f Increment patch 2019-07-07 00:00:14 -04:00
mmcwilliams f8c64b45a7 Install sharp and animated-gif-detector 2019-07-06 19:53:03 -04:00
mmcwilliams 504912009b Increment patch number of version across the project. 2019-06-26 20:10:18 -04:00
mmcwilliams 084916c317 Preview a frame using the webview. Select monitor to display images on. Wooo! 2019-06-26 20:08:49 -04:00
mmcwilliams 073e778a3b Visual tweaks for linux 2019-06-26 18:03:54 -04:00
mmcwilliams b5465384ce Increment package version 2019-06-26 16:10:04 -04:00
mmcwilliams 45f96e6537 Give macOS an extra 300ms to open and fullscreen a webview 2019-06-26 16:09:14 -04:00
mmcwilliams f8fc9fded6 Fixed the siemen's star focusing screen with magic numbers. Better than it was before! 2019-06-26 16:07:00 -04:00
mmcwilliams f239f862e8 Fixed frame counting optimization, resolving issue #17. Also added a Siemens Star focusing screen, a middle gray metering screen and a field guide screen for use with the filmout feature. TODO: actually change monitors when selected. 2019-06-25 12:13:15 -04:00
mmcwilliams 872b46d4a5 Filmout display monitor size with stats 2019-06-24 21:11:14 -04:00
mmcwilliams ddfc46a48f Delete devices.js backup 2019-06-24 15:04:24 -04:00
mmcwilliams ad67e2f010 Add devices module after refactor 2019-06-24 14:31:26 -04:00
mmcwilliams 9331a766df Compiled 2019-06-24 13:25:34 -04:00
mmcwilliams 6b10e9c28d System module phones home 2019-06-24 12:42:27 -04:00
mmcwilliams d15fe37de5 Add a dependency check for the convert command 2019-06-24 11:37:07 -04:00
mmcwilliams 5014a2db38 Remove systeminformation module from system lib 2019-06-24 11:26:28 -04:00
mmcwilliams f3e885df35 Rename DOM elements filmout, instead of "video" 2019-06-24 11:20:08 -04:00
mmcwilliams 98a0eff503 Uninstall systeminformation, which was the original module being used to determine monitor stats. Now use the internal electron.screen module, which I was using originally? Yikes. 2019-06-22 12:07:07 -04:00
mmcwilliams 6cda9aed1d Beginnings of the film out display selection UI 2019-06-22 11:52:36 -04:00
mmcwilliams 9a464a2fcf Unsafe-eval was throwing an error on compile 2019-06-22 11:52:14 -04:00
mmcwilliams a4f8ffc3c6 Merge remote-tracking branch 'origin/master' 2019-06-22 10:49:36 -04:00
mmcwilliams 23a7896db9 Update version on lock file. 2019-06-20 14:39:05 -04:00
mmcwilliams e25054117f Only require join method from path. Don't need the whole dang thing. 2019-06-18 16:57:35 -04:00
mmcwilliams 2e4ef09a60 Apply new patch version everywhere. 2019-06-18 16:54:22 -04:00
mmcwilliams 717cf77e55 Rename all uses of the previously-named "digital" module to "filmout" in sequence module. Woo! Let's call that a patch. 2019-06-18 16:54:08 -04:00
mmcwilliams ede6fcdfb8 Rename all uses of the previously-named "digital" module to "filmout" in proj module. 2019-06-18 16:52:26 -04:00
mmcwilliams 6fcb85bca2 Remove unused "digital" attribute from camera state. 2019-06-18 16:50:28 -04:00
mmcwilliams 0cff7c5794 Rename all uses of the previously-named "digital" module to "filmout" in cam module. 2019-06-18 16:49:49 -04:00
mmcwilliams 9b17d5cd47 Meant to commit this as last commit. Oh well. 2019-06-18 16:48:54 -04:00
mmcwilliams 49f9f7f160 Display will now show a meter screen (middle grey) when instructed. Not wired to anything, got distracted by the re-naming shenanigans. 2019-06-18 15:47:17 -04:00
mmcwilliams 22187777e7 Remove node-side digital lib and replace with filmout lib. Still remaining: rename internal uses of "dig" or "digital" to "filmout", including markup on the frontend. 2019-06-18 15:42:30 -04:00
mmcwilliams 00b26719f6 Finish renaming UI files digital->filmout 2019-06-18 15:40:09 -04:00
mmcwilliams d6da1824cd Rename UI files 2019-06-18 15:25:28 -04:00
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
mmcwilliams ea91ea5ff5 Remove console logging from arduino lib. Reject or throw to log errors 2019-03-21 15:59:50 -04:00
mmcwilliams 6a31eda3c4 Add label to cam, light and proj module logging 2019-03-21 15:57:16 -04:00
mmcwilliams 91ee19f2ab Add correct alias strings to arduino lib 2019-03-21 15:56:33 -04:00
mmcwilliams c563bf0dd3 Add a label argument to the log module. 2019-03-21 15:54:55 -04:00
mmcwilliams 87d43fc15b Only use log module in main 2019-03-21 15:47:25 -04:00
mmcwilliams 94942d86f9 Remove log from UI. Just use console and write directly to system log. 2019-03-21 15:47:07 -04:00
mmcwilliams bfb9bcbbe4 All vars become consts to prevent redeclaration during this rewrite (and they should be that anyway) 2019-03-21 15:43:03 -04:00
mmcwilliams f5f23284a3 Uncomment digital state interaction in proj module 2019-03-21 15:31:17 -04:00
mmcwilliams 9472527c70 Merge broke the UI, whoops 2019-03-21 15:13:48 -04:00
mmcwilliams 6faf78b92e Merge remote-tracking branch 'origin/master' 2019-03-21 15:08:54 -04:00
mmcwilliams 1b6c56b2ad Sequence module compiled 2019-03-21 15:06:37 -04:00
mmcwilliams cf7664fb2a Remove objects cam, proj, light and replace with new modules 2019-03-21 15:02:54 -04:00
mmcwilliams 05d1bc3ae2 Refactor delay into typescript 2019-03-21 15:02:05 -04:00
mmcwilliams e9ccdfc191 Refactor light module into typescript-compiled class 2019-03-21 15:01:29 -04:00
mmcwilliams dc080b8566 Refactor proj module into typescript-compiled proj module. 2019-03-21 15:00:47 -04:00
mmcwilliams 56aba1eaba Refactor cam module into cam module. 2019-03-21 14:59:46 -04:00
mmcwilliams c276525d3a Refactor arduino library as a class, using Typescript now. 2019-03-21 14:58:52 -04:00
mmcwilliams fce259d29b Create a "digital" module, moving the "dig" object from the main.js process to it's own class. 2019-03-21 14:58:00 -04:00
mmcwilliams 2408456d47 Install cam, log and mscript modules. 2019-03-20 23:04:52 -04:00
mmcwilliams f2c2d6ce43 WIP wednesday 2019-03-20 18:37:00 -04:00
mmcwilliams 7f0ab0fee3 Layout all commands that need to be added for dual projector functionality. 2019-03-20 15:44:07 -04:00
mmcwilliams 4236651a09 Move all relevant code into comments 2019-03-20 15:33:51 -04:00
mmcwilliams fe85cc1b37 Re-write of the sequence module will require incorporating more moving parts than I anticipated. I will move forward with the temporary rewrite and then later focus on the long-term rewrite. 2019-03-20 15:30:45 -04:00
mmcwilliams d308b8a59e Merge remote-tracking branch 'origin/master' 2019-03-19 22:33:23 -04:00
mmcwilliams cc227e9a66 Rewrite seq.js front-end "module" as a main process module in the lib. Can be used by the CLI without a second rewrite. Remove all DOM logic, but make API compatible with seq.js so GUI does not have to change. 2019-03-19 22:33:15 -04:00
mmcwilliams a4682ed9d3 Simplify logs. Still prints timestamp as json. 2019-03-19 14:48:01 -04:00
mmcwilliams d19e83d616 Increment patch number and run `npm audit fix` 2019-03-18 19:43:27 -04:00
mmcwilliams 9bfc133a67 Add a function to cancel a sequence. This should only be used during "seq.exec()". 2019-03-18 19:42:12 -04:00
mmcwilliams f89ad53235 Caught a silly mistake. Accidentally referenced setDir instead of setExposure in intval exposure function. It's ok because that's dormant anyway. 2019-03-18 19:11:05 -04:00
mmcwilliams 0fbe45073c Add a seq.cmds object to map named actions to functions. This creates targets for MSCRIPT to compile to, and allows the sequence to be stored in a string array. 2019-03-18 18:42:31 -04:00
mmcwilliams 415306d7a8 Add comments to existing sequencer gui file. Question arises here: should this logic be pushed back into the main process so that there is less reliance on the renderer and all command logic takes place in main (or a sub-module) with the renderer being used only for display and not sequencing. This seems to be the path going forward, but will take a re-write that allows for GUI to interrupt the process as it does now. A proof of concept will have to be written to demonstrate that using `await delay(ms)` is viable and the process does not completely lock. 2019-03-18 18:41:35 -04:00
mmcwilliams b1e4015630 If light is not enabled when digital projector is selected, enable light. Otherwise, the light value will stay default 0,0,0 and all frames are rendered as black. 2019-03-18 18:35:49 -04:00
mmcwilliams ad97086bf0 Overwrite any exported frame by adding -y flag to the ffmpeg command. 2019-03-18 18:28:31 -04:00
mmcwilliams 46da2e6541 Add the new firmware identifiers as accepted responses. Also add text identifiers for firmware identified as the 4 new types. 2019-03-18 17:21:17 -04:00
mmcwilliams d4c2f5b678 Rebuild docs for arduino library after refactor into class. 2019-03-18 16:51:16 -04:00
mmcwilliams 9b4525e5a7 Refactor logFile function for readability.
Add comments to the log library. Build logs.
2019-03-18 16:50:40 -04:00
mmcwilliams 029dd628b6 Add comments to cmd 2019-03-13 15:28:17 -04:00
mmcwilliams cf6e4f9de9 Disable light on projector 2019-03-13 15:28:07 -04:00
mmcwilliams e47abeaaa5 Hid light pads if light is disabled. 2019-03-10 13:18:59 -04:00
mmcwilliams 4eee61ab1b Hide labels if light is disabled. Hide navigation element if light is disabled. 2019-03-10 01:25:59 -05:00
mmcwilliams 4202d01630 Calling this a patch commit lets go! 2019-03-09 15:47:26 -05:00
mmcwilliams 00b5efa484 Logging still sucks. 2019-03-09 13:17:32 -05:00
mmcwilliams 95b6f77848 Try to improve logging. It's not there, yet. 2019-03-08 22:33:03 -05:00
mmcwilliams e186b1b9fc Write arg.profile and not the HTML element profile to log 2019-03-08 22:32:43 -05:00
mmcwilliams ede29216f7 Update arduino lib in app and cli 2019-03-08 22:32:25 -05:00
mmcwilliams 87f3bcef6f Copy build libraries to cli app 2019-03-08 22:31:29 -05:00
mmcwilliams fcdc6ebb1d Typescript adding commas to compiled code. 2019-03-04 22:10:15 -05:00
mmcwilliams ec0b8e3b4f Run docs as shell, not bash 2019-03-04 22:09:26 -05:00
mmcwilliams aa5bbfc9fd Port shared modules to typescript. Migrate shared modules first, then look at individual needs of sub-projects. 2019-03-04 22:09:12 -05:00
mmcwilliams 307ef33a10 Update description as project expands and reshapes. Now will develop shared modules for the app, cli and then the "native" experimental app written in proton-native. 2019-03-04 22:06:40 -05:00
mmcwilliams f276d5ce83 Add commands for controlling a secondary projector. 2019-03-01 20:14:20 -05:00
mmcwilliams 200671b1cf Increment patch number for new build. 2019-03-01 18:02:39 -05:00
mmcwilliams fcc4da3672 Add additional cases to the arduino filter when looking for devices to connect with. 2019-03-01 18:01:16 -05:00
mmcwilliams c93413bae4 Hide video feature until better fleshed out. 2019-03-01 18:00:49 -05:00
mmcwilliams b9bd62bb78 Add mp4 to allowable file extension filter 2019-02-28 17:50:13 -05:00
mmcwilliams 1612d737a1 Add second UI element behavior for new video screen. 2019-02-26 21:58:26 -05:00
mmcwilliams aff06619a0 Add video screen to UI 2019-02-26 21:57:07 -05:00
mmcwilliams da7faf59a5 Add documentation to code on GUI grid features, needed to because I will be modifying this extensively. 2019-02-26 21:56:39 -05:00
mmcwilliams a5a9a4ea86 Refactor arduino module to not use the mcopy. prefix. This should really be a class, not an object. We'll get there. 2019-02-26 21:55:52 -05:00
mmcwilliams b481906c86 Add video screen, to be used for better control of the digital projector. 2019-02-26 21:54:46 -05:00
mmcwilliams a9dd45a464 Add some docs to the code. Work in progress 2019-02-26 21:53:32 -05:00
mmcwilliams 8b2095227c Add case for updating the UI when second projector connected. 2019-02-26 16:43:38 -05:00
mmcwilliams 6622a72241 Resize app when second projector connected 2019-02-26 16:43:14 -05:00
mmcwilliams c964410f7b Add variable for tracking whether or not light feature is disabled. 2019-02-26 16:42:54 -05:00
mmcwilliams 643e88aef3 Add a placeholder config profile for the MONO JK 2019-02-26 16:00:59 -05:00
mmcw-dev aff070cdc4 Connect second projector 2019-02-26 11:49:00 -05:00
mmcwilliams 7398f7993d Start work on secondary projector feature 2019-02-25 18:14:29 -05:00
mmcwilliams fb08a28543 Update mscript tests. Could not repro error because it is due to escaping. 2019-02-24 08:31:22 -05:00
mmcwilliams 4947cbcc9d Found range error in common usage example. Check test coverage 2019-02-24 08:23:57 -05:00
mmcwilliams 58ade0518e Return mscript output if no callback defined 2019-02-24 08:22:41 -05:00
mmcwilliams 56a83615a9 Begin mcopy-cli for a simple command line interface 2019-02-24 08:13:47 -05:00
mmcwilliams 73ae599cff Uninstall and remove references to async module 2019-02-23 22:40:59 -05:00
mmcw-dev 723b23fa41 Fix intval bug and apply UI projector value change to digital file state. 2019-02-23 22:19:42 -05:00
mmcw-dev bf148c6784 Set value to digital projector feature when changing it in UI 2019-02-23 22:19:03 -05:00
mmcwilliams 7fd449724b Convert comment to string on light object. Will use in a modal. 2019-02-23 12:25:47 -05:00
mmcwilliams 8ebdbf9f6f Add docs script to package.json 2019-02-23 12:25:47 -05:00
mmcwilliams 54ab121e89 Feeble first attempt at documenting code 2019-02-23 12:25:47 -05:00
mmcwilliams 16dcd1e3d4 Move all scripts into scripts directory 2019-02-23 12:25:47 -05:00
mmcwilliams 8bd505da36 Save and restore settings, including profiles. 2019-02-23 12:25:46 -05:00
mmcwilliams 4de536e2e8 Incrementing patch. Fixed color and timing issues with "digital" sequences. 2019-02-13 19:00:10 -05:00
mmcwilliams 8fd29e89d8 Okay. Removed the light.state.on behavior. Now, a frame is rendered to the set color state of the "light" only when the camera is moving. Unnecessary frames don't display AND the correct color is represented at the right time. No juggling state values between steps in the sequence. 2019-02-13 18:57:18 -05:00
mmcwilliams e7ac873f41 Two birds, one commit. Can even pull out the bad logic of the light.state.on value, but that's not hurting anybody. 2019-02-13 18:49:59 -05:00
mmcwilliams ed8f1add35 Merge remote-tracking branch 'origin/master' 2019-02-11 01:34:38 -05:00
mmcwilliams dbe96491f9 Update version in package-lock.json 2019-02-11 01:34:28 -05:00
mmcw-dev 962a7c8213 Fix loop bug. When selection a video as a projector (need to work on this metaphor) the loops are automatically set. Previous issues were due to id re-use.
Also, (almost) you can choose a light color value that a frame will be overlayed on with a Darken composite mode. This is almost working but is kludgey because the first frame is always coming up black. Will need to make adjustments in the light module.
2019-02-11 01:08:20 -05:00
mmcw-dev 3493759998 Scale frame export to video's advertized size 2019-02-10 14:07:07 -05:00
mmcwilliams cbb28212d6 Increment a major version because of new Digital projector feature. 2019-02-08 18:23:35 -05:00
mmcwilliams 40b5ecfe69 Digital projector feature added. Select a video and it will be displayed on the main monitor (TODO: address this) and the camera will advance in sync, as with a regular optical printer. 2019-02-08 18:21:16 -05:00
mmcwilliams fafb313f7d Devices 2019-02-08 14:30:22 -05:00
mmcwilliams 30a070dca0 Device UI 2019-02-08 14:28:57 -05:00
mmcwilliams 0e618430ff Install delay, exit and exec modules. 2019-02-08 14:07:35 -05:00
mmcwilliams 9db61a7190 Require modules. 2019-02-08 13:17:14 -05:00
mmcwilliams b9a6da957d Add new display and capture modules. Don't need new capture module rn. 2019-02-08 13:16:42 -05:00
mmcwilliams 2dbed1215d Install local capture module to package. 2019-02-08 13:15:22 -05:00
mmcwilliams 12e09f04aa Remove old capture. Create package file to install capture module. 2019-02-08 13:15:02 -05:00
mmcwilliams 97ec076ec1 Deprecate old capture module. Delete will follow. 2019-02-08 13:13:10 -05:00
mmcwilliams 4a86d5d441 Remove digital module, delete file 2019-02-08 13:12:33 -05:00
mmcwilliams aebacbccaf Deprecate "digital" module 2019-02-08 13:11:51 -05:00
mmcwilliams e42d7a6e0b Install local modules to package 2019-02-08 12:57:38 -05:00
mmcwilliams 95007d06a2 Install libs from intval_go_node project 2019-02-08 12:46:58 -05:00
mmcw-dev 8adab68cdc Update package and increment version for local install 2018-12-10 22:14:55 -05:00
mmcw-dev f110718342 Fix startup error, where spinner would be removed before fully connected 2018-12-10 21:52:48 -05:00
mmcw-dev deee2ba59f Fix build linux script 2018-12-10 07:53:00 -05:00
mmcw-dev f07a429d8b Rebuilt on linux 2018-12-09 22:01:29 -05:00
mmcw-dev 20f3170fe5 Update package lock 2018-12-09 22:01:15 -05:00
M McWilliams f58f5ae95f Make electron debian package optional 2018-11-24 20:10:20 -05:00
mmcw-dev 625094f0e3 Update to electron 3 2018-11-23 13:26:36 -05:00