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:))]
180 #[unsafe(method_family = none)]
181 pub unsafe fn setNowPlayingItem(&self, now_playing_item: Option<&MPMediaItem>);
182
183 #[unsafe(method(indexOfNowPlayingItem))]
184 #[unsafe(method_family = none)]
185 pub unsafe fn indexOfNowPlayingItem(&self) -> NSUInteger;
186
187 #[cfg(feature = "MPMediaQuery")]
188 #[unsafe(method(setQueueWithQuery:))]
189 #[unsafe(method_family = none)]
190 pub unsafe fn setQueueWithQuery(&self, query: &MPMediaQuery);
191
192 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
193 #[unsafe(method(setQueueWithItemCollection:))]
194 #[unsafe(method_family = none)]
195 pub unsafe fn setQueueWithItemCollection(&self, item_collection: &MPMediaItemCollection);
196
197 #[unsafe(method(setQueueWithStoreIDs:))]
198 #[unsafe(method_family = none)]
199 pub unsafe fn setQueueWithStoreIDs(&self, store_i_ds: &NSArray<NSString>);
200
201 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
202 #[unsafe(method(setQueueWithDescriptor:))]
203 #[unsafe(method_family = none)]
204 pub unsafe fn setQueueWithDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
205
206 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
207 #[unsafe(method(prependQueueDescriptor:))]
208 #[unsafe(method_family = none)]
209 pub unsafe fn prependQueueDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
210
211 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
212 #[unsafe(method(appendQueueDescriptor:))]
213 #[unsafe(method_family = none)]
214 pub unsafe fn appendQueueDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
215
216 #[cfg(feature = "block2")]
217 #[unsafe(method(prepareToPlayWithCompletionHandler:))]
218 #[unsafe(method_family = none)]
219 pub unsafe fn prepareToPlayWithCompletionHandler(
220 &self,
221 completion_handler: &block2::DynBlock<dyn Fn(*mut NSError)>,
222 );
223
224 #[unsafe(method(skipToNextItem))]
225 #[unsafe(method_family = none)]
226 pub unsafe fn skipToNextItem(&self);
227
228 #[unsafe(method(skipToBeginning))]
229 #[unsafe(method_family = none)]
230 pub unsafe fn skipToBeginning(&self);
231
232 #[unsafe(method(skipToPreviousItem))]
233 #[unsafe(method_family = none)]
234 pub unsafe fn skipToPreviousItem(&self);
235
236 #[unsafe(method(beginGeneratingPlaybackNotifications))]
237 #[unsafe(method_family = none)]
238 pub unsafe fn beginGeneratingPlaybackNotifications(&self);
239
240 #[unsafe(method(endGeneratingPlaybackNotifications))]
241 #[unsafe(method_family = none)]
242 pub unsafe fn endGeneratingPlaybackNotifications(&self);
243
244 #[deprecated]
245 #[unsafe(method(iPodMusicPlayer))]
246 #[unsafe(method_family = none)]
247 pub unsafe fn iPodMusicPlayer() -> Retained<MPMusicPlayerController>;
248 );
249}
250
251extern "C" {
252 pub static MPMusicPlayerControllerPlaybackStateDidChangeNotification:
254 &'static NSNotificationName;
255}
256
257extern "C" {
258 pub static MPMusicPlayerControllerNowPlayingItemDidChangeNotification:
260 &'static NSNotificationName;
261}
262
263extern "C" {
264 pub static MPMusicPlayerControllerVolumeDidChangeNotification: &'static NSNotificationName;
266}