objc2_media_player/generated/
MPNowPlayingInfoCenter.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfomediatype?language=objc)
11// NS_ENUM
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct MPNowPlayingInfoMediaType(pub NSUInteger);
15impl MPNowPlayingInfoMediaType {
16    #[doc(alias = "MPNowPlayingInfoMediaTypeNone")]
17    pub const None: Self = Self(0);
18    #[doc(alias = "MPNowPlayingInfoMediaTypeAudio")]
19    pub const Audio: Self = Self(1);
20    #[doc(alias = "MPNowPlayingInfoMediaTypeVideo")]
21    pub const Video: Self = Self(2);
22}
23
24unsafe impl Encode for MPNowPlayingInfoMediaType {
25    const ENCODING: Encoding = NSUInteger::ENCODING;
26}
27
28unsafe impl RefEncode for MPNowPlayingInfoMediaType {
29    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
30}
31
32/// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayingplaybackstate?language=objc)
33// NS_ENUM
34#[repr(transparent)]
35#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
36pub struct MPNowPlayingPlaybackState(pub NSUInteger);
37impl MPNowPlayingPlaybackState {
38    #[doc(alias = "MPNowPlayingPlaybackStateUnknown")]
39    pub const Unknown: Self = Self(0);
40    #[doc(alias = "MPNowPlayingPlaybackStatePlaying")]
41    pub const Playing: Self = Self(1);
42    #[doc(alias = "MPNowPlayingPlaybackStatePaused")]
43    pub const Paused: Self = Self(2);
44    #[doc(alias = "MPNowPlayingPlaybackStateStopped")]
45    pub const Stopped: Self = Self(3);
46    #[doc(alias = "MPNowPlayingPlaybackStateInterrupted")]
47    pub const Interrupted: Self = Self(4);
48}
49
50unsafe impl Encode for MPNowPlayingPlaybackState {
51    const ENCODING: Encoding = NSUInteger::ENCODING;
52}
53
54unsafe impl RefEncode for MPNowPlayingPlaybackState {
55    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
56}
57
58extern_class!(
59    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfocenter?language=objc)
60    #[unsafe(super(NSObject))]
61    #[derive(Debug, PartialEq, Eq, Hash)]
62    pub struct MPNowPlayingInfoCenter;
63);
64
65extern_conformance!(
66    unsafe impl NSObjectProtocol for MPNowPlayingInfoCenter {}
67);
68
69impl MPNowPlayingInfoCenter {
70    extern_methods!(
71        /// Returns the default now playing info center.
72        /// The default center holds now playing info about the current application.
73        #[unsafe(method(defaultCenter))]
74        #[unsafe(method_family = none)]
75        pub unsafe fn defaultCenter() -> Retained<MPNowPlayingInfoCenter>;
76
77        #[unsafe(method(new))]
78        #[unsafe(method_family = new)]
79        pub unsafe fn new() -> Retained<Self>;
80
81        #[unsafe(method(init))]
82        #[unsafe(method_family = init)]
83        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
84
85        /// The current now playing info for the center.
86        /// Setting the info to nil will clear it.
87        #[unsafe(method(nowPlayingInfo))]
88        #[unsafe(method_family = none)]
89        pub unsafe fn nowPlayingInfo(&self) -> Option<Retained<NSDictionary<NSString, AnyObject>>>;
90
91        /// Setter for [`nowPlayingInfo`][Self::nowPlayingInfo].
92        ///
93        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
94        ///
95        /// # Safety
96        ///
97        /// `now_playing_info` generic should be of the correct type.
98        #[unsafe(method(setNowPlayingInfo:))]
99        #[unsafe(method_family = none)]
100        pub unsafe fn setNowPlayingInfo(
101            &self,
102            now_playing_info: Option<&NSDictionary<NSString, AnyObject>>,
103        );
104
105        /// The current playback state of the app.
106        /// This only applies on macOS, where playback state cannot be determined by
107        /// the application's audio session. This property must be set every time
108        /// the app begins or halts playback, otherwise remote control functionality may
109        /// not work as expected.
110        #[unsafe(method(playbackState))]
111        #[unsafe(method_family = none)]
112        pub unsafe fn playbackState(&self) -> MPNowPlayingPlaybackState;
113
114        /// Setter for [`playbackState`][Self::playbackState].
115        #[unsafe(method(setPlaybackState:))]
116        #[unsafe(method_family = none)]
117        pub unsafe fn setPlaybackState(&self, playback_state: MPNowPlayingPlaybackState);
118
119        /// Keys related to animated artwork that are supported by the current platform.
120        ///
121        /// If you specify an instance of animated artwork (an `MPMediaItemAnimatedArtwork`) to
122        /// `nowPlayingInfo` using any key not in this collection it will be ignored.
123        #[unsafe(method(supportedAnimatedArtworkKeys))]
124        #[unsafe(method_family = none)]
125        pub unsafe fn supportedAnimatedArtworkKeys() -> Retained<NSArray<NSString>>;
126    );
127}
128
129extern "C" {
130    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyelapsedplaybacktime?language=objc)
131    pub static MPNowPlayingInfoPropertyElapsedPlaybackTime: &'static NSString;
132}
133
134extern "C" {
135    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyplaybackrate?language=objc)
136    pub static MPNowPlayingInfoPropertyPlaybackRate: &'static NSString;
137}
138
139extern "C" {
140    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertydefaultplaybackrate?language=objc)
141    pub static MPNowPlayingInfoPropertyDefaultPlaybackRate: &'static NSString;
142}
143
144extern "C" {
145    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyplaybackqueueindex?language=objc)
146    pub static MPNowPlayingInfoPropertyPlaybackQueueIndex: &'static NSString;
147}
148
149extern "C" {
150    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyplaybackqueuecount?language=objc)
151    pub static MPNowPlayingInfoPropertyPlaybackQueueCount: &'static NSString;
152}
153
154extern "C" {
155    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertychapternumber?language=objc)
156    pub static MPNowPlayingInfoPropertyChapterNumber: &'static NSString;
157}
158
159extern "C" {
160    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertychaptercount?language=objc)
161    pub static MPNowPlayingInfoPropertyChapterCount: &'static NSString;
162}
163
164extern "C" {
165    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyislivestream?language=objc)
166    pub static MPNowPlayingInfoPropertyIsLiveStream: &'static NSString;
167}
168
169extern "C" {
170    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyavailablelanguageoptions?language=objc)
171    pub static MPNowPlayingInfoPropertyAvailableLanguageOptions: &'static NSString;
172}
173
174extern "C" {
175    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertycurrentlanguageoptions?language=objc)
176    pub static MPNowPlayingInfoPropertyCurrentLanguageOptions: &'static NSString;
177}
178
179extern "C" {
180    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfocollectionidentifier?language=objc)
181    pub static MPNowPlayingInfoCollectionIdentifier: &'static NSString;
182}
183
184extern "C" {
185    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyexternalcontentidentifier?language=objc)
186    pub static MPNowPlayingInfoPropertyExternalContentIdentifier: &'static NSString;
187}
188
189extern "C" {
190    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyexternaluserprofileidentifier?language=objc)
191    pub static MPNowPlayingInfoPropertyExternalUserProfileIdentifier: &'static NSString;
192}
193
194extern "C" {
195    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyserviceidentifier?language=objc)
196    pub static MPNowPlayingInfoPropertyServiceIdentifier: &'static NSString;
197}
198
199extern "C" {
200    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyplaybackprogress?language=objc)
201    pub static MPNowPlayingInfoPropertyPlaybackProgress: &'static NSString;
202}
203
204extern "C" {
205    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertymediatype?language=objc)
206    pub static MPNowPlayingInfoPropertyMediaType: &'static NSString;
207}
208
209extern "C" {
210    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyasseturl?language=objc)
211    pub static MPNowPlayingInfoPropertyAssetURL: &'static NSString;
212}
213
214extern "C" {
215    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertycurrentplaybackdate?language=objc)
216    pub static MPNowPlayingInfoPropertyCurrentPlaybackDate: &'static NSString;
217}
218
219extern "C" {
220    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyadtimeranges?language=objc)
221    pub static MPNowPlayingInfoPropertyAdTimeRanges: &'static NSString;
222}
223
224extern "C" {
225    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertycreditsstarttime?language=objc)
226    pub static MPNowPlayingInfoPropertyCreditsStartTime: &'static NSString;
227}
228
229extern "C" {
230    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyinternationalstandardrecordingcode?language=objc)
231    pub static MPNowPlayingInfoPropertyInternationalStandardRecordingCode: &'static NSString;
232}
233
234extern "C" {
235    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfopropertyexcludefromsuggestions?language=objc)
236    pub static MPNowPlayingInfoPropertyExcludeFromSuggestions: &'static NSString;
237}
238
239extern "C" {
240    /// 1:1 (square) animated artwork for the current media item.
241    ///
242    /// See also [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfoproperty1x1animatedartwork?language=objc)
243    pub static MPNowPlayingInfoProperty1x1AnimatedArtwork: &'static NSString;
244}
245
246extern "C" {
247    /// 3:4 (tall) animated artwork for the current media item.
248    ///
249    /// See also [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfoproperty3x4animatedartwork?language=objc)
250    pub static MPNowPlayingInfoProperty3x4AnimatedArtwork: &'static NSString;
251}