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")]
105unsafe impl MPMediaPlayback for MPMusicPlayerController {}
106
107unsafe impl NSObjectProtocol for MPMusicPlayerController {}
108
109impl MPMusicPlayerController {
110 extern_methods!(
111 #[unsafe(method(applicationMusicPlayer))]
113 #[unsafe(method_family = none)]
114 pub unsafe fn applicationMusicPlayer() -> Retained<MPMusicPlayerController>;
115
116 #[cfg(feature = "MPMusicPlayerApplicationController")]
117 #[unsafe(method(applicationQueuePlayer))]
119 #[unsafe(method_family = none)]
120 pub unsafe fn applicationQueuePlayer() -> Retained<MPMusicPlayerApplicationController>;
121
122 #[unsafe(method(systemMusicPlayer))]
124 #[unsafe(method_family = none)]
125 pub unsafe fn systemMusicPlayer() -> Retained<MPMusicPlayerController>;
126
127 #[unsafe(method(new))]
128 #[unsafe(method_family = new)]
129 pub unsafe fn new() -> Retained<Self>;
130
131 #[unsafe(method(init))]
132 #[unsafe(method_family = init)]
133 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
134
135 #[unsafe(method(playbackState))]
136 #[unsafe(method_family = none)]
137 pub unsafe fn playbackState(&self) -> MPMusicPlaybackState;
138
139 #[unsafe(method(repeatMode))]
140 #[unsafe(method_family = none)]
141 pub unsafe fn repeatMode(&self) -> MPMusicRepeatMode;
142
143 #[unsafe(method(setRepeatMode:))]
145 #[unsafe(method_family = none)]
146 pub unsafe fn setRepeatMode(&self, repeat_mode: MPMusicRepeatMode);
147
148 #[unsafe(method(shuffleMode))]
149 #[unsafe(method_family = none)]
150 pub unsafe fn shuffleMode(&self) -> MPMusicShuffleMode;
151
152 #[unsafe(method(setShuffleMode:))]
154 #[unsafe(method_family = none)]
155 pub unsafe fn setShuffleMode(&self, shuffle_mode: MPMusicShuffleMode);
156
157 #[deprecated = "Use MPVolumeView for volume control."]
158 #[unsafe(method(volume))]
159 #[unsafe(method_family = none)]
160 pub unsafe fn volume(&self) -> c_float;
161
162 #[deprecated = "Use MPVolumeView for volume control."]
164 #[unsafe(method(setVolume:))]
165 #[unsafe(method_family = none)]
166 pub unsafe fn setVolume(&self, volume: c_float);
167
168 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItem"))]
169 #[unsafe(method(nowPlayingItem))]
170 #[unsafe(method_family = none)]
171 pub unsafe fn nowPlayingItem(&self) -> Option<Retained<MPMediaItem>>;
172
173 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItem"))]
174 #[unsafe(method(setNowPlayingItem:))]
176 #[unsafe(method_family = none)]
177 pub unsafe fn setNowPlayingItem(&self, now_playing_item: Option<&MPMediaItem>);
178
179 #[unsafe(method(indexOfNowPlayingItem))]
180 #[unsafe(method_family = none)]
181 pub unsafe fn indexOfNowPlayingItem(&self) -> NSUInteger;
182
183 #[cfg(feature = "MPMediaQuery")]
184 #[unsafe(method(setQueueWithQuery:))]
185 #[unsafe(method_family = none)]
186 pub unsafe fn setQueueWithQuery(&self, query: &MPMediaQuery);
187
188 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
189 #[unsafe(method(setQueueWithItemCollection:))]
190 #[unsafe(method_family = none)]
191 pub unsafe fn setQueueWithItemCollection(&self, item_collection: &MPMediaItemCollection);
192
193 #[unsafe(method(setQueueWithStoreIDs:))]
194 #[unsafe(method_family = none)]
195 pub unsafe fn setQueueWithStoreIDs(&self, store_i_ds: &NSArray<NSString>);
196
197 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
198 #[unsafe(method(setQueueWithDescriptor:))]
199 #[unsafe(method_family = none)]
200 pub unsafe fn setQueueWithDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
201
202 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
203 #[unsafe(method(prependQueueDescriptor:))]
204 #[unsafe(method_family = none)]
205 pub unsafe fn prependQueueDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
206
207 #[cfg(feature = "MPMusicPlayerQueueDescriptor")]
208 #[unsafe(method(appendQueueDescriptor:))]
209 #[unsafe(method_family = none)]
210 pub unsafe fn appendQueueDescriptor(&self, descriptor: &MPMusicPlayerQueueDescriptor);
211
212 #[cfg(feature = "block2")]
213 #[unsafe(method(prepareToPlayWithCompletionHandler:))]
214 #[unsafe(method_family = none)]
215 pub unsafe fn prepareToPlayWithCompletionHandler(
216 &self,
217 completion_handler: &block2::Block<dyn Fn(*mut NSError)>,
218 );
219
220 #[unsafe(method(skipToNextItem))]
221 #[unsafe(method_family = none)]
222 pub unsafe fn skipToNextItem(&self);
223
224 #[unsafe(method(skipToBeginning))]
225 #[unsafe(method_family = none)]
226 pub unsafe fn skipToBeginning(&self);
227
228 #[unsafe(method(skipToPreviousItem))]
229 #[unsafe(method_family = none)]
230 pub unsafe fn skipToPreviousItem(&self);
231
232 #[unsafe(method(beginGeneratingPlaybackNotifications))]
233 #[unsafe(method_family = none)]
234 pub unsafe fn beginGeneratingPlaybackNotifications(&self);
235
236 #[unsafe(method(endGeneratingPlaybackNotifications))]
237 #[unsafe(method_family = none)]
238 pub unsafe fn endGeneratingPlaybackNotifications(&self);
239
240 #[deprecated]
241 #[unsafe(method(iPodMusicPlayer))]
242 #[unsafe(method_family = none)]
243 pub unsafe fn iPodMusicPlayer() -> Retained<MPMusicPlayerController>;
244 );
245}
246
247extern "C" {
248 pub static MPMusicPlayerControllerPlaybackStateDidChangeNotification:
250 &'static NSNotificationName;
251}
252
253extern "C" {
254 pub static MPMusicPlayerControllerNowPlayingItemDidChangeNotification:
256 &'static NSNotificationName;
257}
258
259extern "C" {
260 pub static MPMusicPlayerControllerVolumeDidChangeNotification: &'static NSNotificationName;
262}