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
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        /// Setter for [`filterPredicates`][Self::filterPredicates].
75        #[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        /// Setter for [`groupingType`][Self::groupingType].
105        #[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
157/// Methods declared on superclass `NSObject`.
158impl 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    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediapredicate?language=objc)
172    #[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
187/// Methods declared on superclass `NSObject`.
188impl 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/// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediapredicatecomparison?language=objc)
201// NS_ENUM
202#[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    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediapropertypredicate?language=objc)
222    #[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
264/// Methods declared on superclass `NSObject`.
265impl 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/// MPMediaQueryAdditions.
278#[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}