objc2_media_player/generated/
MPMediaQuery.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediagrouping?language=objc)
11// NS_ENUM
12#[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    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaquery?language=objc)
44    #[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        /// Setter for [`filterPredicates`][Self::filterPredicates].
83        #[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        /// Setter for [`groupingType`][Self::groupingType].
113        #[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
165/// Methods declared on superclass `NSObject`.
166impl 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    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediapredicate?language=objc)
180    #[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
201/// Methods declared on superclass `NSObject`.
202impl 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/// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediapredicatecomparison?language=objc)
215// NS_ENUM
216#[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    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediapropertypredicate?language=objc)
236    #[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
284/// Methods declared on superclass `NSObject`.
285impl 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/// MPMediaQueryAdditions.
298#[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}