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"))]
80unsafe impl NSCoding for MPMediaPlaylist {}
81
82#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
83unsafe impl NSObjectProtocol for MPMediaPlaylist {}
84
85#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
86unsafe impl NSSecureCoding for MPMediaPlaylist {}
87
88#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
89impl MPMediaPlaylist {
90    extern_methods!(
91        #[unsafe(method(persistentID))]
92        #[unsafe(method_family = none)]
93        pub unsafe fn persistentID(&self) -> MPMediaEntityPersistentID;
94
95        #[unsafe(method(cloudGlobalID))]
96        #[unsafe(method_family = none)]
97        pub unsafe fn cloudGlobalID(&self) -> Option<Retained<NSString>>;
98
99        #[unsafe(method(name))]
100        #[unsafe(method_family = none)]
101        pub unsafe fn name(&self) -> Option<Retained<NSString>>;
102
103        #[unsafe(method(playlistAttributes))]
104        #[unsafe(method_family = none)]
105        pub unsafe fn playlistAttributes(&self) -> MPMediaPlaylistAttribute;
106
107        #[cfg(feature = "MPMediaItem")]
108        #[unsafe(method(seedItems))]
109        #[unsafe(method_family = none)]
110        pub unsafe fn seedItems(&self) -> Option<Retained<NSArray<MPMediaItem>>>;
111
112        #[unsafe(method(descriptionText))]
113        #[unsafe(method_family = none)]
114        pub unsafe fn descriptionText(&self) -> Option<Retained<NSString>>;
115
116        #[unsafe(method(authorDisplayName))]
117        #[unsafe(method_family = none)]
118        pub unsafe fn authorDisplayName(&self) -> Option<Retained<NSString>>;
119
120        #[cfg(feature = "block2")]
121        #[unsafe(method(addItemWithProductID:completionHandler:))]
122        #[unsafe(method_family = none)]
123        pub unsafe fn addItemWithProductID_completionHandler(
124            &self,
125            product_id: &NSString,
126            completion_handler: Option<&block2::Block<dyn Fn(*mut NSError)>>,
127        );
128
129        #[cfg(all(feature = "MPMediaItem", feature = "block2"))]
130        #[unsafe(method(addMediaItems:completionHandler:))]
131        #[unsafe(method_family = none)]
132        pub unsafe fn addMediaItems_completionHandler(
133            &self,
134            media_items: &NSArray<MPMediaItem>,
135            completion_handler: Option<&block2::Block<dyn Fn(*mut NSError)>>,
136        );
137    );
138}
139
140/// Methods declared on superclass `MPMediaItemCollection`.
141#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
142impl MPMediaPlaylist {
143    extern_methods!(
144        #[cfg(feature = "MPMediaItem")]
145        #[unsafe(method(initWithItems:))]
146        #[unsafe(method_family = init)]
147        pub unsafe fn initWithItems(
148            this: Allocated<Self>,
149            items: &NSArray<MPMediaItem>,
150        ) -> Retained<Self>;
151    );
152}
153
154/// Methods declared on superclass `NSObject`.
155#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
156impl MPMediaPlaylist {
157    extern_methods!(
158        #[unsafe(method(init))]
159        #[unsafe(method_family = init)]
160        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
161
162        #[unsafe(method(new))]
163        #[unsafe(method_family = new)]
164        pub unsafe fn new() -> Retained<Self>;
165    );
166}
167
168extern_class!(
169    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmediaplaylistcreationmetadata?language=objc)
170    #[unsafe(super(NSObject))]
171    #[derive(Debug, PartialEq, Eq, Hash)]
172    pub struct MPMediaPlaylistCreationMetadata;
173);
174
175unsafe impl NSObjectProtocol for MPMediaPlaylistCreationMetadata {}
176
177impl MPMediaPlaylistCreationMetadata {
178    extern_methods!(
179        #[unsafe(method(new))]
180        #[unsafe(method_family = new)]
181        pub unsafe fn new() -> Retained<Self>;
182
183        #[unsafe(method(init))]
184        #[unsafe(method_family = init)]
185        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
186
187        #[unsafe(method(initWithName:))]
188        #[unsafe(method_family = init)]
189        pub unsafe fn initWithName(this: Allocated<Self>, name: &NSString) -> Retained<Self>;
190
191        /// The display name of the playlist.
192        #[unsafe(method(name))]
193        #[unsafe(method_family = none)]
194        pub unsafe fn name(&self) -> Retained<NSString>;
195
196        /// Defaults to the requesting app's display name.
197        #[unsafe(method(authorDisplayName))]
198        #[unsafe(method_family = none)]
199        pub unsafe fn authorDisplayName(&self) -> Retained<NSString>;
200
201        /// Setter for [`authorDisplayName`][Self::authorDisplayName].
202        #[unsafe(method(setAuthorDisplayName:))]
203        #[unsafe(method_family = none)]
204        pub unsafe fn setAuthorDisplayName(&self, author_display_name: Option<&NSString>);
205
206        #[unsafe(method(descriptionText))]
207        #[unsafe(method_family = none)]
208        pub unsafe fn descriptionText(&self) -> Retained<NSString>;
209
210        /// Setter for [`descriptionText`][Self::descriptionText].
211        #[unsafe(method(setDescriptionText:))]
212        #[unsafe(method_family = none)]
213        pub unsafe fn setDescriptionText(&self, description_text: &NSString);
214    );
215}