When a new audio device connects don't force add every device to the audio engine.
Implement layout delete event in layout capture
Various fixes for some multithread access issues
Text file source now supports all file types that NSAttributedString does (html, RTF/RTFD, DOC, XML etc).
Added a font size adjustment option to text file source.
Added a flag to audio inputs (in layouts) that toggles if they cause a new instance of a hardware input to be created, or use one that already exists (if it does)
Change layout renderer back to CARenderer: SceneKit now does complex colorspace/gamma and not all capture sources provide the proper formatting to look correct.
Change layout capture source so it pretends to an OutputDestination attached to a Passthrough compressor.
Added default Passthrough compressor with noCopy set.
Apple browser plugin only loaded on 10.13+
When restoring settings, only restore layout recording directory/format if the key exists (don't clobber defaults on first run)
Restore drag and drop functionality of layouts/inputs etc onto transition view
Inputsource autofit keeps trying until the captureSource reports a non-zero size.
Display capture no longer uses deprecated IOPort functions, now iterates over the IOServices and finds the display via serial number.
Display capture now uses CGDisplay services UUID to identify displays.
Stop using 'muted' property for mixers in advanced audio window.
Various changes to AppleScript code to better support upcoming Elgato Stream Deck integration.
Added some notifications to help stream deck plugin
Improve the feel of Desktop Capture's crop overlay window. (Don't implement resizing and moving manually, let system do them)
Desktop capture no longer destroys+recreates the display stream multiple times when the cropping region is changed.
Desktop capture 'reset crop region' button now works...
Fixed some warnings.
If metal and the proper CARenderer features are available, render the SourceLayout via Metal instead of an OpenGL context.
If metal is available, use a normal CALayer to render PreviewView content.
Preview renderers are no long responsible for drawing 'snap lines'; Preview View creates an overlay view that renders them on top of the layout.
added dummyAnimation function to animation input wrapper.
slightly reworked how input.waitAnimation() works; the previous implementation possibly messed with other input timings.
converted input transitions to use input specific waits and dummy animations. This allows scripts/other transitions to run simultaneously