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
49unsafe impl NSCoding for MPMediaQuery {}
50
51unsafe impl NSCopying for MPMediaQuery {}
52
53unsafe impl CopyingHelper for MPMediaQuery {
54 type Result = Self;
55}
56
57unsafe impl NSObjectProtocol for MPMediaQuery {}
58
59unsafe impl NSSecureCoding for MPMediaQuery {}
60
61impl MPMediaQuery {
62 extern_methods!(
63 #[unsafe(method(initWithFilterPredicates:))]
64 #[unsafe(method_family = init)]
65 pub unsafe fn initWithFilterPredicates(
66 this: Allocated<Self>,
67 filter_predicates: Option<&NSSet<MPMediaPredicate>>,
68 ) -> Retained<Self>;
69
70 #[unsafe(method(filterPredicates))]
71 #[unsafe(method_family = none)]
72 pub unsafe fn filterPredicates(&self) -> Option<Retained<NSSet<MPMediaPredicate>>>;
73
74 #[unsafe(method(setFilterPredicates:))]
76 #[unsafe(method_family = none)]
77 pub unsafe fn setFilterPredicates(
78 &self,
79 filter_predicates: Option<&NSSet<MPMediaPredicate>>,
80 );
81
82 #[unsafe(method(addFilterPredicate:))]
83 #[unsafe(method_family = none)]
84 pub unsafe fn addFilterPredicate(&self, predicate: &MPMediaPredicate);
85
86 #[unsafe(method(removeFilterPredicate:))]
87 #[unsafe(method_family = none)]
88 pub unsafe fn removeFilterPredicate(&self, predicate: &MPMediaPredicate);
89
90 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItem"))]
91 #[unsafe(method(items))]
92 #[unsafe(method_family = none)]
93 pub unsafe fn items(&self) -> Option<Retained<NSArray<MPMediaItem>>>;
94
95 #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
96 #[unsafe(method(collections))]
97 #[unsafe(method_family = none)]
98 pub unsafe fn collections(&self) -> Option<Retained<NSArray<MPMediaItemCollection>>>;
99
100 #[unsafe(method(groupingType))]
101 #[unsafe(method_family = none)]
102 pub unsafe fn groupingType(&self) -> MPMediaGrouping;
103
104 #[unsafe(method(setGroupingType:))]
106 #[unsafe(method_family = none)]
107 pub unsafe fn setGroupingType(&self, grouping_type: MPMediaGrouping);
108
109 #[cfg(feature = "MPMediaQuerySection")]
110 #[unsafe(method(itemSections))]
111 #[unsafe(method_family = none)]
112 pub unsafe fn itemSections(&self) -> Option<Retained<NSArray<MPMediaQuerySection>>>;
113
114 #[cfg(feature = "MPMediaQuerySection")]
115 #[unsafe(method(collectionSections))]
116 #[unsafe(method_family = none)]
117 pub unsafe fn collectionSections(&self) -> Option<Retained<NSArray<MPMediaQuerySection>>>;
118
119 #[unsafe(method(albumsQuery))]
120 #[unsafe(method_family = none)]
121 pub unsafe fn albumsQuery() -> Retained<MPMediaQuery>;
122
123 #[unsafe(method(artistsQuery))]
124 #[unsafe(method_family = none)]
125 pub unsafe fn artistsQuery() -> Retained<MPMediaQuery>;
126
127 #[unsafe(method(songsQuery))]
128 #[unsafe(method_family = none)]
129 pub unsafe fn songsQuery() -> Retained<MPMediaQuery>;
130
131 #[unsafe(method(playlistsQuery))]
132 #[unsafe(method_family = none)]
133 pub unsafe fn playlistsQuery() -> Retained<MPMediaQuery>;
134
135 #[unsafe(method(podcastsQuery))]
136 #[unsafe(method_family = none)]
137 pub unsafe fn podcastsQuery() -> Retained<MPMediaQuery>;
138
139 #[unsafe(method(audiobooksQuery))]
140 #[unsafe(method_family = none)]
141 pub unsafe fn audiobooksQuery() -> Retained<MPMediaQuery>;
142
143 #[unsafe(method(compilationsQuery))]
144 #[unsafe(method_family = none)]
145 pub unsafe fn compilationsQuery() -> Retained<MPMediaQuery>;
146
147 #[unsafe(method(composersQuery))]
148 #[unsafe(method_family = none)]
149 pub unsafe fn composersQuery() -> Retained<MPMediaQuery>;
150
151 #[unsafe(method(genresQuery))]
152 #[unsafe(method_family = none)]
153 pub unsafe fn genresQuery() -> Retained<MPMediaQuery>;
154 );
155}
156
157impl MPMediaQuery {
159 extern_methods!(
160 #[unsafe(method(init))]
161 #[unsafe(method_family = init)]
162 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
163
164 #[unsafe(method(new))]
165 #[unsafe(method_family = new)]
166 pub unsafe fn new() -> Retained<Self>;
167 );
168}
169
170extern_class!(
171 #[unsafe(super(NSObject))]
173 #[derive(Debug, PartialEq, Eq, Hash)]
174 pub struct MPMediaPredicate;
175);
176
177unsafe impl NSCoding for MPMediaPredicate {}
178
179unsafe impl NSObjectProtocol for MPMediaPredicate {}
180
181unsafe impl NSSecureCoding for MPMediaPredicate {}
182
183impl MPMediaPredicate {
184 extern_methods!();
185}
186
187impl MPMediaPredicate {
189 extern_methods!(
190 #[unsafe(method(init))]
191 #[unsafe(method_family = init)]
192 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
193
194 #[unsafe(method(new))]
195 #[unsafe(method_family = new)]
196 pub unsafe fn new() -> Retained<Self>;
197 );
198}
199
200#[repr(transparent)]
203#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
204pub struct MPMediaPredicateComparison(pub NSInteger);
205impl MPMediaPredicateComparison {
206 #[doc(alias = "MPMediaPredicateComparisonEqualTo")]
207 pub const EqualTo: Self = Self(0);
208 #[doc(alias = "MPMediaPredicateComparisonContains")]
209 pub const Contains: Self = Self(1);
210}
211
212unsafe impl Encode for MPMediaPredicateComparison {
213 const ENCODING: Encoding = NSInteger::ENCODING;
214}
215
216unsafe impl RefEncode for MPMediaPredicateComparison {
217 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
218}
219
220extern_class!(
221 #[unsafe(super(MPMediaPredicate, NSObject))]
223 #[derive(Debug, PartialEq, Eq, Hash)]
224 pub struct MPMediaPropertyPredicate;
225);
226
227unsafe impl NSCoding for MPMediaPropertyPredicate {}
228
229unsafe impl NSObjectProtocol for MPMediaPropertyPredicate {}
230
231unsafe impl NSSecureCoding for MPMediaPropertyPredicate {}
232
233impl MPMediaPropertyPredicate {
234 extern_methods!(
235 #[unsafe(method(predicateWithValue:forProperty:))]
236 #[unsafe(method_family = none)]
237 pub unsafe fn predicateWithValue_forProperty(
238 value: Option<&AnyObject>,
239 property: &NSString,
240 ) -> Retained<MPMediaPropertyPredicate>;
241
242 #[unsafe(method(predicateWithValue:forProperty:comparisonType:))]
243 #[unsafe(method_family = none)]
244 pub unsafe fn predicateWithValue_forProperty_comparisonType(
245 value: Option<&AnyObject>,
246 property: &NSString,
247 comparison_type: MPMediaPredicateComparison,
248 ) -> Retained<MPMediaPropertyPredicate>;
249
250 #[unsafe(method(property))]
251 #[unsafe(method_family = none)]
252 pub unsafe fn property(&self) -> Retained<NSString>;
253
254 #[unsafe(method(value))]
255 #[unsafe(method_family = none)]
256 pub unsafe fn value(&self) -> Option<Retained<AnyObject>>;
257
258 #[unsafe(method(comparisonType))]
259 #[unsafe(method_family = none)]
260 pub unsafe fn comparisonType(&self) -> MPMediaPredicateComparison;
261 );
262}
263
264impl MPMediaPropertyPredicate {
266 extern_methods!(
267 #[unsafe(method(init))]
268 #[unsafe(method_family = init)]
269 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
270
271 #[unsafe(method(new))]
272 #[unsafe(method_family = new)]
273 pub unsafe fn new() -> Retained<Self>;
274 );
275}
276
277#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItem"))]
279impl MPMediaItem {
280 extern_methods!(
281 #[unsafe(method(persistentIDPropertyForGroupingType:))]
282 #[unsafe(method_family = none)]
283 pub unsafe fn persistentIDPropertyForGroupingType(
284 grouping_type: MPMediaGrouping,
285 ) -> Retained<NSString>;
286
287 #[unsafe(method(titlePropertyForGroupingType:))]
288 #[unsafe(method_family = none)]
289 pub unsafe fn titlePropertyForGroupingType(
290 grouping_type: MPMediaGrouping,
291 ) -> Retained<NSString>;
292 );
293}