mirror of
https://github.com/zakk4223/CocoaSplit.git
synced 2026-05-15 14:15:50 -06:00
Added script-only input type.
First pass at executing input-scripts on layout changes/operations.
This commit is contained in:
parent
c7765f98d4
commit
1bb640cbe0
64 changed files with 722 additions and 151 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -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"];
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
@end
|
||||
|
||||
@interface CAMultiAudioNode : NSObject <CAMultiAudioNodeJSExport>
|
||||
@interface CAMultiAudioNode : NSObject <CAMultiAudioNodeJSExport, NSAnimationDelegate>
|
||||
{
|
||||
float _saved_volume;
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@
|
|||
@synthesize delay = _delay;
|
||||
|
||||
|
||||
|
||||
|
||||
-(instancetype)initWithSubType:(OSType)subType unitType:(OSType)unitType
|
||||
{
|
||||
if (self = [super init])
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
13
CocoaSplit/CSScriptInputSource.h
Normal file
13
CocoaSplit/CSScriptInputSource.h
Normal 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
|
||||
35
CocoaSplit/CSScriptInputSource.m
Normal file
35
CocoaSplit/CSScriptInputSource.m
Normal 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
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@
|
|||
-(NSInteger) outputCount;
|
||||
-(void) reset;
|
||||
-(bool) validate:(NSError **)therror;
|
||||
-(void) addAudioData:(CMSampleBufferRef)audioData;
|
||||
-(id <CSCompressorViewControllerProtocol>)getConfigurationView;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -69,9 +69,6 @@
|
|||
-(void)popoverDidClose:(NSNotification *)notification
|
||||
{
|
||||
|
||||
AppDelegate *appDel = NSApp.delegate;
|
||||
|
||||
|
||||
self.popover.contentViewController = nil;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
22
CocoaSplit/Interface/CSScriptInputSourceViewController.h
Normal file
22
CocoaSplit/Interface/CSScriptInputSourceViewController.h
Normal 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
|
||||
55
CocoaSplit/Interface/CSScriptInputSourceViewController.m
Normal file
55
CocoaSplit/Interface/CSScriptInputSourceViewController.m
Normal 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
|
||||
153
CocoaSplit/Interface/CSScriptInputSourceViewController.xib
Normal file
153
CocoaSplit/Interface/CSScriptInputSourceViewController.xib
Normal 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>
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
#import "SourceLayout.h"
|
||||
|
||||
@interface LayoutRenderer : NSObject
|
||||
@interface LayoutRenderer : NSObject <CALayerDelegate>
|
||||
{
|
||||
CVPixelBufferPoolRef _cvpool;
|
||||
CVPixelBufferRef _currentPB;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
// CocoaSplit
|
||||
//
|
||||
// Created by Zakk on 7/26/14.
|
||||
// Copyright (c) 2014 Zakk. All rights reserved.
|
||||
//
|
||||
|
||||
#import "InputPopupControllerViewController.h"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue