objc2_media_player/generated/
MPMusicPlayerController.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct MPMusicPlaybackState(pub NSInteger);
15impl MPMusicPlaybackState {
16 #[doc(alias = "MPMusicPlaybackStateStopped")]
17 pub const Stopped: Self = Self(0);
18 #[doc(alias = "MPMusicPlaybackStatePlaying")]
19 pub const Playing: Self = Self(1);
20 #[doc(alias = "MPMusicPlaybackStatePaused")]
21 pub const Paused: Self = Self(2);
22 #[doc(alias = "MPMusicPlaybackStateInterrupted")]
23 pub const Interrupted: Self = Self(3);
24 #[doc(alias = "MPMusicPlaybackStateSeekingForward")]
25 pub const SeekingForward: Self = Self(4);
26 #[doc(alias = "MPMusicPlaybackStateSeekingBackward")]
27 pub const SeekingBackward: Self = Self(5);
28}
29
30unsafe impl Encode for MPMusicPlaybackState {
31 const ENCODING: Encoding = NSInteger::ENCODING;
32}
33
34unsafe impl RefEncode for MPMusicPlaybackState {
35 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
36}
37
38#[repr(transparent)]
41#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
42pub struct MPMusicRepeatMode(pub NSInteger);
43impl MPMusicRepeatMode {
44 #[doc(alias = "MPMusicRepeatModeDefault")]
45 pub const Default: Self = Self(0);
46 #[doc(alias = "MPMusicRepeatModeNone")]
47 pub const None: Self = Self(1);
48 #[doc(alias = "MPMusicRepeatModeOne")]
49 pub const One: Self = Self(2);
50 #[doc(alias = "MPMusicRepeatModeAll")]
51 pub const All: Self = Self(3);
52}
53
54unsafe impl Encode for MPMusicRepeatMode {
55 const ENCODING: Encoding = NSInteger::ENCODING;
56}
57
58unsafe impl RefEncode for MPMusicRepeatMode {
59 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
60}
61
62#[repr(transparent)]
65#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
66pub struct MPMusicShuffleMode(pub NSInteger);
67impl MPMusicShuffleMode {
68 #[doc(alias = "MPMusicShuffleModeDefault")]
69 pub const Default: Self = Self(0);
70 #[doc(alias = "MPMusicShuffleModeOff")]
71 pub const Off: Self = Self(1);
72 #[doc(alias = "MPMusicShuffleModeSongs")]
73 pub const Songs: Self = Self(2);
74 #[doc(alias = "MPMusicShuffleModeAlbums")]
75 pub const Albums: Self = Self(3);
76}
77
78unsafe impl Encode for MPMusicShuffleMode {
79 const ENCODING: Encoding = NSInteger::ENCODING;
80}
81
82unsafe impl RefEncode for MPMusicShuffleMode {
83 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
84}
85
86extern_protocol!(
87 pub unsafe trait MPSystemMusicPlayerController: NSObjectProtocol {
89 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
90 #[unsafe(method(openToPlayQueueDescriptor:))]
92 #[unsafe(method_family = none)]
93 unsafe fn openToPlayQueueDescriptor(&self, queue_descriptor: &MPMusicPlayerQueueDescriptor);
94 }
95);
96
97extern_class!(
98 #[unsafe(super(NSObject))]
100 #[derive(Debug, PartialEq, Eq, Hash)]
101 pub struct MPMusicPlayerController;
102);
103
104#[cfg(feature = "MPMediaPlayback")]
105extern_conformance!(
106 unsafe impl MPMediaPlayback for MPMusicPlayerController {}
107);
108
109extern_conformance!(
110 unsafe impl NSObjectProtocol for MPMusicPlayerController {}
111);
112
113impl MPMusicPlayerController {
114 extern_methods!(
115 #[unsafe(method(applicationMusicPlayer))]
117 #[unsafe(method_family = none)]
118 pub unsafe fn applicationMusicPlayer() -> Retained<MPMusicPlayerController>;
119
120 #[cfg(feature = "MPMusicPlayerApplicationController")]
121 #[unsafe(method(applicationQueuePlayer))]
123 #[unsafe(method_family = none)]
124 pub unsafe fn applicationQueuePlayer() -> Retained<MPMusicPlayerApplicationController>;
125
126 #[unsafe(method(systemMusicPlayer))]
128 #[unsafe(method_family = none)]
129 pub unsafe fn systemMusicPlayer() -> Retained<MPMusicPlayerController>;
130
131 #[unsafe(method(new))]
132 #[unsafe(method_family = new)]
133 pub unsafe fn new() -> Retained<Self>;
134
135 #[unsafe(method(init))]
136 #[unsafe(method_family = init)]
137 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
138
139 #[unsafe(method(playbackState))]
140 #[unsafe(method_family = none)]
141 pub unsafe fn playbackState(&self) -> MPMusicPlaybackState;
142
143 #[unsafe(method(repeatMode))]
144 #[unsafe(method_family = none)]
145 pub unsafe fn repeatMode(&self) -> MPMusicRepeatMode;
146
147 #[unsafe(method(setRepeatMode:))]
149 #[unsafe(method_family = none)]
150 pub unsafe fn setRepeatMode(&self, repeat_mode: MPMusicRepeatMode);
151
152 #[unsafe(method(shuffleMode))]
153 #[unsafe(method_family = none)]
154 pub unsafe fn shuffleMode(&self) -> MPMusicShuffleMode;
155
156 #[unsafe(method(setShuffleMode:))]
158 #[unsafe(method_family = none)]
159 pub unsafe fn setShuffleMode(&self, shuffle_mode: MPMusicShuffleMode);
160
161 #[deprecated = "Use MPVolumeView for volume control."]
162 #[unsafe(method(volume))]
163 #[unsafe(method_family = none)]
164 pub unsafe fn volume(&self) -> c_float;
165
166 #[deprecated = "Use MPVolumeView for volume control."]
168 #[unsafe(method(setVolume:))]
169 #[unsafe(method_family = none)]
170 pub unsafe fn setVolume(&self, volume: c_float);
171
172 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItem"))]
173 #[unsafe(method(nowPlayingItem))]
174 #[unsafe(method_family = none)]
175 pub unsafe fn nowPlayingItem(&self) -> Option<Retained<MPMediaItem>>;
176
177 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItem"))]
178 #[unsafe(method(setNowPlayingItem:))]
182 #[unsafe(method_family = none)]
183 pub unsafe fn setNowPlayingItem(&self, now_playing_item: Option<&MPMediaItem>);
184
185 #[unsafe(method(indexOfNowPlayingItem))]
186 #[unsafe(method_family = none)]
187 pub unsafe fn indexOfNowPlayingItem(&self) -> NSUInteger;
188
189 #[cfg(feature = "MPMediaQuery")]
190 #[unsafe(method(setQueueWithQuery:))]
191 #[unsafe(method_family = none)]
192 pub unsafe fn setQueueWithQuery(&self, query: &MPMediaQuery);
193
194 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
195 #[unsafe(method(setQueueWithItemCollection:))]
196 #[unsafe(method_family = none)]
197 pub unsafe fn setQueueWithItemCollection(&self, item_collection: &MPMediaItemCollection);
198
199 #[unsafe(method(setQueueWithStoreIDs:))]
200 #[unsafe(method_family = none)]
201 pub unsafe fn setQueueWithStoreIDs(&self, store_i_ds: &NSArray<NSString>);
202
203 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
204 #[unsafe(method(setQueueWithDescriptor:))]
205 #[unsafe(method_family = none)]
206 pub unsafe fn setQueueWithDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
207
208 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
209 #[unsafe(method(prependQueueDescriptor:))]
210 #[unsafe(method_family = none)]
211 pub unsafe fn prependQueueDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
212
213 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
214 #[unsafe(method(appendQueueDescriptor:))]
215 #[unsafe(method_family = none)]
216 pub unsafe fn appendQueueDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
217
218 #[cfg(feature = "block2")]
219 #[unsafe(method(prepareToPlayWithCompletionHandler:))]
220 #[unsafe(method_family = none)]
221 pub unsafe fn prepareToPlayWithCompletionHandler(
222 &self,
223 completion_handler: &block2::DynBlock<dyn Fn(*mut NSError)>,
224 );
225
226 #[unsafe(method(skipToNextItem))]
227 #[unsafe(method_family = none)]
228 pub unsafe fn skipToNextItem(&self);
229
230 #[unsafe(method(skipToBeginning))]
231 #[unsafe(method_family = none)]
232 pub unsafe fn skipToBeginning(&self);
233
234 #[unsafe(method(skipToPreviousItem))]
235 #[unsafe(method_family = none)]
236 pub unsafe fn skipToPreviousItem(&self);
237
238 #[unsafe(method(beginGeneratingPlaybackNotifications))]
239 #[unsafe(method_family = none)]
240 pub unsafe fn beginGeneratingPlaybackNotifications(&self);
241
242 #[unsafe(method(endGeneratingPlaybackNotifications))]
243 #[unsafe(method_family = none)]
244 pub unsafe fn endGeneratingPlaybackNotifications(&self);
245
246 #[deprecated]
247 #[unsafe(method(iPodMusicPlayer))]
248 #[unsafe(method_family = none)]
249 pub unsafe fn iPodMusicPlayer() -> Retained<MPMusicPlayerController>;
250 );
251}
252
253extern "C" {
254 pub static MPMusicPlayerControllerPlaybackStateDidChangeNotification:
256 &'static NSNotificationName;
257}
258
259extern "C" {
260 pub static MPMusicPlayerControllerNowPlayingItemDidChangeNotification:
262 &'static NSNotificationName;
263}
264
265extern "C" {
266 pub static MPMusicPlayerControllerVolumeDidChangeNotification: &'static NSNotificationName;
268}