objc2_media_player/generated/
MPMediaPlaylist.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/mpmediaplaylistattribute?language=objc)
11// NS_OPTIONS
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct MPMediaPlaylistAttribute(pub NSUInteger);
15bitflags::bitflags! {
16    impl MPMediaPlaylistAttribute: NSUInteger {
17        #[doc(alias = "MPMediaPlaylistAttributeNone")]
18        const None = 0;
19        #[doc(alias = "MPMediaPlaylistAttributeOnTheGo")]
20        const OnTheGo = 1<<0;
21        #[doc(alias = "MPMediaPlaylistAttributeSmart")]
22        const Smart = 1<<1;
23        #[doc(alias = "MPMediaPlaylistAttributeGenius")]
24        const Genius = 1<<2;
25    }
26}
27
28unsafe impl Encode for MPMediaPlaylistAttribute {
29    const ENCODING: Encoding = NSUInteger::ENCODING;
30}
31
32unsafe impl RefEncode for MPMediaPlaylistAttribute {
33    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
34}
35
36extern "C" {
37    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistpropertypersistentid?language=objc)
38    pub static MPMediaPlaylistPropertyPersistentID: &'static NSString;
39}
40
41extern "C" {
42    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistpropertycloudglobalid?language=objc)
43    pub static MPMediaPlaylistPropertyCloudGlobalID: &'static NSString;
44}
45
46extern "C" {
47    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistpropertyname?language=objc)
48    pub static MPMediaPlaylistPropertyName: &'static NSString;
49}
50
51extern "C" {
52    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistpropertyplaylistattributes?language=objc)
53    pub static MPMediaPlaylistPropertyPlaylistAttributes: &'static NSString;
54}
55
56extern "C" {
57    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistpropertyseeditems?language=objc)
58    pub static MPMediaPlaylistPropertySeedItems: &'static NSString;
59}
60
61extern "C" {
62    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistpropertydescriptiontext?language=objc)
63    pub static MPMediaPlaylistPropertyDescriptionText: &'static NSString;
64}
65
66extern "C" {
67    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistpropertyauthordisplayname?language=objc)
68    pub static MPMediaPlaylistPropertyAuthorDisplayName: &'static NSString;
69}
70
71extern_class!(
72    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylist?language=objc)
73    #[unsafe(super(MPMediaItemCollection, MPMediaEntity, NSObject))]
74    #[derive(Debug, PartialEq, Eq, Hash)]
75    #[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
76    pub struct MPMediaPlaylist;
77);
78
79#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
80extern_conformance!(
81    unsafe impl NSCoding for MPMediaPlaylist {}
82);
83
84#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
85extern_conformance!(
86    unsafe impl NSObjectProtocol for MPMediaPlaylist {}
87);
88
89#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
90extern_conformance!(
91    unsafe impl NSSecureCoding for MPMediaPlaylist {}
92);
93
94#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
95impl MPMediaPlaylist {
96    extern_methods!(
97        #[unsafe(method(persistentID))]
98        #[unsafe(method_family = none)]
99        pub unsafe fn persistentID(&self) -> MPMediaEntityPersistentID;
100
101        #[unsafe(method(cloudGlobalID))]
102        #[unsafe(method_family = none)]
103        pub unsafe fn cloudGlobalID(&self) -> Option<Retained<NSString>>;
104
105        #[unsafe(method(name))]
106        #[unsafe(method_family = none)]
107        pub unsafe fn name(&self) -> Option<Retained<NSString>>;
108
109        #[unsafe(method(playlistAttributes))]
110        #[unsafe(method_family = none)]
111        pub unsafe fn playlistAttributes(&self) -> MPMediaPlaylistAttribute;
112
113        #[cfg(feature = "MPMediaItem")]
114        #[unsafe(method(seedItems))]
115        #[unsafe(method_family = none)]
116        pub unsafe fn seedItems(&self) -> Option<Retained<NSArray<MPMediaItem>>>;
117
118        #[unsafe(method(descriptionText))]
119        #[unsafe(method_family = none)]
120        pub unsafe fn descriptionText(&self) -> Option<Retained<NSString>>;
121
122        #[unsafe(method(authorDisplayName))]
123        #[unsafe(method_family = none)]
124        pub unsafe fn authorDisplayName(&self) -> Option<Retained<NSString>>;
125
126        #[cfg(feature = "block2")]
127        #[unsafe(method(addItemWithProductID:completionHandler:))]
128        #[unsafe(method_family = none)]
129        pub unsafe fn addItemWithProductID_completionHandler(
130            &self,
131            product_id: &NSString,
132            completion_handler: Option<&block2::DynBlock<dyn Fn(*mut NSError)>>,
133        );
134
135        #[cfg(all(feature = "MPMediaItem", feature = "block2"))]
136        #[unsafe(method(addMediaItems:completionHandler:))]
137        #[unsafe(method_family = none)]
138        pub unsafe fn addMediaItems_completionHandler(
139            &self,
140            media_items: &NSArray<MPMediaItem>,
141            completion_handler: Option<&block2::DynBlock<dyn Fn(*mut NSError)>>,
142        );
143    );
144}
145
146/// Methods declared on superclass `MPMediaItemCollection`.
147#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
148impl MPMediaPlaylist {
149    extern_methods!(
150        #[cfg(feature = "MPMediaItem")]
151        #[unsafe(method(initWithItems:))]
152        #[unsafe(method_family = init)]
153        pub unsafe fn initWithItems(
154            this: Allocated<Self>,
155            items: &NSArray<MPMediaItem>,
156        ) -> Retained<Self>;
157    );
158}
159
160/// Methods declared on superclass `NSObject`.
161#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
162impl MPMediaPlaylist {
163    extern_methods!(
164        #[unsafe(method(init))]
165        #[unsafe(method_family = init)]
166        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
167
168        #[unsafe(method(new))]
169        #[unsafe(method_family = new)]
170        pub unsafe fn new() -> Retained<Self>;
171    );
172}
173
174extern_class!(
175    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistcreationmetadata?language=objc)
176    #[unsafe(super(NSObject))]
177    #[derive(Debug, PartialEq, Eq, Hash)]
178    pub struct MPMediaPlaylistCreationMetadata;
179);
180
181extern_conformance!(
182    unsafe impl NSObjectProtocol for MPMediaPlaylistCreationMetadata {}
183);
184
185impl MPMediaPlaylistCreationMetadata {
186    extern_methods!(
187        #[unsafe(method(new))]
188        #[unsafe(method_family = new)]
189        pub unsafe fn new() -> Retained<Self>;
190
191        #[unsafe(method(init))]
192        #[unsafe(method_family = init)]
193        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
194
195        #[unsafe(method(initWithName:))]
196        #[unsafe(method_family = init)]
197        pub unsafe fn initWithName(this: Allocated<Self>, name: &NSString) -> Retained<Self>;
198
199        /// The display name of the playlist.
200        #[unsafe(method(name))]
201        #[unsafe(method_family = none)]
202        pub unsafe fn name(&self) -> Retained<NSString>;
203
204        /// Defaults to the requesting app's display name.
205        #[unsafe(method(authorDisplayName))]
206        #[unsafe(method_family = none)]
207        pub unsafe fn authorDisplayName(&self) -> Retained<NSString>;
208
209        /// Setter for [`authorDisplayName`][Self::authorDisplayName].
210        #[unsafe(method(setAuthorDisplayName:))]
211        #[unsafe(method_family = none)]
212        pub unsafe fn setAuthorDisplayName(&self, author_display_name: Option<&NSString>);
213
214        #[unsafe(method(descriptionText))]
215        #[unsafe(method_family = none)]
216        pub unsafe fn descriptionText(&self) -> Retained<NSString>;
217
218        /// Setter for [`descriptionText`][Self::descriptionText].
219        #[unsafe(method(setDescriptionText:))]
220        #[unsafe(method_family = none)]
221        pub unsafe fn setDescriptionText(&self, description_text: &NSString);
222    );
223}