objc2-av-foundation 0.3.2

Bindings to the AVFoundation framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-avf-audio")]
use objc2_avf_audio::*;
use objc2_foundation::*;

use crate::*;

extern_class!(
    /// An AVContinuityDevice represents a physical iOS device that provides capture devices and audio session ports.
    ///
    ///
    /// Each instance of AVContinuityDevice corresponds to a continuity device, such as an iPhone or iPad. Instances of AVContinuityDevice cannot be created directly.
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avcontinuitydevice?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct AVContinuityDevice;
);

extern_conformance!(
    unsafe impl NSObjectProtocol for AVContinuityDevice {}
);

impl AVContinuityDevice {
    extern_methods!(
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;

        /// A connection ID of the continuity device.
        ///
        ///
        /// This property can be used to uniquely identify a continuity device. Every available continuity device has a unique ID that regenerates across device connections and disconnections.
        #[unsafe(method(connectionID))]
        #[unsafe(method_family = none)]
        pub unsafe fn connectionID(&self) -> Retained<NSUUID>;

        /// Indicates whether the continuity device is connected and available to the system.
        ///
        ///
        /// The value of this property is a BOOL indicating whether the continuity device represented by the receiver is connected and available for use. Clients can key value observe the value of this property to be notified when a continuity device is no longer available. When the value of this property becomes NO for a given instance, it will not become YES again. If the same physical continuity device again becomes available to the system, it will be represented using a new instance of AVContinuityDevice.
        #[unsafe(method(isConnected))]
        #[unsafe(method_family = none)]
        pub unsafe fn isConnected(&self) -> bool;

        #[cfg(feature = "AVCaptureDevice")]
        /// The video capture devices available from the continuity device.
        #[unsafe(method(videoDevices))]
        #[unsafe(method_family = none)]
        pub unsafe fn videoDevices(&self) -> Retained<NSArray<AVCaptureDevice>>;

        #[cfg(feature = "objc2-avf-audio")]
        /// The audio session inputs available from the continuity device.
        #[unsafe(method(audioSessionInputs))]
        #[unsafe(method_family = none)]
        pub unsafe fn audioSessionInputs(&self)
            -> Retained<NSArray<AVAudioSessionPortDescription>>;
    );
}