CBLCoreCameraManualDiscoveryProvider

Objective-C

@protocol CBLCoreCameraManualDiscoveryProvider <NSObject>

Swift

protocol CameraManualDiscoveryProvider : NSObjectProtocol

Implement the CBLCoreCameraManualDiscoveryProvider protocol in order to provide direct connections to your cameras via CascableCore based on user input (i.e., “connect to the camera at 192.168.1.46”). You can then register your manual discovery provider with CascableCore in the plugin entrypoint.

  • Attempt to discover a camera at the given descriptor.

    Your plugin should make a good effort to ensure that there is indeed a camera matching your plugin’s camera family at the given descriptor, and error out if that’s not the case. However, if this isn’t possible to determine (or doing so is tricky without affecting camera state), it’s alright to return a camera object that will generate a connection error when the user attempts to actually connect to the camera.

    Declaration

    Objective-C

    - (void)attemptToDiscoverCameraWithDescriptor:
                (CBLCameraDescriptor *_Nonnull)descriptor
                                       clientName:(NSString *_Nonnull)clientName
                                  completionQueue:
                                      (dispatch_queue_t _Nonnull)completionQueue
                                completionHandler:
                                    (CBLCameraCreationOperationCallback _Nonnull)
                                        completionHandler;

    Swift

    func attemptToDiscoverCamera(with descriptor: CameraDescriptor, clientName: String, completionQueue: dispatch_queue_t) async throws -> any CBLCamera

    Parameters

    descriptor

    The descriptor that describes where the camera is.

    clientName

    The client name to display on the camera, if appropriate.

    completionQueue

    The queue on which to call the completion handler.

    completionHandler

    The completion handler to be called on completionQueue when the operation succeeds or fails.

  • Returns the camera family this provider can connect to.

    Declaration

    Objective-C

    @property (nonatomic, readonly) CBLCameraFamily providerCameraFamily;

    Swift

    var providerCameraFamily: CameraFamily { get }
  • Returns a unique identifier for the provider. Can be the plugin’s bundle ID if it only has one provider.

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly, nonnull) NSString *providerIdentifier;

    Swift

    var providerIdentifier: String { get }