diff --git a/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Info.plist b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Info.plist
new file mode 100644
index 0000000..b133713
--- /dev/null
+++ b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Info.plist
@@ -0,0 +1,56 @@
+
+
+
+
+ BuildMachineOSBuild
+ 19H1030
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ ATEM Camera Control
+ CFBundleIconFile
+ AppIcon
+ CFBundleIconName
+ AppIcon
+ CFBundleIdentifier
+ com.antlerpost.ATEM-Camera-Control
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ATEM Camera Control
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0.2
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 3
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 12C33
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 11.1
+ DTSDKBuild
+ 20C63
+ DTSDKName
+ macosx11.1
+ DTXcode
+ 1230
+ DTXcodeBuild
+ 12C33
+ LSMinimumSystemVersion
+ 10.9
+ NSHumanReadableCopyright
+ Copyright © 2021 Antler Post. All rights reserved.
+ NSMainNibFile
+ MainMenu
+ NSPrincipalClass
+ NSApplication
+
+
diff --git a/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/MacOS/ATEM Camera Control b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/MacOS/ATEM Camera Control
new file mode 100755
index 0000000..8e5b2f4
Binary files /dev/null and b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/MacOS/ATEM Camera Control differ
diff --git a/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/PkgInfo b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/PkgInfo
new file mode 100644
index 0000000..bd04210
--- /dev/null
+++ b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/PkgInfo
@@ -0,0 +1 @@
+APPL????
\ No newline at end of file
diff --git a/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/ATEMicon.png b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/ATEMicon.png
new file mode 100644
index 0000000..73f9c8e
Binary files /dev/null and b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/ATEMicon.png differ
diff --git a/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/AppIcon.icns b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/AppIcon.icns
new file mode 100644
index 0000000..2789d8d
Binary files /dev/null and b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/AppIcon.icns differ
diff --git a/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/Assets.car b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/Assets.car
new file mode 100644
index 0000000..9971c66
Binary files /dev/null and b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/Assets.car differ
diff --git a/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/Base.lproj/MainMenu.nib b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/Base.lproj/MainMenu.nib
new file mode 100644
index 0000000..8f2aa54
Binary files /dev/null and b/builds/ATEM Camera Control 2021-07-26 14-10-10/ATEM Camera Control.app/Contents/Resources/Base.lproj/MainMenu.nib differ
diff --git a/source/ATEM Camera Control.xcodeproj/project.pbxproj b/source/ATEM Camera Control.xcodeproj/project.pbxproj
index 235ccba..2eaf6ec 100644
--- a/source/ATEM Camera Control.xcodeproj/project.pbxproj
+++ b/source/ATEM Camera Control.xcodeproj/project.pbxproj
@@ -276,12 +276,12 @@
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 2;
+ CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = "ATEM Camera Control/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.9;
- MARKETING_VERSION = 1.0.1;
+ MARKETING_VERSION = 1.0.2;
PRODUCT_BUNDLE_IDENTIFIER = "com.antlerpost.ATEM-Camera-Control";
PRODUCT_NAME = "$(TARGET_NAME)";
};
@@ -296,12 +296,12 @@
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 2;
+ CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = "ATEM Camera Control/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.9;
- MARKETING_VERSION = 1.0.1;
+ MARKETING_VERSION = 1.0.2;
PRODUCT_BUNDLE_IDENTIFIER = "com.antlerpost.ATEM-Camera-Control";
PRODUCT_NAME = "$(TARGET_NAME)";
};
diff --git a/source/ATEM Camera Control/AppDelegate.h b/source/ATEM Camera Control/AppDelegate.h
index a3b8f80..332b450 100644
--- a/source/ATEM Camera Control/AppDelegate.h
+++ b/source/ATEM Camera Control/AppDelegate.h
@@ -93,6 +93,16 @@
- (IBAction)gradeLiftUpdate:(id)sender;
- (IBAction)gradeGammaUpdate:(id)sender;
- (IBAction)gradeSatUpdate:(id)sender;
+- (IBAction)runMacroZero:(id)sender;
+- (IBAction)runMacroOne:(id)sender;
+- (IBAction)runMacroTwo:(id)sender;
+- (IBAction)runMacroThree:(id)sender;
+- (IBAction)runMacroFour:(id)sender;
+- (IBAction)runMacroFive:(id)sender;
+- (IBAction)runMacroSix:(id)sender;
+- (IBAction)runMacroSeven:(id)sender;
+- (IBAction)runMacroNine:(id)sender;
+- (IBAction)runMacroEight:(id)sender;
@end
diff --git a/source/ATEM Camera Control/AppDelegate.mm b/source/ATEM Camera Control/AppDelegate.mm
index 8747957..073a003 100644
--- a/source/ATEM Camera Control/AppDelegate.mm
+++ b/source/ATEM Camera Control/AppDelegate.mm
@@ -15,6 +15,7 @@
static const uint8_t kCameraAddress = 1; // Camera Number 1
IBMDSwitcher* switcher;
IBMDSwitcherCameraControl* cameraControl;
+IBMDSwitcherMacroControl* macroControl;
double focus = 0.35;
double iris = 0.0;
double zoom = 0.5;
@@ -83,6 +84,13 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSRunAlertPanel(@"Camera Failure", @"Too bad!", @"Quit", nil, nil);
[NSApp terminate:self];
}
+ // Get camera control interface from switcher object
+ result = switcher->QueryInterface(IID_IBMDSwitcherMacroControl, (void**)¯oControl);
+ if (result != S_OK)
+ {
+ NSRunAlertPanel(@"Macro Failure", @"Too bad!", @"Quit", nil, nil);
+ [NSApp terminate:self];
+ }
[_memA sendActionOn:NSEventMaskLeftMouseDown];
[_memB sendActionOn:NSEventMaskLeftMouseDown];
[_memC sendActionOn:NSEventMaskLeftMouseDown];
@@ -634,6 +642,86 @@ - (IBAction)gradeGammaUpdate:(id)sender {
[self sendGamma];
}
+- (IBAction)runMacroEight:(id)sender {
+ HRESULT result = macroControl->Run(8);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Eight");
+ }
+}
+
+- (IBAction)runMacroNine:(id)sender {
+ HRESULT result = macroControl->Run(9);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Nine");
+ }
+}
+
+- (IBAction)runMacroSeven:(id)sender {
+ HRESULT result = macroControl->Run(7);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Seven");
+ }
+}
+
+- (IBAction)runMacroSix:(id)sender {
+ HRESULT result = macroControl->Run(6);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Six");
+ }
+}
+
+- (IBAction)runMacroFive:(id)sender {
+ HRESULT result = macroControl->Run(5);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Five");
+ }
+}
+
+- (IBAction)runMacroFour:(id)sender {
+ HRESULT result = macroControl->Run(4);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Four");
+ }
+}
+
+- (IBAction)runMacroThree:(id)sender {
+ HRESULT result = macroControl->Run(3);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Three");
+ }
+}
+
+- (IBAction)runMacroTwo:(id)sender {
+ HRESULT result = macroControl->Run(2);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Two");
+ }
+}
+
+- (IBAction)runMacroOne:(id)sender {
+ HRESULT result = macroControl->Run(1);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro One");
+ }
+}
+
+- (IBAction)runMacroZero:(id)sender {
+ HRESULT result = macroControl->Run(0);
+ if (result != S_OK)
+ {
+ NSLog(@"Failed to send Macro Zero");
+ }
+}
+
- (IBAction)gradeSatUpdate:(id)sender {
gradeSat = [sender floatValue];
[self.gradeSatField setFloatValue:gradeSat];
diff --git a/source/ATEM Camera Control/Base.lproj/MainMenu.xib b/source/ATEM Camera Control/Base.lproj/MainMenu.xib
index dbb4f56..82ede1d 100644
--- a/source/ATEM Camera Control/Base.lproj/MainMenu.xib
+++ b/source/ATEM Camera Control/Base.lproj/MainMenu.xib
@@ -429,6 +429,63 @@
+