//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
/// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avplaybackcoordinationmedium?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct AVPlaybackCoordinationMedium;
);
extern_conformance!(
unsafe impl NSObjectProtocol for AVPlaybackCoordinationMedium {}
);
impl AVPlaybackCoordinationMedium {
extern_methods!(
/// Initializes an AVPlaybackCoordinationMedium
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(feature = "AVPlaybackCoordinator")]
/// All playback coordinators that are connected to the coordination medium.
///
/// Returns an array of all the AVPlayerPlaybackCoordinators that are connected to the coordination medium.
/// This coordination is specifically for AVPlayerPlaybackCoordinators, and we exclude AVDelegatingPlaybackCoordinators.
/// AVPlaybackCoordinator properties and methods are individually configurable for each playback coordinator. To ensure correct synchronized behavior across all local playback coordinators, any common AVPlaybackCoordinator properties and methods should be set and called on all playback coordinators in the coordination medium.
/// The properties and methods `otherParticipants`, `setParticipantLimit:forWaitingOutSuspensionsWithReason:`, and `participantLimitForWaitingOutSuspensionsWithReason:` refer specifically to remote participants that are coordinated through a group session rather than through the playback coordination medium. `otherParticipants` only returns participants connected to the same group session. `setParticipantLimit` and `participantLimitForWaitingOutSuspensionsWithReason` affect only policies and behavior with the group session.
#[unsafe(method(connectedPlaybackCoordinators))]
#[unsafe(method_family = none)]
pub unsafe fn connectedPlaybackCoordinators(
&self,
) -> Retained<NSArray<AVPlayerPlaybackCoordinator>>;
);
}
/// Methods declared on superclass `NSObject`.
impl AVPlaybackCoordinationMedium {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}