Commit graph

104 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
87ec750d00 Added background loading of python classes. Nothing uses it of course... 2015-08-29 14:06:31 -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
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
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
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
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
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
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
35107d7a04 Add modal dialog during MIDI control learning 2015-05-25 15:44:50 -04:00
Zakk
8703a2a323 IOSurfaceLayer no longer uses CIImage to render to the context; instead it renders the surface manually and uses fragment shaders/built in apple extensions to handle non-RGB IOSurfaces. Sources that use this layer no longer have to convert to 'known' pixel formats, which should save on some CPU in the case of AVF captures 2015-05-09 20:53:19 -04:00
Zakk
cfb5fe4f6b Removed some spammy NSLogs 2015-05-03 13:09:25 -04:00
Zakk
7207216942 Fixed exception that occurred when the saved WebCam source is no longer connected to the system 2015-04-29 19:24:05 -04:00
Zakk
dfe3bdb4e1 Force a setNeedsLayout/layoutifNeeded call when constraints are set on an input layer. This seems to fix the weird constraint dimensions on restore.
Also force a layout when a source is added to an input, I'm not sure if this actually fixes the non-rendering gl layer problem, though.
2015-04-25 12:00:45 -04:00
Zakk
77dd533d7c Base Text capture doesn't re-render unless the assigned text has changed. Should improve CPU use of non-static text. (Timers etc) 2015-04-23 07:12:21 -04:00
Zakk
d1956a4c4f The glorious return of user defined filters on sources. Now with background, source-only and source-and-all-sublayers varieties. 2015-04-20 09:31:27 -04:00
Zakk
64a3c4a596 The base TextCapture class handles loading the settings interface now and inserts standard text controls (font, alignment) in addition to whatever the actual capture source requires.
Fixed the excessive amounts of blank space in source setting pane(s)
2015-04-18 21:33:48 -04:00
Zakk
884a73689d Source layers converted to Constraint based layout. Cleaned up some unneeded CATransaction calls. 2015-04-15 04:36:37 -04:00
Zakk
850169b02f Some changes to CSInputLayer to handle text centering and alignment. Modified some of the size animations to be more sane. CAOpenGLLayer resizing is still stupid tho :( 2015-04-12 04:58:37 -04:00
Zakk
1b6859e4fd Animations are now explicitly added to a layout, instead of showing all possible animations. Added animations and input assignments are saved and restored along with the layout. 2015-03-27 10:04:35 -04:00
Zakk
1113ad1047 Revert to display stream desktop capture. Seems it sucks on some systems. Fixes #75 2015-03-15 15:45:33 -04:00
Zakk
6bd53f426e Added frame rendering/arrival options to DesktopCapture 2015-03-13 19:29:59 -04:00
Zakk
c3a9a55d8c Converted Desktop Capture to use AVCaptureScreenInput. 2015-03-13 19:17:44 -04:00
Zakk
b28cdbc2e3 Remove various references to InputSource when it is deleted so that the dealloc happens immediately instead of when NIBs are auto-deallocated. 2015-03-09 10:36:00 -04:00
Zakk
972301c3b5 Preview views are now responsible for allocating a LayoutRenderer. Added layout change transitions. 2015-03-02 00:08:11 -05:00
Zakk
a4a1237c84 Remove some debugging output in SourceLayout.
Don't use 10.10 specific CMSampleBuffer creation function.
Bump version up to 1.9.8
2015-02-24 22:45:09 -05:00
Zakk
caff673352 Added frame update options to webcam capture type 2015-02-22 23:35:40 -05:00
Zakk
3231b414df Add a CATransaction around updateLayersWithBlock. Fixes some instances of freezing syphon sources. 2015-02-22 23:08:06 -05:00