//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use crate::common::*;
use crate::AppKit::*;
use crate::Foundation::*;
use crate::MediaPlayer::*;

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "MediaPlayer_MPRemoteCommandCenter")]
    pub struct MPRemoteCommandCenter;

    #[cfg(feature = "MediaPlayer_MPRemoteCommandCenter")]
    unsafe impl ClassType for MPRemoteCommandCenter {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

#[cfg(feature = "MediaPlayer_MPRemoteCommandCenter")]
unsafe impl NSObjectProtocol for MPRemoteCommandCenter {}

extern_methods!(
    #[cfg(feature = "MediaPlayer_MPRemoteCommandCenter")]
    unsafe impl MPRemoteCommandCenter {
        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other pauseCommand)]
        pub unsafe fn pauseCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other playCommand)]
        pub unsafe fn playCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other stopCommand)]
        pub unsafe fn stopCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other togglePlayPauseCommand)]
        pub unsafe fn togglePlayPauseCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other enableLanguageOptionCommand)]
        pub unsafe fn enableLanguageOptionCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other disableLanguageOptionCommand)]
        pub unsafe fn disableLanguageOptionCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPChangePlaybackRateCommand")]
        #[method_id(@__retain_semantics Other changePlaybackRateCommand)]
        pub unsafe fn changePlaybackRateCommand(&self) -> Id<MPChangePlaybackRateCommand>;

        #[cfg(feature = "MediaPlayer_MPChangeRepeatModeCommand")]
        #[method_id(@__retain_semantics Other changeRepeatModeCommand)]
        pub unsafe fn changeRepeatModeCommand(&self) -> Id<MPChangeRepeatModeCommand>;

        #[cfg(feature = "MediaPlayer_MPChangeShuffleModeCommand")]
        #[method_id(@__retain_semantics Other changeShuffleModeCommand)]
        pub unsafe fn changeShuffleModeCommand(&self) -> Id<MPChangeShuffleModeCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other nextTrackCommand)]
        pub unsafe fn nextTrackCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other previousTrackCommand)]
        pub unsafe fn previousTrackCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPSkipIntervalCommand")]
        #[method_id(@__retain_semantics Other skipForwardCommand)]
        pub unsafe fn skipForwardCommand(&self) -> Id<MPSkipIntervalCommand>;

        #[cfg(feature = "MediaPlayer_MPSkipIntervalCommand")]
        #[method_id(@__retain_semantics Other skipBackwardCommand)]
        pub unsafe fn skipBackwardCommand(&self) -> Id<MPSkipIntervalCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other seekForwardCommand)]
        pub unsafe fn seekForwardCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPRemoteCommand")]
        #[method_id(@__retain_semantics Other seekBackwardCommand)]
        pub unsafe fn seekBackwardCommand(&self) -> Id<MPRemoteCommand>;

        #[cfg(feature = "MediaPlayer_MPChangePlaybackPositionCommand")]
        #[method_id(@__retain_semantics Other changePlaybackPositionCommand)]
        pub unsafe fn changePlaybackPositionCommand(&self) -> Id<MPChangePlaybackPositionCommand>;

        #[cfg(feature = "MediaPlayer_MPRatingCommand")]
        #[method_id(@__retain_semantics Other ratingCommand)]
        pub unsafe fn ratingCommand(&self) -> Id<MPRatingCommand>;

        #[cfg(feature = "MediaPlayer_MPFeedbackCommand")]
        #[method_id(@__retain_semantics Other likeCommand)]
        pub unsafe fn likeCommand(&self) -> Id<MPFeedbackCommand>;

        #[cfg(feature = "MediaPlayer_MPFeedbackCommand")]
        #[method_id(@__retain_semantics Other dislikeCommand)]
        pub unsafe fn dislikeCommand(&self) -> Id<MPFeedbackCommand>;

        #[cfg(feature = "MediaPlayer_MPFeedbackCommand")]
        #[method_id(@__retain_semantics Other bookmarkCommand)]
        pub unsafe fn bookmarkCommand(&self) -> Id<MPFeedbackCommand>;

        #[method_id(@__retain_semantics Other sharedCommandCenter)]
        pub unsafe fn sharedCommandCenter() -> Id<MPRemoteCommandCenter>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Option<Allocated<Self>>) -> Id<Self>;
    }
);
