Commit graph

384 commits

Author SHA1 Message Date
Zakk
cb356f9556 movie source properly deregisters observers when the movie queue is empty due to a movie playing until the end.
shift-selecting a layout will no longer re-add the same sources to the target layout. If they already exist they are reverted to the state of the source layout. shift-adding is undoable now.

Added an auto fit "+" button to sources.
2015-09-13 23:33:26 -04:00
Zakk
f809ac4c05 Merging source layout data is undoable now.
Some stupid changes to audio engine files due to me trying to track down a bug that didn't exist.
Sourcelayouts now keep a uuid->source map
2015-09-12 23:17:04 -04:00
Zakk
7b7415131e regrets input source as midi responder when it is added to the sourcelist instead of during InputSource commonInit 2015-09-08 06:13:10 -04:00
Zakk
f28a3fc293 Actually register InputSources as midi responders O_o 2015-09-07 23:44:27 -04:00
Zakk
949054d1f1 Animation input bindings now survive delete->undo delete of their target input 2015-09-07 23:02:42 -04:00
Zakk
6da0810513 More undo. Almost every editable thing about a layout or input is now undoable. Animations are not, and any delete+undo will break animation input and midi mapping. 2015-09-07 17:43:14 -04:00
Zakk
f5e8292b04 Mouseover effects in preview views are now done via overlaying an NSView. Overlay has added: resize handle/knobs on mouseover, and a delete button.
Start of a functional undo/redo system. move, resize, delete, attach/detach, clone and add are now undoable.
2015-09-06 02:22:11 -04:00
Zakk
746f0bc5b6 Handle exceptions during animations in python land so the transaction can be committed, then re-raise exception 2015-08-31 03:34:49 -04:00
Zakk
2d0cb15aa4 Save and restore values for alwaysDisplay and transitionEnabled (multi transitions now restore!) 2015-08-29 14:41:59 -04:00
Zakk
87ec750d00 Added background loading of python classes. Nothing uses it of course... 2015-08-29 14:06:31 -04:00
Zakk
0b9abc6e7b Changed which layer is hidden for multi transitions 2015-08-29 09:19:04 -04:00
Zakk
6e05be0634 Use thread local storage to store CSAnimationBlock frame data.
Revert setting staging/live layouts in background queues, need to re-think how to do that (of if it is even worth it)
2015-08-29 06:04:37 -04:00
Zakk
2529712e38 Fixed some warnings.
Layout transitions fixed again: don't set to active = NO until transition is finished, keep sending frameTick to 'old' layout until transition is done.
2015-08-24 06:25:39 -04:00
Zakk
896496daa2 Added exception handling for shape capture callouts to python 2015-08-24 00:43:21 -04:00
Zakk
a537a65b71 Added an arc shape, for half circle sort of things.
Fixed 'always display' being broken for the main input of a multi-input set
2015-08-23 22:05:25 -04:00
Zakk
052207f2bb Globally turn off writing python byte code (.pyc) files 2015-08-23 01:00:34 -04:00
Zakk
ffcd885998 Added captureName changes for all capture types 2015-08-22 14:01:35 -04:00
Zakk
2a2553f1c6 Python class loader now loads each class in a separate namespace/global dict
Preview OpenGL layer holds onto the rendered CVPixelBuffer until the next render.

Fixed up some more audio stuff.
2015-08-22 12:31:52 -04:00
Zakk
669eef9271 Fixed a bunch of audio system bugs: PCM inputs now properly convert sample rates and changing sample rate of the entire audio system behaves better/properly 2015-08-18 11:57:46 -04:00
Zakk
ec87503f7d Remove some NSLogs 2015-08-18 00:59:59 -04:00
Zakk
1c8d99a4c7 Properly guard access to a layout's sourceList so that constant frameTick doesn't keep some objects alive. Seemed to only happen on program launch...
Fixed potential ioSurface reuse/garbage in preview views.
2015-08-18 00:56:46 -04:00
Zakk
92e964b97f Re-add CA flush to layout renderer loop 2015-08-17 01:46:54 -04:00
Zakk
30ae53ffb4 CSIOSurfaceLayer keeps track of asynchronous toggles and delays changing it for a few frames. This is an ugly hack that stops some openGL layers from just...not displaying on restore. I hate it but I have no idea otherwise... 2015-08-17 01:28:44 -04:00
Zakk
beb3e9cd6a Bounce Display capture update layer through main thread.
DisplayCapture now properly saves the value of the render type variable
2015-08-16 14:43:56 -04:00
Zakk
bf71c90f2c Make the default shape color white, so it works properly as a mask layer without fiddling with colors 2015-08-15 00:56:28 -04:00
Zakk
6231b4d340 Modified python shape scripts so they are compatible with 10.9 2015-08-15 00:54:40 -04:00
Zakk
a16724402d Completely changed how python is handled internally. No more py2app plugins with a private copy of a bunch of python stuff. Now link directly against Python.framework. There is now an internal plugin service/api for evaluating a python file, so any plugin can implement python functionality fairly easily. 2015-08-14 22:15:39 -04:00
Zakk
5486ff8c70 Converted preview views to layer backed NSViews with CAOpenGLLayer. Resolves some weird behavior of NSOpenGLView.
Staging view is now rendered in a timing loop just like main view.
2015-08-09 15:24:17 -04:00
Zakk
fcf56805cf Added x/y flip options for shapes. Also added rotation. It's easier to rotate the shape directly than to rotate the layer and try to pin it using constraints.
Did a little bit of re-structuring of the shape python bits.
2015-08-02 08:14:45 -04:00
Zakk
36cfb06d8c Added ability to control a layer's compositing filter. Also added a 'use as mask' config option that sets the compositing filter to minimum filter 2015-07-26 22:12:32 -04:00
Zakk
30c45f1e5c Added shape 'capture' inputs, with python modules for drawing shapes/paths.
Made some changes to audio graph and audio engine: there were some hardcoded 44khz instances. Changing sample rate should work now.
Fixed an ordering issue that would sometimes cause sourceLayers to be replaced with nil
2015-07-26 09:34:25 -04:00
Zakk
e5204de054 h264 compressor: if PTS is a repeat or non-increasing just don't encode the frame and only send audio to the outputs. 2015-07-19 18:41:10 -04:00
Zakk
04bf7f3397 Added ability to exclude a source from multi-source transitions. 2015-07-19 14:36:33 -04:00
Zakk
7c0fe02cd9 A layout's render loop timing can now be tied to some types of capture inputs. Most useful when used on video capture cards 2015-07-12 07:04:15 -04:00
Zakk
a2e1d22b3f Added repeat controls for MovieSource 2015-07-08 05:58:44 -04:00
Zakk
924b912fc2 Properly manage movie player audio tap so that the MovieCapture object isn't deallocated until the tap is finalized. Fixes crash when going live when a movie input is active in the live layout 2015-07-06 07:51:55 -04:00
Zakk
7f42d0661d MovieSource uses pre-effect audio tap instead of post-effect audio tap. For some reason in 10.10 it results in audio glitches 2015-07-06 04:56:57 -04:00
Zakk
f8b98d054c Bump version to 1.9.10, include MIKMIDI copyright/license 2015-07-01 09:01:58 -04:00
Zakk
2a3b01ecd9 When deactivating a layout, clear the animation list and selected animation to release any referenced inputsources 2015-06-30 08:18:31 -04:00
Zakk
f93f810e41 Set transition time via object controller and commitEditing when goLive is pushed 2015-06-29 06:24:12 -04:00
Zakk
3aa45104ae Added cancel button for midi learning sheet 2015-06-21 23:25:39 -04:00
Zakk
ed4633e401 Cleaned up layout transition code by using a copy of the current staging layout when self go live happens 2015-06-21 16:20:51 -04:00
Zakk
10562a2a5a Remove source dropdown on input types where it is not appropriate 2015-06-20 08:44:22 -04:00
Zakk
857264db99 Properly extract boolean value of onLive animation setting 2015-06-19 15:29:41 -04:00
Zakk
3e1f9818d6 Save and restore black magic input setting 2015-06-18 22:07:16 -04:00
Zakk
695c9acd18 Black magic Decklink input can change the input port directly 2015-06-18 08:24:25 -04:00
Zakk
94cf7e5827 DeckLink remove device changed to compare deckLink pointer value and not unique ID. 2015-06-18 05:18:32 -04:00
Zakk
b4d0aee675 Wrapper class for managing IDeckLink objects. Added support for device removal.
AbstractCaptureDevice now declares the captureDevice as a strong property
2015-06-17 23:03:37 -04:00
Zakk
fe7546b4f2 Added configuration option for animations to enable auto-running of an animation when a layout goes live.
Extra None/null checking in animation python source to defend against runtime errors.

Added Blackmagic SDK capture source. You can now use more than one black magic card, yay
2015-06-15 23:04:06 -04:00
Zakk
bec8aa7f90 Added save and restore of down mixer crosspoint volumes 2015-06-10 05:32:06 -04:00