Skip to content

Commit

Permalink
Release CascableCore 12.3
Browse files Browse the repository at this point in the history
  • Loading branch information
iKenndac committed Jul 20, 2023
1 parent c802653 commit bae2aaf
Show file tree
Hide file tree
Showing 47 changed files with 647 additions and 328 deletions.
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
# CascableCore 12.3

### New Property: Video Recording Format

The new `CBLPropertyIdentifierVideoRecordingFormat` property allows the ability to change the camera's video recording format on supported cameras. This property is currently implemented for Canon and Nikon cameras.

Objects for this property conform to `id <CBLVideoFormatProperty>` and values to `id <CBLVideoFormatPropertyValue>`, allowing the programmatic inspection of the frame rate and frame size of each format value. For users of our [CascableCoreSwift](https://github.com/cascable/cascablecore-swift) library, you'll get a typed property with `VideoFormatValue` common values.

### Camera Compatibility

- Added support for the Canon EOS R6 Mark II, EOS R100, EOS R8, and EOS R50. [CORE-558]

- Added support for the Nikon Z8 and Z30.

### Bug Fixes

- Fixed a problem that would cause video recording to fail to start on newer Nikon cameras. [CORE-507]

- Fixed a problem that would cause still image shooting to get "stuck" on Canon cameras that'd been connected to other apps (such as EOS Utility) that configure the camera with a "PC" image destination before being connected to CascableCore without being switched off in between - CascableCore will clear that destination upon connection. A future update will enable full support for this shooting mode and the `CBLPropertyIdentifierImageDestination` property. [CORE-563]


# CascableCore 12.2.4

### Bug Fixes
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,25 @@
//

@import Foundation;
@import CoreGraphics;

@protocol CBLCamera;
@protocol CBLCameraProperty;
@protocol CBLPropertyValue;
@protocol CBLExposurePropertyValue;
@protocol CBLVideoFormatPropertyValue;

@protocol CBLUniversalExposurePropertyValue;

/// Property identifiers.
typedef NS_ENUM(NSUInteger, CBLPropertyIdentifier) {
/// The camera's ISO speed setting. Common values will be of type CBLISOValue.
/// The camera's ISO speed setting.
CBLPropertyIdentifierISOSpeed,
/// The camera's shutter speed setting. Common values will be of type CBLShutterSpeedValue.
/// The camera's shutter speed setting.
CBLPropertyIdentifierShutterSpeed,
/// The camera's aperture setting. Common values will be of type CBLApertureValue.
/// The camera's aperture setting.
CBLPropertyIdentifierAperture,
/// The camera's exposure compensation setting. Common values will be of type CBLExposureCompensationValue.
/// The camera's exposure compensation setting.
CBLPropertyIdentifierExposureCompensation,
/// The camera's battery level. Common values will be of type `CBLPropertyCommonValueBatteryLevel`.
CBLPropertyIdentifierBatteryLevel,
Expand Down Expand Up @@ -71,6 +73,8 @@ typedef NS_ENUM(NSUInteger, CBLPropertyIdentifier) {
CBLPropertyIdentifierReadyForCapture,
/// The target destination for images when connected to a host like CascableCore. Common values will be of type `CBLPropertyCommonValueImageDestination`.
CBLPropertyIdentifierImageDestination,
/// The camera's video recording format.
CBLPropertyIdentifierVideoRecordingFormat,
CBLPropertyIdentifierMax,

CBLPropertyIdentifierUnknown = NSNotFound
Expand All @@ -80,7 +84,7 @@ typedef NS_ENUM(NSUInteger, CBLPropertyIdentifier) {
typedef NS_ENUM(NSInteger, CBLPropertyCategory) {
/// The category of the property is unknown.
CBLPropertyCategoryUnknown,
/// Shutter speed, ISO, EV, etc. Common values are guaranteed to conform to CBLExposureProperty.
/// Shutter speed, ISO, EV, etc. These properties are guaranteed to conform to `CBLExposureProperty`.
CBLPropertyCategoryExposureSetting,
/// Focus modes, etc — settings that affect how the image is captured.
CBLPropertyCategoryCaptureSetting,
Expand All @@ -89,7 +93,9 @@ typedef NS_ENUM(NSInteger, CBLPropertyCategory) {
/// File format, etc — settings that don't affect the image.
CBLPropertyCategoryConfigurationSetting,
/// Shots remaining, battery, etc — information about the camera that's usually read-only.
CBLPropertyCategoryInformation
CBLPropertyCategoryInformation,
/// Video format information. These properties are guaranteed to conform to `CBLVideoFormatProperty`.
CBLPropertyCategoryVideoFormat
} NS_SWIFT_NAME(PropertyCategory);

/// Option set for identifying the type of change that occurred to a property. For performance reasons, CascableCore
Expand Down Expand Up @@ -299,6 +305,18 @@ NS_SWIFT_NAME(ExposureProperty)

@end

/// A property that exposes its values as universal video format description values.
NS_SWIFT_NAME(VideoFormatProperty)
@protocol CBLVideoFormatProperty <CBLCameraProperty>

/// Returns the current value as a universal video format description value.
@property (nonatomic, readonly, copy, nullable) id <CBLVideoFormatPropertyValue> currentVideoFormatValue;

/// Returns the valid settable values as an array of video format description values.
@property (nonatomic, readonly, copy, nullable) NSArray <id <CBLVideoFormatPropertyValue>> *validSettableVideoFormatValues;

@end

/// A property value. This could either be the current value of a property, or something in the list of values that can be set.
NS_SWIFT_NAME(PropertyValue)
@protocol CBLPropertyValue <NSObject>
Expand Down Expand Up @@ -329,6 +347,18 @@ NS_SWIFT_NAME(ExposurePropertyValue)

@end

/// A property value that represents a video format description.
NS_SWIFT_NAME(VideoFormatPropertyValue)
@protocol CBLVideoFormatPropertyValue <CBLPropertyValue>

/// Returns the video format's frame rate, if available. If not available, returns `NSNotFound`.
@property (nonatomic, readonly) NSInteger frameRate;

/// Returns the video format's frame size, in pixels, if available. If not available, returns `CGSizeZero`.
@property (nonatomic, readonly) CGSize frameSize;

@end

// MARK: - Common Values

/// Boolean common values.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/// Returns a detailed version string for the SDK.
static NSString * const CBLCoreVerboseVersion NS_SWIFT_NAME(CascableCoreVerboseVersion) = @"12.2.4-g02deddf";
static NSString * const CBLCoreVerboseVersion NS_SWIFT_NAME(CascableCoreVerboseVersion) = @"12.3-gb9c3cba";
/// Returns the build number for the SDK.
static NSString * const CBLCoreBundleVersion NS_SWIFT_NAME(CascableCoreBundleVersion) = @"1644";
static NSString * const CBLCoreBundleVersion NS_SWIFT_NAME(CascableCoreBundleVersion) = @"1661";
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#if 0
#elif defined(__arm64__) && __arm64__
// Generated by Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
// Generated by Apple Swift version 5.8.1 (swiftlang-5.8.0.124.5 clang-1403.0.22.11.100)
#ifndef CASCABLECORE_SWIFT_H
#define CASCABLECORE_SWIFT_H
#pragma clang diagnostic push
Expand All @@ -23,7 +23,6 @@
# include <swift/objc-prologue.h>
#endif

#pragma clang diagnostic ignored "-Wduplicate-method-match"
#pragma clang diagnostic ignored "-Wauto-import"
#if defined(__OBJC__)
#include <Foundation/Foundation.h>
Expand All @@ -32,10 +31,24 @@
#include <cstdint>
#include <cstddef>
#include <cstdbool>
#include <cstring>
#include <stdlib.h>
#include <new>
#include <type_traits>
#else
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <string.h>
#endif
#if defined(__cplusplus)
#if __has_include(<ptrauth.h>)
# include <ptrauth.h>
#else
# ifndef __ptrauth_swift_value_witness_function_pointer
# define __ptrauth_swift_value_witness_function_pointer(x)
# endif
#endif
#endif

#if !defined(SWIFT_TYPEDEFS)
Expand Down Expand Up @@ -71,53 +84,66 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
# if __has_feature(objc_class_property)
# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
# define SWIFT_CLASS_PROPERTY(...)
# define SWIFT_CLASS_PROPERTY(...)
# endif
#endif

#if __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
#else
# define SWIFT_RUNTIME_NAME(X)
#if !defined(SWIFT_RUNTIME_NAME)
# if __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
# else
# define SWIFT_RUNTIME_NAME(X)
# endif
#endif
#if __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
#else
# define SWIFT_COMPILE_NAME(X)
#if !defined(SWIFT_COMPILE_NAME)
# if __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
# else
# define SWIFT_COMPILE_NAME(X)
# endif
#endif
#if __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
#else
# define SWIFT_METHOD_FAMILY(X)
#if !defined(SWIFT_METHOD_FAMILY)
# if __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
# else
# define SWIFT_METHOD_FAMILY(X)
# endif
#endif
#if __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
#else
# define SWIFT_NOESCAPE
#if !defined(SWIFT_NOESCAPE)
# if __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
# else
# define SWIFT_NOESCAPE
# endif
#endif
#if __has_attribute(ns_consumed)
# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
#else
# define SWIFT_RELEASES_ARGUMENT
#if !defined(SWIFT_RELEASES_ARGUMENT)
# if __has_attribute(ns_consumed)
# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
# else
# define SWIFT_RELEASES_ARGUMENT
# endif
#endif
#if __has_attribute(warn_unused_result)
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else
# define SWIFT_WARN_UNUSED_RESULT
#if !defined(SWIFT_WARN_UNUSED_RESULT)
# if __has_attribute(warn_unused_result)
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
# else
# define SWIFT_WARN_UNUSED_RESULT
# endif
#endif
#if __has_attribute(noreturn)
# define SWIFT_NORETURN __attribute__((noreturn))
#else
# define SWIFT_NORETURN
#if !defined(SWIFT_NORETURN)
# if __has_attribute(noreturn)
# define SWIFT_NORETURN __attribute__((noreturn))
# else
# define SWIFT_NORETURN
# endif
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if __has_attribute(objc_subclassing_restricted)
Expand All @@ -137,28 +163,25 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
# endif
#endif

#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif

#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif

#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if __has_attribute(objc_designated_initializer)
# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
# define OBJC_DESIGNATED_INITIALIZER
# define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM_ATTR)
# if defined(__has_attribute) && __has_attribute(enum_extensibility)
# if __has_attribute(enum_extensibility)
# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
# else
# define SWIFT_ENUM_ATTR(_extensibility)
# define SWIFT_ENUM_ATTR(_extensibility)
# endif
#endif
#if !defined(SWIFT_ENUM)
Expand Down Expand Up @@ -187,14 +210,16 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
#if !defined(SWIFT_DEPRECATED_MSG)
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
#endif
#if __has_feature(attribute_diagnose_if_objc)
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
#else
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
#if !defined(SWIFT_DEPRECATED_OBJC)
# if __has_feature(attribute_diagnose_if_objc)
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
# else
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
# endif
#endif
#if defined(__OBJC__)
#if !defined(IBSegueAction)
# define IBSegueAction
# define IBSegueAction
#endif
#endif
#if !defined(SWIFT_EXTERN)
Expand All @@ -207,26 +232,31 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
#if !defined(SWIFT_CALL)
# define SWIFT_CALL __attribute__((swiftcall))
#endif
#if !defined(SWIFT_INDIRECT_RESULT)
# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
#endif
#if !defined(SWIFT_CONTEXT)
# define SWIFT_CONTEXT __attribute__((swift_context))
#endif
#if !defined(SWIFT_ERROR_RESULT)
# define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
#endif
#if defined(__cplusplus)
#if !defined(SWIFT_NOEXCEPT)
# define SWIFT_NOEXCEPT noexcept
#endif
#else
#if !defined(SWIFT_NOEXCEPT)
# define SWIFT_NOEXCEPT
#endif
#if defined(_WIN32)
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
#endif
#if defined(__cplusplus)
#if !defined(SWIFT_CXX_INT_DEFINED)
#define SWIFT_CXX_INT_DEFINED
namespace swift {
using Int = ptrdiff_t;
using UInt = size_t;
}
#else
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL
#endif
#endif
#if defined(__OBJC__)
#if __has_feature(modules)
#if __has_feature(objc_modules)
#if __has_warning("-Watimport-in-framework-header")
#pragma clang diagnostic ignored "-Watimport-in-framework-header"
#endif
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit bae2aaf

Please sign in to comment.