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}