Commit Graph

159 Commits

Author SHA1 Message Date
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 c6d0256929 Compile renderer js with tsconfig.json file. Add maps. 2020-01-10 16:43:12 -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
mmcwilliams 42621bbf71 Devices discovery WIP 2020-01-05 12:40:38 -05: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 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 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 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 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 084916c317 Preview a frame using the webview. Select monitor to display images on. Wooo! 2019-06-26 20:08:49 -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 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 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 7740dc39ec Include in last commit 2019-06-15 11:06:57 -04:00
mmcwilliams dab5c34bad stash progress 2019-06-14 11:29:52 -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 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 1b3f554492 Caught the "to sequence" bug. Had not fully updated code. Resolves #5 2019-05-28 10:15:57 -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 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
mmcw-dev b33ef36ab4 Work on multiple device UI 2019-04-16 10:01:42 -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 96754fcf49 Work on progress bar. 2019-04-02 10:21:01 -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 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 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 42691c1577 All work on grid + sequencer rewrite. 2019-03-22 17:06:57 -04:00
mmcwilliams 553d2bbb0d Made progress on sequencer module, renamed from sequence. 2019-03-22 04:33:53 -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 4356abc820 Disable light from the UI if necessary. Kind of circuitous, will refactor. 2019-03-21 22:55:12 -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 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 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 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 6faf78b92e Merge remote-tracking branch 'origin/master' 2019-03-21 15:08:54 -04:00
mmcwilliams 56aba1eaba Refactor cam module into cam module. 2019-03-21 14:59:46 -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 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 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 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 e186b1b9fc Write arg.profile and not the HTML element profile to log 2019-03-08 22:32:43 -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 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 b481906c86 Add video screen, to be used for better control of the digital projector. 2019-02-26 21:54:46 -05:00
mmcwilliams 8b2095227c Add case for updating the UI when second projector connected. 2019-02-26 16:43:38 -05:00
mmcwilliams c964410f7b Add variable for tracking whether or not light feature is disabled. 2019-02-26 16:42:54 -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 54ab121e89 Feeble first attempt at documenting code 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 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
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
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
mmcw-dev d306bc915c When there is a loop specified in the gui, write that into the mscript that gets generated from the grid 2018-06-24 16:09:16 -04:00
mmcwilliams 52350b2325 Update mscript usage 2018-06-16 23:19:58 -04:00
mmcw-dev fc73859f8f Use lighting steps to the GUI and when executing. 2018-03-16 12:59:23 -04:00
mmcw-dev a2ab93bd46 Fix the toSequence function which actually sends a compiled mscript script to the sequencer. Yay. 2018-03-15 14:52:41 -04:00
mmcwilliams 2f05a3d21e Testing issue with light.js and the new async/await functions in main.js. Fundamental breakdown in light functionality that isn't occuring in proj.js. Ok I am just figuring out the issue as I type this, damnit. 2018-03-15 11:55:10 -04:00
mmcwilliams dddd3214e1 Mscript:
* compile sequence
* run sequence
2018-03-14 23:19:23 -04:00
mmcwilliams 394ef0d1e3 Add spinner progress to gui.spinner 2018-03-14 23:17:59 -04:00
mmcwilliams 1b995be69b Execute an abitrary sequence, while locking up the UI. This is needed for the GO TO functions and the mscript editor. 2018-03-14 23:14:48 -04:00
mmcwilliams e1491837f2 Blank back and forward were bother broken (no callbacks) 2018-03-14 21:06:39 -04:00
mmcwilliams 749719e477 mse.mscript and mse.console for mscript editor features. 2018-03-05 13:27:00 -05:00
mmcwilliams e28c349c75 Migrate mscript functions into their own source file 2018-03-04 23:55:31 -05:00
mmcwilliams 4dccefc126 Write new profile setting to settings.json file when changed 2018-02-07 13:44:24 -05:00