Added script-only input type.

First pass at executing input-scripts on layout changes/operations.
This commit is contained in:
Zakk 2017-07-02 02:36:29 -04:00
parent c7765f98d4
commit 1bb640cbe0
64 changed files with 722 additions and 151 deletions

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -304,7 +304,7 @@
dispatch_async(dispatch_get_main_queue(), ^{
self.currentTimeString = [self timeToString:self.player.lastVideoTime];
[self willChangeValueForKey:@"currentMovieTime"];
_currentMovieTime = self.player.lastVideoTime;;
self->_currentMovieTime = self.player.lastVideoTime;;
[self didChangeValueForKey:@"currentMovieTime"];
});

View file

@ -213,10 +213,8 @@
int bufferCnt = asbd->mFormatFlags & kAudioFormatFlagIsNonInterleaved ? asbd->mChannelsPerFrame : 1;
int channelCnt = _audio_codec_ctx->channels;
long byteCnt = asbd->mBytesPerFrame * dst_nb_samples;
sampleABL = malloc(sizeof(AudioBufferList) + (bufferCnt-1)*sizeof(AudioBuffer));
@ -249,7 +247,6 @@
struct frame_message msg;
avcodec_flush_buffers(_video_codec_ctx);
int flush_cnt = 0;
if (_video_message_queue)
{
while (av_thread_message_queue_recv(_video_message_queue, &msg, AV_THREAD_MESSAGE_NONBLOCK) >= 0)
@ -273,7 +270,6 @@
{
struct frame_message msg;
int flush_cnt = 0;
avcodec_flush_buffers(_audio_codec_ctx);
if (_audio_message_queue)
@ -413,8 +409,6 @@
AVPacket av_packet;
bool do_audio = YES;
bool do_video = YES;
int64_t seek_pts;
struct frame_message msg;
@ -424,7 +418,6 @@
}
int pkt_cnt = 0;
while (do_audio || do_video)
{
@ -450,7 +443,6 @@
}
output_frame = av_frame_alloc();
int got_decoded_frame;
int read_ret = 0;
if (!self.is_draining)

View file

@ -177,7 +177,7 @@
CSFFMpegInput *nextItem = nil;
if (currentIdx >=0 && (currentIdx < _inputQueue.count))
if (currentIdx != NSNotFound && (currentIdx < _inputQueue.count))
{
nextItem = [_inputQueue objectAtIndex:currentIdx];
@ -614,7 +614,7 @@
CVPixelBufferRef buf;
CVPixelBufferPoolCreatePixelBuffer(NULL, _cvpool, &buf);
int pbcnt = CVPixelBufferGetPlaneCount(buf);
size_t pbcnt = CVPixelBufferGetPlaneCount(buf);
CVPixelBufferLockBaseAddress(buf, 0);
@ -622,8 +622,8 @@
{
uint8_t *src_addr;
uint8_t *dst_addr;
int dst_stride, src_stride;
int rows;
size_t dst_stride, src_stride;
size_t rows;
dst_addr = CVPixelBufferGetBaseAddressOfPlane(buf, i);
src_addr = av_frame->data[i];
@ -635,7 +635,7 @@
{
memcpy(dst_addr, src_addr, src_stride * rows);
} else {
int copy_bytes = dst_stride < src_stride ? dst_stride : src_stride;
size_t copy_bytes = dst_stride < src_stride ? dst_stride : src_stride;
for (int j = 0; j < rows; j++)
{
memcpy(dst_addr + j * dst_stride, src_addr + j * src_stride, copy_bytes);

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0640"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@ -23,21 +23,24 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
@ -52,10 +55,10 @@
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0640"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@ -23,21 +23,24 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
@ -52,10 +55,10 @@
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -128,6 +128,9 @@
34788DE21EF5A86800C3C9C5 /* CSAnimationInput.js in CopyFiles */ = {isa = PBXBuildFile; fileRef = 34788DDD1EF59E5B00C3C9C5 /* CSAnimationInput.js */; };
34788DE71EF6753900C3C9C5 /* CSJSProxyObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 34788DE61EF6753900C3C9C5 /* CSJSProxyObj.m */; };
34788DEE1F00C88300C3C9C5 /* CSInputSourceBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 34788DED1F00C88300C3C9C5 /* CSInputSourceBase.m */; };
34788DF21F016F7A00C3C9C5 /* CSScriptInputSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 34788DF11F016F7A00C3C9C5 /* CSScriptInputSource.m */; };
34788DF61F01719800C3C9C5 /* CSScriptInputSourceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34788DF41F01719800C3C9C5 /* CSScriptInputSourceViewController.m */; };
34788DF71F01719800C3C9C5 /* CSScriptInputSourceViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34788DF51F01719800C3C9C5 /* CSScriptInputSourceViewController.xib */; };
34792AF616104AA70065A859 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34792AF516104AA70065A859 /* IOKit.framework */; };
34792AFB1611A6B90065A859 /* IOSurface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34792AFA1611A6B90065A859 /* IOSurface.framework */; };
3479A9971A9007DD00A524F0 /* CocoaSplit.sdef in Resources */ = {isa = PBXBuildFile; fileRef = 3479A9961A9007DD00A524F0 /* CocoaSplit.sdef */; };
@ -738,6 +741,11 @@
34788DEC1F00C88300C3C9C5 /* CSInputSourceBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSInputSourceBase.h; sourceTree = "<group>"; };
34788DED1F00C88300C3C9C5 /* CSInputSourceBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSInputSourceBase.m; sourceTree = "<group>"; };
34788DEF1F01526F00C3C9C5 /* CSEncodedAudioReceiverProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSEncodedAudioReceiverProtocol.h; sourceTree = "<group>"; };
34788DF01F016F7A00C3C9C5 /* CSScriptInputSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSScriptInputSource.h; sourceTree = "<group>"; };
34788DF11F016F7A00C3C9C5 /* CSScriptInputSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSScriptInputSource.m; sourceTree = "<group>"; };
34788DF31F01719800C3C9C5 /* CSScriptInputSourceViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CSScriptInputSourceViewController.h; path = Interface/CSScriptInputSourceViewController.h; sourceTree = "<group>"; };
34788DF41F01719800C3C9C5 /* CSScriptInputSourceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CSScriptInputSourceViewController.m; path = Interface/CSScriptInputSourceViewController.m; sourceTree = "<group>"; };
34788DF51F01719800C3C9C5 /* CSScriptInputSourceViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CSScriptInputSourceViewController.xib; path = Interface/CSScriptInputSourceViewController.xib; sourceTree = "<group>"; };
34792AF516104AA70065A859 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
34792AFA1611A6B90065A859 /* IOSurface.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOSurface.framework; path = System/Library/Frameworks/IOSurface.framework; sourceTree = SDKROOT; };
3479A9961A9007DD00A524F0 /* CocoaSplit.sdef */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CocoaSplit.sdef; sourceTree = "<group>"; };
@ -1266,6 +1274,8 @@
34788DEC1F00C88300C3C9C5 /* CSInputSourceBase.h */,
34788DED1F00C88300C3C9C5 /* CSInputSourceBase.m */,
34788DEF1F01526F00C3C9C5 /* CSEncodedAudioReceiverProtocol.h */,
34788DF01F016F7A00C3C9C5 /* CSScriptInputSource.h */,
34788DF11F016F7A00C3C9C5 /* CSScriptInputSource.m */,
);
path = CocoaSplit;
sourceTree = "<group>";
@ -1482,6 +1492,9 @@
34E162E51E987420005157ED /* CSScriptWindowViewController.h */,
34E162E61E987420005157ED /* CSScriptWindowViewController.m */,
34E162E71E987420005157ED /* CSScriptWindowViewController.xib */,
34788DF31F01719800C3C9C5 /* CSScriptInputSourceViewController.h */,
34788DF41F01719800C3C9C5 /* CSScriptInputSourceViewController.m */,
34788DF51F01719800C3C9C5 /* CSScriptInputSourceViewController.xib */,
);
name = Interface;
sourceTree = "<group>";
@ -2046,7 +2059,7 @@
isa = PBXProject;
attributes = {
LastTestingUpgradeCheck = 0510;
LastUpgradeCheck = 0440;
LastUpgradeCheck = 0830;
ORGANIZATIONNAME = Zakk;
TargetAttributes = {
340FE49C15F3417E00E4CE4E = {
@ -2373,6 +2386,7 @@
3435E396188B902C0015CC01 /* 420v.fgsh in Resources */,
3473D2AF1D56920B00842EEE /* CSAdvancedAudioWindowController.xib in Resources */,
343ED9421BCAC1C80061FC4B /* EditBuiltinLayoutView.xib in Resources */,
34788DF71F01719800C3C9C5 /* CSScriptInputSourceViewController.xib in Resources */,
3441269C1E6C86400051DA06 /* CSLayoutSwitcherWithPreviewWindowController.xib in Resources */,
3415CED31AE257DA002F11F5 /* CSTextCaptureBaseView.xib in Resources */,
342B33B3198073EC00492CB7 /* line.fgsh in Resources */,
@ -2523,6 +2537,7 @@
3431FFE119786502000965FE /* InputSource.m in Sources */,
34559A281E12D4400085883C /* CSCaptureBase+InputFrameTick.m in Sources */,
3414C6AE1CBB9EBF00107C69 /* CSIRCompressor.m in Sources */,
34788DF21F016F7A00C3C9C5 /* CSScriptInputSource.m in Sources */,
34ED8C911B07371C002C0674 /* MIKMIDINoteOnCommand.m in Sources */,
346865471CC353E2002BAB86 /* CSInstantRecorderCompressorViewController.m in Sources */,
34B5FB8E1E7FA2610078FC51 /* CSSequenceItemTransitionViewController.m in Sources */,
@ -2564,6 +2579,7 @@
345F8B751A17A785009A81E3 /* CAMultiAudioMixer.m in Sources */,
34ED8C951B07371C002C0674 /* MIKMIDIOutputPort.m in Sources */,
34ED8CA71B07371C002C0674 /* MIKMIDISystemMessageCommand.m in Sources */,
34788DF61F01719800C3C9C5 /* CSScriptInputSourceViewController.m in Sources */,
34B5FADD1E75BC910078FC51 /* CSLayoutSwitcherViewController.m in Sources */,
34ED8C851B07371C002C0674 /* MIKMIDIMetaTextEvent.m in Sources */,
34B5FACB1E7461E60078FC51 /* CSLayoutSequence.m in Sources */,
@ -2627,15 +2643,25 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Developer ID Application: Zachary Girouard (L3JLUY4S5E)";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = "compiler-default";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@ -2644,11 +2670,13 @@
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = /usr/local/include;
MACOSX_DEPLOYMENT_TARGET = 10.8;
ONLY_ACTIVE_ARCH = NO;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
@ -2657,18 +2685,29 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "Developer ID Application: Zachary Girouard (L3JLUY4S5E)";
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = "compiler-default";
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = /usr/local/include;
MACOSX_DEPLOYMENT_TARGET = 10.8;
@ -2681,7 +2720,6 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_ENTITLEMENTS = "";
@ -2714,6 +2752,7 @@
/usr/local/lib/libx264.a,
"-all_load",
);
PRODUCT_BUNDLE_IDENTIFIER = "zakk.lol.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = CocoaSplit;
PROVISIONING_PROFILE = "";
SDKROOT = macosx;
@ -2726,7 +2765,6 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_ENTITLEMENTS = "";
@ -2761,6 +2799,7 @@
"-flat_namespace",
"-all_load",
);
PRODUCT_BUNDLE_IDENTIFIER = "zakk.lol.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = CocoaSplit;
PROVISIONING_PROFILE = "";
SDKROOT = macosx;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -67,7 +67,7 @@
@end
@interface CAMultiAudioNode : NSObject <CAMultiAudioNodeJSExport>
@interface CAMultiAudioNode : NSObject <CAMultiAudioNodeJSExport, NSAnimationDelegate>
{
float _saved_volume;

View file

@ -24,6 +24,8 @@
@synthesize delay = _delay;
-(instancetype)initWithSubType:(OSType)subType unitType:(OSType)unitType
{
if (self = [super init])

View file

@ -174,7 +174,10 @@ function AnimationBlock(duration) {
block_uuid_map[this.uuid] = this;
CATransaction.setValueForKey(this.uuid, "__CS_BLOCK_UUID__");
CATransaction.setValueForKey(this, "__CS_BLOCK_OBJECT__");
this.current_begin_time = 0;
}

View file

@ -114,6 +114,24 @@ var setAudioInputVolume = function(name_regex, volume, duration) {
}
var runTriggerScript = function(layout, scriptType) {
var s_inputs = layout.sourceList;
s_inputs.forEach(function (r_inp) {
if (r_inp["script_"+scriptType])
{
var inputSelf = null;
if (r_inp.animationLayer)
{
inputSelf = new CSAnimationInput(r_inp);
}
(new Function("self", r_inp["script_"+scriptType]))(inputSelf);
inputSelf = null;
}
});
}
var layoutByName = function(name) {
return captureController.findLayoutWithName(name);
}
@ -135,12 +153,9 @@ var switchToLayout = function(layout, kwargs) {
if (layout) {
var target_layout = getCurrentLayout();
console.log("T NAME " + target_layout.transitionName);
console.log("T DURATION " + target_layout.transitionDuration);
if ((CSAnimationBlock.currentFrame() && target_layout.transitionName || target_layout.transitionFilter) && target_layout.transitionDuration > 0) {
var dummy_animation = new CSAnimation(null, null, null);
dummy_animation.duration = target_layout.transitionDuration;
console.log("DUMMY DURATION " + dummy_animation.duration);
CSAnimationBlock.currentFrame().add_animation(dummy_animation, null, null);
}
@ -158,7 +173,11 @@ var switchToLayout = function(layout, kwargs) {
}
}
});
runTriggerScript(target_layout, "beforeReplace");
}
target_layout.replaceWithSourceLayout(layout);
if (!kwargs['noscripts']) {
var layout_transition_scripts = layout.transitionScripts;
@ -166,6 +185,9 @@ var switchToLayout = function(layout, kwargs) {
var layout_replacing_script = layout_transition_scripts['replacing'];
eval(layout_replacing_script);
}
runTriggerScript(target_layout, "afterReplace");
}
}
}
@ -183,6 +205,10 @@ var mergeLayout = function(layout, kwargs) {
CSAnimationBlock.currentFrame().add_animation(dummy_animation, null, null);
}
if (!kwargs['noscripts'])
{
runTriggerScript(target_layout, "beforeMerge");
}
target_layout.mergeSourceLayout(layout);
var layout_transition_scripts = layout.transitionScripts;
if (layout_transition_scripts['merged'] && !kwargs['noscripts'])
@ -190,6 +216,11 @@ var mergeLayout = function(layout, kwargs) {
var layout_merged_script = layout_transition_scripts['merged'];
eval(layout_merged_script);
}
if (!kwargs['noscripts'])
{
runTriggerScript(target_layout, "afterMerge");
}
}
}
@ -215,6 +246,11 @@ var removeLayout = function(layout, kwargs) {
var layout_removed_script = layout_transition_scripts['removed'];
eval(layout_removed_script);
}
if (!kwargs['noscripts'])
{
runTriggerScript(target_layout, "beforeRemove");
}
target_layout.removeSourceLayout(layout);
}

View file

@ -7,9 +7,44 @@
#import <Foundation/Foundation.h>
#import "CSInputSourceProtocol.h"
#import <JavaScriptCore/JavaScriptCore.h>
@protocol CSInputSourceBaseJSExport <JSExport>
-(void)createUUID;
-(NSViewController *)configurationViewController;
-(void)wasAdded;
-(void)willDelete;
-(void)frameTick;
-(void)mergedIntoLayout:(bool)changed;
-(void)removedFromLayout:(bool)changed;
-(void)replacedWithLayout;
-(void)replacingIntoLayout;
@property (weak) SourceLayout *sourceLayout;
@property (strong) CSInputLayer *layer;
@property (assign) bool is_live;
@property (strong) NSString *name;
@property (strong) NSString *uuid;
@property (assign) NSInteger refCount;
@property (assign) bool active;
@property (readonly) NSImage *libraryImage;
@property (assign) float depth;
@property (strong) NSMutableArray *attachedInputs;
@property (strong) NSString *script_afterAdd;
@property (strong) NSString *script_beforeDelete;
@property (strong) NSString *script_frameTick;
@property (strong) NSString *script_beforeMerge;
@property (strong) NSString *script_afterMerge;
@property (strong) NSString *script_beforeRemove;
@property (strong) NSString *script_beforeReplace;
@property (strong) NSString *script_afterReplace;
@interface CSInputSourceBase : NSObject <CSInputSourceProtocol>
@end
@interface CSInputSourceBase : NSObject <CSInputSourceProtocol, NSCoding, CSInputSourceBaseJSExport>
{
JSContext *_scriptContext;
}
@property (weak) SourceLayout *sourceLayout;
@property (strong) CSInputLayer *layer;
@ -18,8 +53,20 @@
@property (strong) NSString *uuid;
@property (assign) NSInteger refCount;
@property (assign) bool active;
@property (readonly) NSImage *libraryImage;
@property (assign) float depth;
@property (strong) NSMutableArray *attachedInputs;
@property (strong) NSString *script_afterAdd;
@property (strong) NSString *script_beforeDelete;
@property (strong) NSString *script_frameTick;
@property (strong) NSString *script_beforeMerge;
@property (strong) NSString *script_afterMerge;
@property (strong) NSString *script_beforeRemove;
@property (strong) NSString *script_beforeReplace;
@property (strong) NSString *script_afterReplace;
-(void)createUUID;
@end

View file

@ -7,10 +7,23 @@
//
#import "CSInputSourceBase.h"
#import "CaptureController.h"
@implementation CSInputSourceBase
-(instancetype) init
{
if (self = [super init])
{
self.attachedInputs = [NSMutableArray array];
self.active = YES;
}
return self;
}
-(void)createUUID
{
CFUUIDRef tmpUUID = CFUUIDCreate(NULL);
@ -22,6 +35,17 @@
-(void)frameTick
{
if (self.script_frameTick)
{
if (!_scriptContext)
{
_scriptContext = [[CaptureController sharedCaptureController] setupJavascriptContext];
}
//addCtx[@"source"] = self;
[_scriptContext evaluateScript:self.script_frameTick];
}
return;
}
@ -35,4 +59,86 @@
return YES;
}
-(NSImage *)libraryImage
{
return nil;
}
-(NSViewController *)configurationViewController
{
return nil;
}
-(void)wasAdded
{
if (self.script_afterAdd)
{
JSContext *addCtx = [[CaptureController sharedCaptureController] setupJavascriptContext];
addCtx[@"source"] = self;
[addCtx evaluateScript:self.script_afterAdd];
}
}
-(void)mergedIntoLayout:(bool)changed
{
return;
}
-(void)removedFromLayout:(bool)changed
{
return;
}
-(void)replacedWithLayout
{
return;
}
-(void)replacingIntoLayout
{
return;
}
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeObject:self.uuid forKey:@"uuid"];
[aCoder encodeFloat:self.depth forKey:@"CAdepth"];
[aCoder encodeObject:self.script_afterAdd forKey:@"script_afterAdd"];
[aCoder encodeObject:self.script_beforeDelete forKey:@"script_beforeDelete"];
[aCoder encodeObject:self.script_frameTick forKey:@"script_frameTick"];
[aCoder encodeObject:self.script_beforeMerge forKey:@"script_beforeMerge"];
[aCoder encodeObject:self.script_afterMerge forKey:@"script_afterMerge"];
[aCoder encodeObject:self.script_beforeRemove forKey:@"script_beforeRemove"];
[aCoder encodeObject:self.script_beforeReplace forKey:@"script_beforeReplace"];
[aCoder encodeObject:self.script_afterReplace forKey:@"script_afterReplace"];
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder {
if (self = [self init])
{
self.name = [aDecoder decodeObjectForKey:@"name"];
self.uuid = [aDecoder decodeObjectForKey:@"uuid"];
self.depth = [aDecoder decodeFloatForKey:@"CAdepth"];
self.script_afterAdd = [aDecoder decodeObjectForKey:@"script_afterAdd"];
self.script_beforeDelete = [aDecoder decodeObjectForKey:@"script_beforeDelete"];
self.script_frameTick = [aDecoder decodeObjectForKey:@"script_frameTick"];
self.script_beforeMerge = [aDecoder decodeObjectForKey:@"script_beforeMerge"];
self.script_afterMerge = [aDecoder decodeObjectForKey:@"script_afterMerge"];
self.script_beforeRemove = [aDecoder decodeObjectForKey:@"script_beforeRemove"];
self.script_beforeReplace = [aDecoder decodeObjectForKey:@"script_beforeReplace"];
self.script_afterReplace = [aDecoder decodeObjectForKey:@"script_afterReplace"];
}
return self;
}
@end

View file

@ -20,10 +20,22 @@
@property (strong) NSString *uuid;
@property (assign) NSInteger refCount;
@property (assign) bool active;
@property (readonly) NSImage *libraryImage;
@property (assign) float depth;
@property (strong) NSMutableArray *attachedInputs;
@property (strong) NSMutableDictionary *scriptStorage;
-(bool)isDifferentInput:(NSObject<CSInputSourceProtocol> *)from;
-(NSViewController *)configurationViewController;
//Lifecycle hooks, primarily for scripting/animation
-(void)wasAdded;
-(void)willDelete;
-(void)frameTick;
-(void)mergedIntoLayout:(bool)changed;
-(void)removedFromLayout:(bool)changed;
-(void)replacedWithLayout;
-(void)replacingIntoLayout;
@end

View file

@ -0,0 +1,13 @@
//
// CSScriptInputSource.h
// CocoaSplit
//
// Created by Zakk on 6/26/17.
// Copyright © 2017 Zakk. All rights reserved.
//
#import "CSInputSourceBase.h"
@interface CSScriptInputSource : CSInputSourceBase
@end

View file

@ -0,0 +1,35 @@
//
// CSScriptInputSource.m
// CocoaSplit
//
// Created by Zakk on 6/26/17.
// Copyright © 2017 Zakk. All rights reserved.
//
#import "CSScriptInputSource.h"
#import "CSScriptInputSourceViewController.h"
@implementation CSScriptInputSource
-(instancetype) init
{
if (self = [super init])
{
[self createUUID];
self.name = @"SCRIPT TEST";
self.active = YES;
}
return self;
}
-(NSViewController *)configurationViewController
{
CSScriptInputSourceViewController *controller = [[CSScriptInputSourceViewController alloc] init];
controller.inputSource = self;
return controller;
}
@end

View file

@ -2760,8 +2760,8 @@
{
NSTreeNode *node = [outlineView itemAtRow:row];
InputSource *src = node.representedObject;
if (!src.parentInput)
NSObject<CSInputSourceProtocol> *src = node.representedObject;
if (!src.layer || !((InputSource *)src).parentInput)
{
dispatch_async(dispatch_get_main_queue(), ^{
[outlineView expandItem:nil expandChildren:YES];
@ -2794,9 +2794,16 @@
NSPasteboard *pb = [info draggingPasteboard];
NSString *draggedUUID = [pb stringForType:@"cocoasplit.input.item"];
InputSource *draggedSource = [self.activePreviewView.sourceLayout inputForUUID:draggedUUID];
NSObject<CSInputSourceProtocol> *pdraggedSource = [self.activePreviewView.sourceLayout inputForUUID:draggedUUID];
if (!pdraggedSource.layer)
{
return NSDragOperationNone;
}
InputSource *draggedSource = (InputSource *)pdraggedSource;
if (nodeInput && nodeInput == draggedSource)
{
return NSDragOperationNone;
@ -2833,8 +2840,15 @@
NSString *draggedUUID = [pb stringForType:@"cocoasplit.input.item"];
NSTreeNode *parentNode = (NSTreeNode *)item;
InputSource *parentSource = nil;
InputSource *draggedSource = [self.activePreviewView.sourceLayout inputForUUID:draggedUUID];
NSObject<CSInputSourceProtocol> *pdraggedSource = [self.activePreviewView.sourceLayout inputForUUID:draggedUUID];
if (!pdraggedSource.layer)
{
return NO;
}
InputSource *draggedSource = (InputSource *)pdraggedSource;
if (parentNode)
{
parentSource = parentNode.representedObject;
@ -2884,7 +2898,7 @@
if (src)
{
NSString *uuid = src.uuid;
InputSource *realInput = [self.activePreviewView.sourceLayout inputForUUID:uuid];
NSObject<CSInputSourceProtocol> *realInput = [self.activePreviewView.sourceLayout inputForUUID:uuid];
[self.activePreviewView deleteInput:realInput];
}
@ -3693,10 +3707,10 @@
ret = currLayout;
} else if ([responderName hasPrefix:@"Input:"]) {
NSString *uuid = [responderName substringFromIndex:6];
InputSource *input = [currLayout inputForUUID:uuid];
NSObject <CSInputSourceProtocol> *input = [currLayout inputForUUID:uuid];
if (input)
{
ret = input;
ret = (InputSource *)input;
}
}

View file

@ -9,7 +9,7 @@
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>zakk.lol.${PRODUCT_NAME:rfc1034identifier}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>

View file

@ -49,7 +49,6 @@
-(NSInteger) outputCount;
-(void) reset;
-(bool) validate:(NSError **)therror;
-(void) addAudioData:(CMSampleBufferRef)audioData;
-(id <CSCompressorViewControllerProtocol>)getConfigurationView;

View file

@ -69,9 +69,6 @@
-(void)popoverDidClose:(NSNotification *)notification
{
AppDelegate *appDel = NSApp.delegate;
self.popover.contentViewController = nil;
}

View file

@ -79,7 +79,6 @@ typedef enum resize_style_t {
@property (assign) bool propertiesChanged;
@property (strong) NSString *selectedVideoType;
@property (assign) float depth;
@property (assign) NSSize oldSize;
@property (assign) bool active;
@ -141,7 +140,6 @@ typedef enum resize_style_t {
@property (assign) CGFloat cornerRadius;
@property (strong) NSColor *backgroundColor;
@property (readonly) CGRect globalLayoutPosition;
@property (strong) NSMutableArray *attachedInputs;
@property (weak) InputSource* parentInput;
@property (assign) float x_pos;
@ -253,8 +251,6 @@ typedef enum resize_style_t {
@property (strong) NSString *scriptStorage;
@property (strong) CSInputLayer *layer;
@property (weak) SourceLayout *sourceLayout;
@property (assign) bool isMaskLayer;
@ -284,9 +280,7 @@ typedef enum resize_style_t {
@property (assign) bool propertiesChanged;
@property (strong) NSString *selectedVideoType;
@property (strong) NSString *name;
@property (strong) NSString *uuid;
@property (assign) float depth;
@property (assign) NSSize oldSize;
@property (assign) bool active;
@ -348,7 +342,6 @@ typedef enum resize_style_t {
@property (assign) CGFloat cornerRadius;
@property (strong) NSColor *backgroundColor;
@property (readonly) CGRect globalLayoutPosition;
@property (strong) NSMutableArray *attachedInputs;
@property (weak) InputSource* parentInput;
@property (assign) float x_pos;
@ -372,6 +365,5 @@ typedef enum resize_style_t {
@property (assign) CGFloat topLevelHeight;
@property (assign) bool needsAdjustment;
@property (assign) bool needsAdjustPosition;
@property (assign) NSInteger refCount;
@property (assign) bool isFrozen;
@end

View file

@ -120,18 +120,19 @@ static NSArray *_sourceTypes = nil;
-(void) encodeWithCoder:(NSCoder *)aCoder
{
[super encodeWithCoder:aCoder];
[aCoder encodeFloat:self.rotationAngle forKey:@"rotationAngle"];
[aCoder encodeFloat:self.rotationAngleX forKey:@"rotationAngleX"];
[aCoder encodeFloat:self.rotationAngleY forKey:@"rotationAngleY"];
[aCoder encodeFloat:self.opacity forKey:@"opacity"];
[aCoder encodeObject:_editedName forKey:@"name"];
[aCoder encodeFloat:self.depth forKey:@"CAdepth"];
[aCoder encodeFloat:self.crop_top forKey:@"CAcrop_top"];
[aCoder encodeFloat:self.crop_bottom forKey:@"CAcrop_bottom"];
[aCoder encodeFloat:self.crop_left forKey:@"CAcrop_left"];
[aCoder encodeFloat:self.crop_right forKey:@"CAcrop_right"];
[aCoder encodeObject:self.selectedVideoType forKey:@"selectedVideoType"];
[aCoder encodeObject:self.uuid forKey:@"uuid"];
[aCoder encodeFloat:self.scrollXSpeed forKey:@"scrollXSpeed"];
[aCoder encodeFloat:self.scrollYSpeed forKey:@"scrollYSpeed"];
@ -213,7 +214,7 @@ static NSArray *_sourceTypes = nil;
There's some 'legacy' stuff in here to support loading older CocoaSplit save formats. Mostly related to the change from CoreImage to CoreAnimation. some types changed, some stuff like x/y position changed names. It's probably a bit slower when you're saving->going live but meh. Problematic variables are encoded with a prefix of 'CA' to avoid excessive use of try/catch
*/
if (self = [super init])
if (self = [super initWithCoder:aDecoder])
{
[CATransaction begin];
@ -462,6 +463,13 @@ static NSArray *_sourceTypes = nil;
+(NSSet *)keyPathsForValuesAffectingLibraryImage
{
return [NSSet setWithObjects:@"videoInput", @"videoInput.libraryImage", nil];
}
-(void)addedToLayout
{
@ -541,7 +549,6 @@ static NSArray *_sourceTypes = nil;
self.changeInterval = 20.0f;
self.attachedInputs = [NSMutableArray array];
self.scrollXSpeed = 0.0f;
self.scrollYSpeed = 0.0f;
@ -2305,7 +2312,7 @@ static NSArray *_sourceTypes = nil;
[self deregisterVideoInput:self.videoInput];
}
NSObject <CSCaptureSourceProtocol> *newCaptureSession;
NSObject <CSCaptureSourceProtocol,CSCaptureBaseInputFrameTickProtocol> *newCaptureSession;
Class captureClass = [pluginMap objectForKey:selectedVideoType];
newCaptureSession = [[captureClass alloc] init];
@ -2769,6 +2776,17 @@ static NSArray *_sourceTypes = nil;
-(NSImage *)libraryImage
{
if (self.videoInput)
{
return self.videoInput.libraryImage;
}
return nil;
}
-(void)layerUpdated
{
if (self.autoPlaceOnFrameUpdate)
@ -3130,7 +3148,7 @@ static NSArray *_sourceTypes = nil;
-(void)setClonedFromInput:(InputSource *)clonedFromInput
{
NSObject <CSCaptureSourceProtocol>*fromInput = clonedFromInput.videoInput;
NSObject <CSCaptureSourceProtocol,CSCaptureBaseInputFrameTickProtocol>*fromInput = clonedFromInput.videoInput;
if (self.videoInput)
{

View file

@ -3,7 +3,6 @@
// CocoaSplit
//
// Created by Zakk on 5/8/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import "CSAddInputViewController.h"
@ -12,6 +11,8 @@
#import "CSPluginServices.h"
#import "AppDelegate.h"
#import "PreviewView.h"
#import "CSScriptInputSource.h"
@interface CSAddInputViewController ()
@ -173,6 +174,18 @@
NSObject <CSCaptureSourceProtocol> *clickedCapture;
clickedCapture = [ self.sourceTypes objectAtIndex:[self.initialTable rowForView:sender]];
if ([clickedCapture isEqualTo:[NSNull null]])
{
CSScriptInputSource *newSrc = [[CSScriptInputSource alloc] init];
[self addInput:newSrc];
[self.previewView openInputConfigWindow:newSrc.uuid];
NSLog(@"NULL!!!!!");
return;
}
NSArray *availableVideoDevices = clickedCapture.availableVideoDevices;
if (!availableVideoDevices || availableVideoDevices.count == 0)
@ -203,14 +216,13 @@
}
-(void)addInput:(InputSource *)toAdd
-(void)addInput:(NSObject<CSInputSourceProtocol> *)toAdd
{
if (self.previewView)
{
[self.previewView addInputSourceWithInput:toAdd];
toAdd.autoPlaceOnFrameUpdate = YES;
}
}
@ -231,6 +243,11 @@
} else if (tableView == self.initialTable) {
NSObject <CSCaptureSourceProtocol> *item = [self.sourceTypesController.arrangedObjects objectAtIndex:row];
if ([item isEqualTo:[NSNull null]])
{
return [tableView makeViewWithIdentifier:@"initialInputViewScript" owner:self];
}
NSArray *availableVideoDevices = item.availableVideoDevices;
if (availableVideoDevices && availableVideoDevices.count > 0)
{
@ -270,6 +287,7 @@
[ret addObject:newCaptureSession];
}
[ret addObject:[NSNull null]];
_sourceTypeList = ret;
return ret;

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16E195" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12120" systemVersion="16G16b" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12120"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
@ -198,6 +198,27 @@
<constraint firstItem="PSj-LN-dTf" firstAttribute="leading" secondItem="Q3y-sG-NQW" secondAttribute="leading" constant="-3" id="xya-Lt-ORK"/>
</constraints>
</tableCellView>
<tableCellView identifier="initialInputViewScript" id="Iwy-0Z-uug">
<rect key="frame" x="1" y="34" width="179" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button verticalHuggingPriority="750" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NQw-LI-cTP">
<rect key="frame" x="-3" y="-3" width="184" height="23"/>
<buttonCell key="cell" type="smallSquare" title="Script" bezelStyle="smallSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Q7Y-ur-iwy">
<behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="initalTableButtonClicked:" target="-2" id="DJP-BR-TcK"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="NQw-LI-cTP" firstAttribute="centerX" secondItem="Iwy-0Z-uug" secondAttribute="centerX" id="6d3-Ug-AGs"/>
<constraint firstItem="NQw-LI-cTP" firstAttribute="top" secondItem="Iwy-0Z-uug" secondAttribute="top" constant="-3" id="7GA-Nl-Fgk"/>
<constraint firstItem="NQw-LI-cTP" firstAttribute="leading" secondItem="Iwy-0Z-uug" secondAttribute="leading" constant="-3" id="Iwn-Y3-yAK"/>
</constraints>
</tableCellView>
</prototypeCellViews>
</tableColumn>
</tableColumns>

View file

@ -33,9 +33,7 @@
@property (strong) IBOutlet NSObjectController *layoutController;
- (IBAction)cancelEdit:(id)sender;
- (IBAction)editOK:(id)sender;
- (IBAction)newSource:(id)sender;
- (IBAction)inputTableControlClick:(NSButton *)sender;
- (IBAction)recordingButtonAction:(NSButton *)sender;
@property (weak) IBOutlet NSOutlineView *inputOutlineView;
@property (assign) bool previewOnly;

View file

@ -80,11 +80,6 @@
[self close];
}
- (IBAction)newSource:(id)sender
{
[self.previewView addInputSource:self];
}
- (id <NSPasteboardWriting>)outlineView:(NSOutlineView *)outlineView pasteboardWriterForItem:(id)item
@ -236,7 +231,6 @@
{
NSInteger clicked = sender.tag;
NSArray *selectedInputs;
NSRect sbounds;
switch (clicked) {
case 0:

View file

@ -0,0 +1,22 @@
//
// CSScriptInputSourceViewController.h
// CocoaSplit
//
// Created by Zakk on 6/26/17.
// Copyright © 2017 Zakk. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "CSScriptInputSource.h"
@interface CSScriptInputSourceViewController : NSViewController
@property (weak) CSScriptInputSource *inputSource;
@property (strong) IBOutlet NSObjectController *inputSourceController;
@property (unsafe_unretained) IBOutlet NSTextView *textView;
@property (strong) NSArray *scriptTypes;
@property (strong) NSArray *scriptKeys;
@end

View file

@ -0,0 +1,55 @@
//
// CSScriptInputSourceViewController.m
// CocoaSplit
//
// Created by Zakk on 6/26/17.
// Copyright © 2017 Zakk. All rights reserved.
//
#import "CSScriptInputSourceViewController.h"
@interface CSScriptInputSourceViewController ()
@end
@implementation CSScriptInputSourceViewController
-(instancetype) init
{
if (self = [super initWithNibName:@"CSScriptInputSourceViewController" bundle:nil])
{
self.scriptTypes = @[@"After Add", @"Before Delete", @"FrameTick", @"Before Merge", @"After Merge", @"Before Remove", @"Before Replace", @"After Replace"];
self.scriptKeys = @[@"selection.script_afterAdd", @"selection.script_beforeDelete", @"selection.script_frameTick", @"selection.script_beforeMerge", @"selection.script_afterMerge", @"selection.script_beforeRemove", @"selection.script_beforeReplace", @"selection.script_afterReplace"];
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do view setup here.
}
- (IBAction)saveButtonAction:(id)sender
{
[self.inputSourceController commitEditing];
[self.view.window close];
}
-(void) tableViewSelectionDidChange:(NSNotification *)notification
{
NSTableView *tableView = notification.object;
NSString *scriptKey = self.scriptKeys[tableView.selectedRow];
[self.textView bind:@"value" toObject:self.inputSourceController withKeyPath:scriptKey options:nil];
}
@end

View file

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12120" systemVersion="16G16b" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12120"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="CSScriptInputSourceViewController">
<connections>
<outlet property="inputSourceController" destination="RdE-5k-dV2" id="42C-Mi-OPs"/>
<outlet property="tableView" destination="PPX-DU-jdF" id="JQZ-ra-6gy"/>
<outlet property="textView" destination="nJs-JF-Nzw" id="SsK-pg-1OG"/>
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customView id="Hz6-mo-xeY">
<rect key="frame" x="0.0" y="0.0" width="612" height="372"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PLk-yu-Ko8">
<rect key="frame" x="163" y="41" width="449" height="331"/>
<clipView key="contentView" id="mQo-YW-nSi">
<rect key="frame" x="1" y="1" width="432" height="329"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textView importsGraphics="NO" richText="NO" usesFontPanel="YES" findStyle="panel" continuousSpellChecking="YES" allowsUndo="YES" usesRuler="YES" allowsNonContiguousLayout="YES" quoteSubstitution="YES" dashSubstitution="YES" spellingCorrection="YES" smartInsertDelete="YES" id="nJs-JF-Nzw">
<rect key="frame" x="0.0" y="0.0" width="432" height="329"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<size key="minSize" width="432" height="329"/>
<size key="maxSize" width="463" height="10000000"/>
<color key="insertionPointColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="automaticQuoteSubstitutionEnabled" value="NO"/>
</userDefinedRuntimeAttributes>
</textView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="eo3-DM-yya">
<rect key="frame" x="-100" y="-100" width="87" height="18"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="cqD-ZY-zbA">
<rect key="frame" x="433" y="1" width="15" height="329"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
<scrollView autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XEF-WY-59H">
<rect key="frame" x="0.0" y="0.0" width="164" height="372"/>
<clipView key="contentView" id="OZA-8F-X57">
<rect key="frame" x="1" y="1" width="162" height="370"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" id="PPX-DU-jdF">
<rect key="frame" x="0.0" y="0.0" width="162" height="370"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn width="159" minWidth="40" maxWidth="1000" id="AYx-dF-0g3">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="5xg-cU-P9g">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews>
<tableCellView id="YZ5-xq-V0r">
<rect key="frame" x="1" y="1" width="159" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jVP-h7-59w">
<rect key="frame" x="0.0" y="0.0" width="159" height="17"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="rcG-vX-fXp">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="YZ5-xq-V0r" name="value" keyPath="objectValue" id="p49-Ef-QhW"/>
</connections>
</textField>
</subviews>
<constraints>
<constraint firstItem="jVP-h7-59w" firstAttribute="centerX" secondItem="YZ5-xq-V0r" secondAttribute="centerX" id="PFX-d8-vbU"/>
<constraint firstItem="jVP-h7-59w" firstAttribute="leading" secondItem="YZ5-xq-V0r" secondAttribute="leading" constant="2" id="QY5-qd-USo"/>
<constraint firstItem="jVP-h7-59w" firstAttribute="centerY" secondItem="YZ5-xq-V0r" secondAttribute="centerY" id="lbz-7v-Zgv"/>
</constraints>
<connections>
<outlet property="textField" destination="jVP-h7-59w" id="HCa-Q1-UlB"/>
</connections>
</tableCellView>
</prototypeCellViews>
</tableColumn>
</tableColumns>
<connections>
<binding destination="-2" name="content" keyPath="self.scriptTypes" id="hfl-r2-J2h"/>
<outlet property="delegate" destination="-2" id="h8u-by-KHC"/>
</connections>
</tableView>
</subviews>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="cVR-fB-hyD">
<rect key="frame" x="1" y="119" width="223" height="15"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="6oE-AF-jar">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wd7-oc-xYh">
<rect key="frame" x="510" y="0.0" width="88" height="32"/>
<buttonCell key="cell" type="push" title="Save All" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Tpp-In-8hh">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="saveButtonAction:" target="-2" id="xMA-pA-lAC"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="wd7-oc-xYh" secondAttribute="trailing" constant="20" symbolic="YES" id="1o2-IU-xLx"/>
<constraint firstAttribute="bottom" secondItem="wd7-oc-xYh" secondAttribute="bottom" constant="7" id="6Bz-d3-9fj"/>
<constraint firstAttribute="bottom" secondItem="XEF-WY-59H" secondAttribute="bottom" id="K4e-xa-rAE"/>
<constraint firstItem="XEF-WY-59H" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="XZF-ea-bTE"/>
<constraint firstItem="XEF-WY-59H" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="fpH-Gh-e6n"/>
<constraint firstAttribute="trailing" secondItem="PLk-yu-Ko8" secondAttribute="trailing" id="njc-HH-aZE"/>
<constraint firstAttribute="trailing" secondItem="XEF-WY-59H" secondAttribute="trailing" constant="448" id="xXb-ue-Zc6"/>
<constraint firstItem="XEF-WY-59H" firstAttribute="top" secondItem="PLk-yu-Ko8" secondAttribute="top" id="yrH-MY-EHd"/>
<constraint firstItem="PLk-yu-Ko8" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="163" id="z6O-aa-XBP"/>
<constraint firstItem="wd7-oc-xYh" firstAttribute="top" secondItem="PLk-yu-Ko8" secondAttribute="bottom" constant="13" id="zdj-9l-pNF"/>
</constraints>
<point key="canvasLocation" x="198" y="218"/>
</customView>
<objectController id="RdE-5k-dV2" userLabel="inputSourceController">
<connections>
<binding destination="-2" name="contentObject" keyPath="self.inputSource" id="f9f-SK-xR8"/>
</connections>
</objectController>
</objects>
</document>

View file

@ -9,7 +9,7 @@
#import <Foundation/Foundation.h>
#import "SourceLayout.h"
@interface LayoutRenderer : NSObject
@interface LayoutRenderer : NSObject <CALayerDelegate>
{
CVPixelBufferPoolRef _cvpool;
CVPixelBufferRef _currentPB;

View file

@ -69,11 +69,9 @@
- (IBAction)moveInputUp:(id)sender;
- (IBAction)moveInputDown:(id)sender;
- (IBAction)deleteInput:(id)sender;
- (IBAction)addInputSource:(id)sender;
- (IBAction)showInputSettings:(id)sender;
-(void)spawnInputSettings:(InputSource *)forInput atRect:(NSRect)atRect;
-(void)goFullscreen:(NSScreen *)onScreen;
@ -113,7 +111,7 @@
-(void)needsUpdate;
-(NSRect)windowRectforWorldRect:(NSRect)worldRect;
-(NSArray *)resizeRectsForSource:(InputSource *)inputSource withExtra:(float)withExtra;
-(void)addInputSourceWithInput:(InputSource *)source;
-(void)addInputSourceWithInput:(NSObject<CSInputSourceProtocol> *)source;
-(void) highlightSource:(InputSource *)source;
-(void)stopHighlightingSource:(InputSource *)source;
-(void)stopHighlightingAllSources;

View file

@ -1323,7 +1323,7 @@
if (inputUUID)
{
InputSource *clonedSource = [self.sourceLayout inputForUUID:inputUUID];
NSObject<CSInputSourceProtocol> *clonedSource = [self.sourceLayout inputForUUID:inputUUID];
if (clonedSource)
{
[self.sourceLayout deleteSource:clonedSource];
@ -1332,7 +1332,7 @@
}
if (parentUUID)
{
InputSource *parentSource = [self.sourceLayout inputForUUID:parentUUID];
NSObject<CSInputSourceProtocol> *parentSource = [self.sourceLayout inputForUUID:parentUUID];
if (parentSource)
{
[[self.undoManager prepareWithInvocationTarget:self] cloneInputSource:parentSource];
@ -1408,7 +1408,7 @@
}
-(void)addInputSourceWithInput:(InputSource *)source
-(void)addInputSourceWithInput:(NSObject<CSInputSourceProtocol> *)source
{
if (self.sourceLayout)
{
@ -1419,26 +1419,13 @@
}
- (IBAction)addInputSource:(id)sender
{
if (self.sourceLayout)
{
InputSource *newSource = [[InputSource alloc] init];
[self.sourceLayout addSource:newSource];
[[self.undoManager prepareWithInvocationTarget:self] undoAddInput:newSource.uuid];
[self spawnInputSettings:newSource atRect:NSZeroRect];
}
}
-(void)undoEditsource:(NSData *)withData
{
InputSource *restoredSource = [NSKeyedUnarchiver unarchiveObjectWithData:withData];
InputSource *currentSource = [self.sourceLayout inputForUUID:restoredSource.uuid];
NSObject<CSInputSourceProtocol> *currentSource = [self.sourceLayout inputForUUID:restoredSource.uuid];
if (currentSource)
{
[self.sourceLayout deleteSource:currentSource];
@ -1459,10 +1446,11 @@
[self.sourceLayout addSource:restoredSource];
if (parentUUID)
{
InputSource *parentSource = [self.sourceLayout inputForUUID:parentUUID];
if (parentSource)
NSObject<CSInputSourceProtocol> *parentSource = [self.sourceLayout inputForUUID:parentUUID];
if (parentSource && parentSource.layer)
{
[self attachSource:restoredSource toSource:parentSource];
InputSource *vParent = (InputSource *)parentSource;
[self attachSource:restoredSource toSource:vParent];
}
}
[[self.undoManager prepareWithInvocationTarget:self] deleteInput:restoredSource];
@ -1521,7 +1509,7 @@
if (_glLayer)
{
dispatch_async(dispatch_get_main_queue(), ^{
[_glLayer setNeedsDisplay];
[self->_glLayer setNeedsDisplay];
});
@ -1807,7 +1795,7 @@
{
InputSource *configSrc = [self.sourceLayout inputForUUID:uuid];
NSObject<CSInputSourceProtocol> *configSrc = [self.sourceLayout inputForUUID:uuid];
if (!configSrc)
{

View file

@ -133,9 +133,6 @@
{
__weak SourceLayout *weakSelf = self;
}
@ -240,7 +237,7 @@
void (^completionBlock)(void) = [threadDict objectForKey:@"completionBlock"];
void (^exceptionBlock)(NSException *exception) = [threadDict objectForKey:@"exceptionBlock"];
//void (^exceptionBlock)(NSException *exception) = [threadDict objectForKey:@"exceptionBlock"];
JSContext *jsCtx = [[CaptureController sharedCaptureController] setupJavascriptContext];
@ -261,7 +258,6 @@
jsCtx[@"extraDict"] = extraDict;
jsCtx[@"useLayout"] = self;
NSLog(@"RUN ANIMATION CODE %@", animationCode);
// runAnimationForLayoutWithExtraDictionary = function(animation_string, layout, extraDictionary) {
JSValue *runFunc = jsCtx[@"runAnimationForLayoutWithExtraDictionary"];
@ -269,7 +265,6 @@
NSLog(@"SCRIPT RET %@", scriptRet);
NSDictionary *pendingAnimations = scriptRet.toDictionary;
//NSDictionary *pendingAnimations = [runner runAnimation:animationCode forLayout:self withExtraDictionary:extraDict];
@ -610,7 +605,6 @@
NSArray *mergeList;
NSLog(@"MERGE OBJ %@", mergeObj);
if ([mergeObj isKindOfClass:[NSDictionary class]])
{
@ -768,18 +762,33 @@
NSArray *newInputs = diffResult[@"new"];
NSNumber *aStart = nil;
NSString *blockUUID = [CATransaction valueForKey:@"__CS_BLOCK_UUID__"];
NSDictionary *blockObj = [CATransaction valueForKey:@"__CS_BLOCK_OBJECT__"];
if (blockObj)
if (blockUUID)
{
aStart = blockObj[@"current_begin_time"];
if ([aStart isEqual:[NSNull null]])
JSContext *jCtx = [JSContext currentContext];
if (jCtx)
{
aStart = [NSNumber numberWithDouble:CACurrentMediaTime()];
JSValue *mapValue = jCtx[@"block_uuid_map"];
if (mapValue)
{
NSDictionary *blockMap = mapValue.toDictionary;
NSDictionary *blockObj = blockMap[blockUUID];
if (blockMap && blockObj)
{
aStart = blockObj[@"current_begin_time"];
if ([aStart isEqual:[NSNull null]])
{
aStart = nil;
}
}
}
}
}
if (!aStart)
{
aStart = [NSNumber numberWithDouble:CACurrentMediaTime()];
}
CATransition *rTrans = nil;
CABasicAnimation *bTrans = nil;
@ -1507,7 +1516,10 @@
[NSApp registerMIDIResponder:self];
for (NSObject<CSInputSourceProtocol> *src in self.sourceList)
{
[NSApp registerMIDIResponder:src];
if (src.layer)
{
[NSApp registerMIDIResponder:(InputSource *)src];
}
}
}
@ -1555,6 +1567,8 @@
[parentLayer addSublayer:newSource.layer];
videoSource.needsAdjustPosition = NO;
videoSource.needsAdjustment = YES;
videoSource.autoPlaceOnFrameUpdate = YES;
}
@ -1566,6 +1580,7 @@
[self generateTopLevelSourceList];
[NSApp registerMIDIResponder:newSource];
[newSource wasAdded];
[[NSNotificationCenter defaultCenter] postNotificationName:CSNotificationInputAdded object:newSource userInfo:nil];
}
@ -1729,7 +1744,6 @@
needsResize = YES;
}
NSArray *listCopy;
listCopy = [self sourceListOrdered];

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12120" systemVersion="16F73" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12120" systemVersion="16G16b" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12120"/>
@ -521,7 +521,7 @@
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="5Qd-lT-JdD"/>
<connections>
<binding destination="Ulv-k0-DXZ" name="value" keyPath="objectValue.videoInput.libraryImage" id="A8I-Rj-ZYn"/>
<binding destination="Ulv-k0-DXZ" name="value" keyPath="objectValue.libraryImage" id="xbl-9h-4xC"/>
</connections>
</imageView>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" allowsExpansionToolTips="YES" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="HxE-pY-U5v">

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -3,7 +3,6 @@
// CocoaSplit
//
// Created by Zakk on 7/26/14.
// Copyright (c) 2014 Zakk. All rights reserved.
//
#import "InputPopupControllerViewController.h"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"