use objc2::__framework_prelude::*;
use crate::*;
extern_methods!(
#[cfg(feature = "AVPictureInPictureController")]
unsafe impl AVPictureInPictureController {
#[method(invalidatePlaybackState)]
pub unsafe fn invalidatePlaybackState(&self);
}
);
extern_protocol!(
pub unsafe trait AVPictureInPictureSampleBufferPlaybackDelegate:
NSObjectProtocol
{
#[cfg(feature = "AVPictureInPictureController")]
#[method(pictureInPictureController:setPlaying:)]
unsafe fn pictureInPictureController_setPlaying(
&self,
picture_in_picture_controller: &AVPictureInPictureController,
playing: bool,
);
#[cfg(feature = "AVPictureInPictureController")]
#[method(pictureInPictureControllerIsPlaybackPaused:)]
unsafe fn pictureInPictureControllerIsPlaybackPaused(
&self,
picture_in_picture_controller: &AVPictureInPictureController,
) -> bool;
#[cfg(feature = "AVPictureInPictureController")]
#[optional]
#[method(pictureInPictureControllerShouldProhibitBackgroundAudioPlayback:)]
unsafe fn pictureInPictureControllerShouldProhibitBackgroundAudioPlayback(
&self,
picture_in_picture_controller: &AVPictureInPictureController,
) -> bool;
}
unsafe impl ProtocolType for dyn AVPictureInPictureSampleBufferPlaybackDelegate {}
);
extern_methods!(
#[cfg(feature = "AVPictureInPictureController")]
unsafe impl AVPictureInPictureControllerContentSource {
#[method_id(@__retain_semantics Other sampleBufferPlaybackDelegate)]
pub unsafe fn sampleBufferPlaybackDelegate(
&self,
) -> Option<Retained<ProtocolObject<dyn AVPictureInPictureSampleBufferPlaybackDelegate>>>;
}
);