objc2_media_player/generated/
MPMediaQuery.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 MPMediaGrouping(pub NSInteger);
15impl MPMediaGrouping {
16 #[doc(alias = "MPMediaGroupingTitle")]
17 pub const Title: Self = Self(0);
18 #[doc(alias = "MPMediaGroupingAlbum")]
19 pub const Album: Self = Self(1);
20 #[doc(alias = "MPMediaGroupingArtist")]
21 pub const Artist: Self = Self(2);
22 #[doc(alias = "MPMediaGroupingAlbumArtist")]
23 pub const AlbumArtist: Self = Self(3);
24 #[doc(alias = "MPMediaGroupingComposer")]
25 pub const Composer: Self = Self(4);
26 #[doc(alias = "MPMediaGroupingGenre")]
27 pub const Genre: Self = Self(5);
28 #[doc(alias = "MPMediaGroupingPlaylist")]
29 pub const Playlist: Self = Self(6);
30 #[doc(alias = "MPMediaGroupingPodcastTitle")]
31 pub const PodcastTitle: Self = Self(7);
32}
33
34unsafe impl Encode for MPMediaGrouping {
35 const ENCODING: Encoding = NSInteger::ENCODING;
36}
37
38unsafe impl RefEncode for MPMediaGrouping {
39 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
40}
41
42extern_class!(
43 #[unsafe(super(NSObject))]
45 #[derive(Debug, PartialEq, Eq, Hash)]
46 pub struct MPMediaQuery;
47);
48
49extern_conformance!(
50 unsafe impl NSCoding for MPMediaQuery {}
51);
52
53extern_conformance!(
54 unsafe impl NSCopying for MPMediaQuery {}
55);
56
57unsafe impl CopyingHelper for MPMediaQuery {
58 type Result = Self;
59}
60
61extern_conformance!(
62 unsafe impl NSObjectProtocol for MPMediaQuery {}
63);
64
65extern_conformance!(
66 unsafe impl NSSecureCoding for MPMediaQuery {}
67);
68
69impl MPMediaQuery {
70 extern_methods!(
71 #[unsafe(method(initWithFilterPredicates:))]
72 #[unsafe(method_family = init)]
73 pub unsafe fn initWithFilterPredicates(
74 this: Allocated<Self>,
75 filter_predicates: Option<&NSSet<MPMediaPredicate>>,
76 ) -> Retained<Self>;
77
78 #[unsafe(method(filterPredicates))]
79 #[unsafe(method_family = none)]
80 pub unsafe fn filterPredicates(&self) -> Option<Retained<NSSet<MPMediaPredicate>>>;
81
82 #[unsafe(method(setFilterPredicates:))]
84 #[unsafe(method_family = none)]
85 pub unsafe fn setFilterPredicates(
86 &self,
87 filter_predicates: Option<&NSSet<MPMediaPredicate>>,
88 );
89
90 #[unsafe(method(addFilterPredicate:))]
91 #[unsafe(method_family = none)]
92 pub unsafe fn addFilterPredicate(&self, predicate: &MPMediaPredicate);
93
94 #[unsafe(method(removeFilterPredicate:))]
95 #[unsafe(method_family = none)]
96 pub unsafe fn removeFilterPredicate(&self, predicate: &MPMediaPredicate);
97
98 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItem"))]
99 #[unsafe(method(items))]
100 #[unsafe(method_family = none)]
101 pub unsafe fn items(&self) -> Option<Retained<NSArray<MPMediaItem>>>;
102
103 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
104 #[unsafe(method(collections))]
105 #[unsafe(method_family = none)]
106 pub unsafe fn collections(&self) -> Option<Retained<NSArray<MPMediaItemCollection>>>;
107
108 #[unsafe(method(groupingType))]
109 #[unsafe(method_family = none)]
110 pub unsafe fn groupingType(&self) -> MPMediaGrouping;
111
112 #[unsafe(method(setGroupingType:))]
114 #[unsafe(method_family = none)]
115 pub unsafe fn setGroupingType(&self, grouping_type: MPMediaGrouping);
116
117 #[cfg(feature = "MPMediaQuerySection")]
118 #[unsafe(method(itemSections))]
119 #[unsafe(method_family = none)]
120 pub unsafe fn itemSections(&self) -> Option<Retained<NSArray<MPMediaQuerySection>>>;
121
122 #[cfg(feature = "MPMediaQuerySection")]
123 #[unsafe(method(collectionSections))]
124 #[unsafe(method_family = none)]
125 pub unsafe fn collectionSections(&self) -> Option<Retained<NSArray<MPMediaQuerySection>>>;
126
127 #[unsafe(method(albumsQuery))]
128 #[unsafe(method_family = none)]
129 pub unsafe fn albumsQuery() -> Retained<MPMediaQuery>;
130
131 #[unsafe(method(artistsQuery))]
132 #[unsafe(method_family = none)]
133 pub unsafe fn artistsQuery() -> Retained<MPMediaQuery>;
134
135 #[unsafe(method(songsQuery))]
136 #[unsafe(method_family = none)]
137 pub unsafe fn songsQuery() -> Retained<MPMediaQuery>;
138
139 #[unsafe(method(playlistsQuery))]
140 #[unsafe(method_family = none)]
141 pub unsafe fn playlistsQuery() -> Retained<MPMediaQuery>;
142
143 #[unsafe(method(podcastsQuery))]
144 #[unsafe(method_family = none)]
145 pub unsafe fn podcastsQuery() -> Retained<MPMediaQuery>;
146
147 #[unsafe(method(audiobooksQuery))]
148 #[unsafe(method_family = none)]
149 pub unsafe fn audiobooksQuery() -> Retained<MPMediaQuery>;
150
151 #[unsafe(method(compilationsQuery))]
152 #[unsafe(method_family = none)]
153 pub unsafe fn compilationsQuery() -> Retained<MPMediaQuery>;
154
155 #[unsafe(method(composersQuery))]
156 #[unsafe(method_family = none)]
157 pub unsafe fn composersQuery() -> Retained<MPMediaQuery>;
158
159 #[unsafe(method(genresQuery))]
160 #[unsafe(method_family = none)]
161 pub unsafe fn genresQuery() -> Retained<MPMediaQuery>;
162 );
163}
164
165impl MPMediaQuery {
167 extern_methods!(
168 #[unsafe(method(init))]
169 #[unsafe(method_family = init)]
170 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
171
172 #[unsafe(method(new))]
173 #[unsafe(method_family = new)]
174 pub unsafe fn new() -> Retained<Self>;
175 );
176}
177
178extern_class!(
179 #[unsafe(super(NSObject))]
181 #[derive(Debug, PartialEq, Eq, Hash)]
182 pub struct MPMediaPredicate;
183);
184
185extern_conformance!(
186 unsafe impl NSCoding for MPMediaPredicate {}
187);
188
189extern_conformance!(
190 unsafe impl NSObjectProtocol for MPMediaPredicate {}
191);
192
193extern_conformance!(
194 unsafe impl NSSecureCoding for MPMediaPredicate {}
195);
196
197impl MPMediaPredicate {
198 extern_methods!();
199}
200
201impl MPMediaPredicate {
203 extern_methods!(
204 #[unsafe(method(init))]
205 #[unsafe(method_family = init)]
206 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
207
208 #[unsafe(method(new))]
209 #[unsafe(method_family = new)]
210 pub unsafe fn new() -> Retained<Self>;
211 );
212}
213
214#[repr(transparent)]
217#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
218pub struct MPMediaPredicateComparison(pub NSInteger);
219impl MPMediaPredicateComparison {
220 #[doc(alias = "MPMediaPredicateComparisonEqualTo")]
221 pub const EqualTo: Self = Self(0);
222 #[doc(alias = "MPMediaPredicateComparisonContains")]
223 pub const Contains: Self = Self(1);
224}
225
226unsafe impl Encode for MPMediaPredicateComparison {
227 const ENCODING: Encoding = NSInteger::ENCODING;
228}
229
230unsafe impl RefEncode for MPMediaPredicateComparison {
231 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
232}
233
234extern_class!(
235 #[unsafe(super(MPMediaPredicate, NSObject))]
237 #[derive(Debug, PartialEq, Eq, Hash)]
238 pub struct MPMediaPropertyPredicate;
239);
240
241extern_conformance!(
242 unsafe impl NSCoding for MPMediaPropertyPredicate {}
243);
244
245extern_conformance!(
246 unsafe impl NSObjectProtocol for MPMediaPropertyPredicate {}
247);
248
249extern_conformance!(
250 unsafe impl NSSecureCoding for MPMediaPropertyPredicate {}
251);
252
253impl MPMediaPropertyPredicate {
254 extern_methods!(
255 #[unsafe(method(predicateWithValue:forProperty:))]
256 #[unsafe(method_family = none)]
257 pub unsafe fn predicateWithValue_forProperty(
258 value: Option<&AnyObject>,
259 property: &NSString,
260 ) -> Retained<MPMediaPropertyPredicate>;
261
262 #[unsafe(method(predicateWithValue:forProperty:comparisonType:))]
263 #[unsafe(method_family = none)]
264 pub unsafe fn predicateWithValue_forProperty_comparisonType(
265 value: Option<&AnyObject>,
266 property: &NSString,
267 comparison_type: MPMediaPredicateComparison,
268 ) -> Retained<MPMediaPropertyPredicate>;
269
270 #[unsafe(method(property))]
271 #[unsafe(method_family = none)]
272 pub unsafe fn property(&self) -> Retained<NSString>;
273
274 #[unsafe(method(value))]
275 #[unsafe(method_family = none)]
276 pub unsafe fn value(&self) -> Option<Retained<AnyObject>>;
277
278 #[unsafe(method(comparisonType))]
279 #[unsafe(method_family = none)]
280 pub unsafe fn comparisonType(&self) -> MPMediaPredicateComparison;
281 );
282}
283
284impl MPMediaPropertyPredicate {
286 extern_methods!(
287 #[unsafe(method(init))]
288 #[unsafe(method_family = init)]
289 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
290
291 #[unsafe(method(new))]
292 #[unsafe(method_family = new)]
293 pub unsafe fn new() -> Retained<Self>;
294 );
295}
296
297#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItem"))]
299impl MPMediaItem {
300 extern_methods!(
301 #[unsafe(method(persistentIDPropertyForGroupingType:))]
302 #[unsafe(method_family = none)]
303 pub unsafe fn persistentIDPropertyForGroupingType(
304 grouping_type: MPMediaGrouping,
305 ) -> Retained<NSString>;
306
307 #[unsafe(method(titlePropertyForGroupingType:))]
308 #[unsafe(method_family = none)]
309 pub unsafe fn titlePropertyForGroupingType(
310 grouping_type: MPMediaGrouping,
311 ) -> Retained<NSString>;
312 );
313}