#[cfg(feature = "block2")]
use block2::*;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct MPMediaPlaylistAttribute(pub NSUInteger);
impl MPMediaPlaylistAttribute {
#[doc(alias = "MPMediaPlaylistAttributeNone")]
pub const None: Self = Self(0);
#[doc(alias = "MPMediaPlaylistAttributeOnTheGo")]
pub const OnTheGo: Self = Self(1 << 0);
#[doc(alias = "MPMediaPlaylistAttributeSmart")]
pub const Smart: Self = Self(1 << 1);
#[doc(alias = "MPMediaPlaylistAttributeGenius")]
pub const Genius: Self = Self(1 << 2);
}
unsafe impl Encode for MPMediaPlaylistAttribute {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for MPMediaPlaylistAttribute {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern "C" {
pub static MPMediaPlaylistPropertyPersistentID: &'static NSString;
}
extern "C" {
pub static MPMediaPlaylistPropertyCloudGlobalID: &'static NSString;
}
extern "C" {
pub static MPMediaPlaylistPropertyName: &'static NSString;
}
extern "C" {
pub static MPMediaPlaylistPropertyPlaylistAttributes: &'static NSString;
}
extern "C" {
pub static MPMediaPlaylistPropertySeedItems: &'static NSString;
}
extern "C" {
pub static MPMediaPlaylistPropertyDescriptionText: &'static NSString;
}
extern "C" {
pub static MPMediaPlaylistPropertyAuthorDisplayName: &'static NSString;
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
pub struct MPMediaPlaylist;
#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
unsafe impl ClassType for MPMediaPlaylist {
#[inherits(MPMediaEntity, NSObject)]
type Super = MPMediaItemCollection;
type Mutability = InteriorMutable;
}
);
#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
unsafe impl NSCoding for MPMediaPlaylist {}
#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
unsafe impl NSObjectProtocol for MPMediaPlaylist {}
#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
unsafe impl NSSecureCoding for MPMediaPlaylist {}
extern_methods!(
#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
unsafe impl MPMediaPlaylist {
#[method(persistentID)]
pub unsafe fn persistentID(&self) -> MPMediaEntityPersistentID;
#[method_id(@__retain_semantics Other cloudGlobalID)]
pub unsafe fn cloudGlobalID(&self) -> Option<Id<NSString>>;
#[method_id(@__retain_semantics Other name)]
pub unsafe fn name(&self) -> Option<Id<NSString>>;
#[method(playlistAttributes)]
pub unsafe fn playlistAttributes(&self) -> MPMediaPlaylistAttribute;
#[cfg(feature = "MPMediaItem")]
#[method_id(@__retain_semantics Other seedItems)]
pub unsafe fn seedItems(&self) -> Option<Id<NSArray<MPMediaItem>>>;
#[method_id(@__retain_semantics Other descriptionText)]
pub unsafe fn descriptionText(&self) -> Option<Id<NSString>>;
#[method_id(@__retain_semantics Other authorDisplayName)]
pub unsafe fn authorDisplayName(&self) -> Option<Id<NSString>>;
#[cfg(feature = "block2")]
#[method(addItemWithProductID:completionHandler:)]
pub unsafe fn addItemWithProductID_completionHandler(
&self,
product_id: &NSString,
completion_handler: Option<&Block<dyn Fn(*mut NSError)>>,
);
#[cfg(all(feature = "MPMediaItem", feature = "block2"))]
#[method(addMediaItems:completionHandler:)]
pub unsafe fn addMediaItems_completionHandler(
&self,
media_items: &NSArray<MPMediaItem>,
completion_handler: Option<&Block<dyn Fn(*mut NSError)>>,
);
}
);
extern_methods!(
#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
unsafe impl MPMediaPlaylist {
#[cfg(feature = "MPMediaItem")]
#[method_id(@__retain_semantics Init initWithItems:)]
pub unsafe fn initWithItems(
this: Allocated<Self>,
items: &NSArray<MPMediaItem>,
) -> Id<Self>;
}
);
extern_methods!(
#[cfg(all(feature = "MPMediaEntity", feature = "MPMediaItemCollection"))]
unsafe impl MPMediaPlaylist {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct MPMediaPlaylistCreationMetadata;
unsafe impl ClassType for MPMediaPlaylistCreationMetadata {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for MPMediaPlaylistCreationMetadata {}
extern_methods!(
unsafe impl MPMediaPlaylistCreationMetadata {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics Init initWithName:)]
pub unsafe fn initWithName(this: Allocated<Self>, name: &NSString) -> Id<Self>;
#[method_id(@__retain_semantics Other name)]
pub unsafe fn name(&self) -> Id<NSString>;
#[method_id(@__retain_semantics Other authorDisplayName)]
pub unsafe fn authorDisplayName(&self) -> Id<NSString>;
#[method(setAuthorDisplayName:)]
pub unsafe fn setAuthorDisplayName(&self, author_display_name: Option<&NSString>);
#[method_id(@__retain_semantics Other descriptionText)]
pub unsafe fn descriptionText(&self) -> Id<NSString>;
#[method(setDescriptionText:)]
pub unsafe fn setDescriptionText(&self, description_text: &NSString);
}
);