Skip to content

Commit

Permalink
atemOSC v2.4.4
Browse files Browse the repository at this point in the history
- updated to ATEM SDK v6.6
- added support for running ATEM Macros
  • Loading branch information
sneat committed Nov 23, 2015
1 parent 5f92aed commit 98b5a40
Show file tree
Hide file tree
Showing 13 changed files with 609 additions and 297 deletions.
26 changes: 24 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# atemOSC v2.4.3
# atemOSC v2.4.4

## Changelog v2.4.4
- updated to ATEM SDK v6.6
- added support for running ATEM Macros

## Changelog v2.4.3
- updated to ATEM SDK v6.4
Expand Down Expand Up @@ -122,13 +126,31 @@ Additional options.
- **Set SuperSource Box $i source to input $x** `/atem/supersource/$i/source $x`
- Where `$x` is a valid program source. Check the Help Menu for the correct values.
- Other options are available. Check the Help Menu for the full list.
- **Macros**
- Macros should be recorded within the ATEM Control Panel software.
- Macros are stored within the ATEM in a 0-index array
- This means that to access the first recorded Macro, you should use an index `$i` of `0`, to access the second recorded Macro, you should use an index of `1` etc.
- Get the Maximum Number of Macros: `/atem/macros/get-max-number`
- Returns an `int` of the maximum number of Macros supported by your ATEM
- Access to these Macros should be used via an index of `n-1`
- Stop the currently active Macro (if any): `/atem/macros/stop`
- Get the Name of a Macro: `/atem/macros/$i/name`
- Returns a `string` with the name, or "" if the Macro is invalid
- Get the Description of a Macro: `/atem/macros/$i/description`
- Returns a `string` with the description, or "" if the Macro is invalid
- Get whether the Macro at index $i is valid: `/atem/macros/$i/is-valid`
- Returns an `int` of `0|1` to indicate whether the requested Macro is valid
- Run the Macro at index $i: `/atem/macros/$i/run`
- Returns an `int` of `0|1` to indicate whether the requested Macro was executed. A `0` will be returned if the Macro is invalid, or does not exist

All OSC-addresses expect float-values between 0.0 and 1.0 unless otherwise stated.

**A full overview of all OSC-addresses available for your switcher can be obtained from the help-menu inside the application.**

----------

I am using this software with TouchOSC on the iPad. An TouchOSC-interface for the iPad can be found in the repository as well.
This software has been used successfuly with TouchOSC on the iPad. A TouchOSC-interface for the iPad can be found in the repository.

![TouchOSC interface](https://github.com/danielbuechele/atemOSC/raw/master/ipad-interface.png)

This software has been used successfuly with [ControllerMate](http://www.orderedbytes.com/controllermate/) and [X-keys](http://xkeys.com/XkeysKeyboards/index.php) via [sendOSC](http://archive.cnmat.berkeley.edu/OpenSoundControl/clients/sendOSC.html) and [iTerm 2](https://www.iterm2.com/). An example ActionScript for use within ControllerMate can be found in the repository.
18 changes: 11 additions & 7 deletions atemOSC.app/Contents/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>14D136</string>
<string>15B42</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
Expand All @@ -19,25 +19,29 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.4.3</string>
<string>2.4.4</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>6D570</string>
<string>7B1005</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>13F34</string>
<string>15A278</string>
<key>DTSDKName</key>
<string>macosx10.9</string>
<string>macosx10.11</string>
<key>DTXcode</key>
<string>0630</string>
<string>0711</string>
<key>DTXcodeBuild</key>
<string>6D570</string>
<string>7B1005</string>
<key>LSMinimumSystemVersion</key>
<string>10.9</string>
<key>NSMainNibFile</key>
Expand Down
Binary file modified atemOSC.app/Contents/MacOS/atemOSC
Binary file not shown.
Binary file modified atemOSC.app/Contents/Resources/English.lproj/MainMenu.nib
Binary file not shown.
316 changes: 165 additions & 151 deletions atemOSC/BMDSwitcherAPI.h

Large diffs are not rendered by default.

86 changes: 43 additions & 43 deletions atemOSC/BMDSwitcherAPIDispatch.cpp
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
/* -LICENSE-START-
** Copyright (c) 2013 Blackmagic Design
**
** Permission is hereby granted, free of charge, to any person or organization
** obtaining a copy of the software and accompanying documentation covered by
** this license (the "Software") to use, reproduce, display, distribute,
** execute, and transmit the Software, and to prepare derivative works of the
** Software, and to permit third-parties to whom the Software is furnished to
** do so, all subject to the following:
**
** The copyright notices in the Software and this entire statement, including
** the above license grant, this restriction and the following disclaimer,
** must be included in all copies of the Software, in whole or in part, and
** all derivative works of the Software, unless such copies or derivative
** works are solely in the form of machine-executable object code generated by
** a source language processor.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
** DEALINGS IN THE SOFTWARE.
** -LICENSE-END-
*/
** Copyright (c) 2015 Blackmagic Design
**
** Permission is hereby granted, free of charge, to any person or organization
** obtaining a copy of the software and accompanying documentation covered by
** this license (the "Software") to use, reproduce, display, distribute,
** execute, and transmit the Software, and to prepare derivative works of the
** Software, and to permit third-parties to whom the Software is furnished to
** do so, all subject to the following:
**
** The copyright notices in the Software and this entire statement, including
** the above license grant, this restriction and the following disclaimer,
** must be included in all copies of the Software, in whole or in part, and
** all derivative works of the Software, unless such copies or derivative
** works are solely in the form of machine-executable object code generated by
** a source language processor.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
** DEALINGS IN THE SOFTWARE.
** -LICENSE-END-
*/
/* BMDSwitcherAPIDispatch.cpp */

#include "BMDSwitcherAPI.h"
Expand All @@ -39,26 +39,26 @@ static CreateDiscoveryFunc gCreateDiscoveryFunc = NULL;

static void InitBMDSwitcherAPI (void)
{
CFURLRef bundleURL;
bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kBMDSwitcherAPI_BundlePath), kCFURLPOSIXPathStyle, true);
if (bundleURL != NULL)
{
gBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL);
if (gBundleRef != NULL)
{
gCreateDiscoveryFunc = (CreateDiscoveryFunc)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("GetBMDSwitcherDiscoveryInstance_0001"));
}
CFRelease(bundleURL);
}
CFURLRef bundleURL;
bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kBMDSwitcherAPI_BundlePath), kCFURLPOSIXPathStyle, true);
if (bundleURL != NULL)
{
gBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL);
if (gBundleRef != NULL)
{
gCreateDiscoveryFunc = (CreateDiscoveryFunc)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("GetBMDSwitcherDiscoveryInstance_0002"));
}
CFRelease(bundleURL);
}
}

IBMDSwitcherDiscovery* CreateBMDSwitcherDiscoveryInstance (void)
{
pthread_once(&gBMDSwitcherOnceControl, InitBMDSwitcherAPI);
if (gCreateDiscoveryFunc == NULL)
return NULL;

return gCreateDiscoveryFunc();
pthread_once(&gBMDSwitcherOnceControl, InitBMDSwitcherAPI);
if (gCreateDiscoveryFunc == NULL)
return NULL;
return gCreateDiscoveryFunc();
}
Loading

0 comments on commit 98b5a40

Please sign in to comment.