objc2_media_player/generated/
MPMediaLibrary.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/mpmedialibraryauthorizationstatus?language=objc)
11// NS_ENUM
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct MPMediaLibraryAuthorizationStatus(pub NSInteger);
15impl MPMediaLibraryAuthorizationStatus {
16    #[doc(alias = "MPMediaLibraryAuthorizationStatusNotDetermined")]
17    pub const NotDetermined: Self = Self(0);
18    #[doc(alias = "MPMediaLibraryAuthorizationStatusDenied")]
19    pub const Denied: Self = Self(1);
20    #[doc(alias = "MPMediaLibraryAuthorizationStatusRestricted")]
21    pub const Restricted: Self = Self(2);
22    #[doc(alias = "MPMediaLibraryAuthorizationStatusAuthorized")]
23    pub const Authorized: Self = Self(3);
24}
25
26unsafe impl Encode for MPMediaLibraryAuthorizationStatus {
27    const ENCODING: Encoding = NSInteger::ENCODING;
28}
29
30unsafe impl RefEncode for MPMediaLibraryAuthorizationStatus {
31    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
32}
33
34extern_class!(
35    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmedialibrary?language=objc)
36    #[unsafe(super(NSObject))]
37    #[derive(Debug, PartialEq, Eq, Hash)]
38    pub struct MPMediaLibrary;
39);
40
41extern_conformance!(
42    unsafe impl NSCoding for MPMediaLibrary {}
43);
44
45extern_conformance!(
46    unsafe impl NSObjectProtocol for MPMediaLibrary {}
47);
48
49extern_conformance!(
50    unsafe impl NSSecureCoding for MPMediaLibrary {}
51);
52
53impl MPMediaLibrary {
54    extern_methods!(
55        #[unsafe(method(defaultMediaLibrary))]
56        #[unsafe(method_family = none)]
57        pub unsafe fn defaultMediaLibrary() -> Retained<MPMediaLibrary>;
58
59        #[unsafe(method(lastModifiedDate))]
60        #[unsafe(method_family = none)]
61        pub unsafe fn lastModifiedDate(&self) -> Retained<NSDate>;
62
63        #[unsafe(method(beginGeneratingLibraryChangeNotifications))]
64        #[unsafe(method_family = none)]
65        pub unsafe fn beginGeneratingLibraryChangeNotifications(&self);
66
67        #[unsafe(method(endGeneratingLibraryChangeNotifications))]
68        #[unsafe(method_family = none)]
69        pub unsafe fn endGeneratingLibraryChangeNotifications(&self);
70
71        #[unsafe(method(authorizationStatus))]
72        #[unsafe(method_family = none)]
73        pub unsafe fn authorizationStatus() -> MPMediaLibraryAuthorizationStatus;
74
75        #[cfg(feature = "block2")]
76        #[unsafe(method(requestAuthorization:))]
77        #[unsafe(method_family = none)]
78        pub unsafe fn requestAuthorization(
79            completion_handler: &block2::DynBlock<dyn Fn(MPMediaLibraryAuthorizationStatus)>,
80        );
81
82        #[cfg(all(feature = "MPMediaEntity", feature = "block2"))]
83        #[unsafe(method(addItemWithProductID:completionHandler:))]
84        #[unsafe(method_family = none)]
85        pub unsafe fn addItemWithProductID_completionHandler(
86            &self,
87            product_id: &NSString,
88            completion_handler: Option<
89                &block2::DynBlock<dyn Fn(NonNull<NSArray<MPMediaEntity>>, *mut NSError)>,
90            >,
91        );
92
93        #[cfg(all(
94            feature = "MPMediaEntity",
95            feature = "MPMediaItemCollection",
96            feature = "MPMediaPlaylist",
97            feature = "block2"
98        ))]
99        /// Finds the playlist associated with the UUID.
100        /// If the playlist exists, the creation metadata is ignored.
101        /// If no such playlist exists and creation metadata is valid, a playlist associated the UUID will be created.
102        ///
103        ///
104        /// The UUID should typically be pre-generated to avoid creating a new playlist with every call.
105        #[unsafe(method(getPlaylistWithUUID:creationMetadata:completionHandler:))]
106        #[unsafe(method_family = none)]
107        pub unsafe fn getPlaylistWithUUID_creationMetadata_completionHandler(
108            &self,
109            uuid: &NSUUID,
110            creation_metadata: Option<&MPMediaPlaylistCreationMetadata>,
111            completion_handler: &block2::DynBlock<dyn Fn(*mut MPMediaPlaylist, *mut NSError)>,
112        );
113    );
114}
115
116/// Methods declared on superclass `NSObject`.
117impl MPMediaLibrary {
118    extern_methods!(
119        #[unsafe(method(init))]
120        #[unsafe(method_family = init)]
121        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
122
123        #[unsafe(method(new))]
124        #[unsafe(method_family = new)]
125        pub unsafe fn new() -> Retained<Self>;
126    );
127}
128
129extern "C" {
130    /// [Apple's documentation](https://developer.apple.com/documentation/mediaplayer/mpmedialibrarydidchangenotification?language=objc)
131    pub static MPMediaLibraryDidChangeNotification: &'static NSString;
132}