use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[deprecated = "Use MusicAuthorization.Status from MusicKit"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct SKCloudServiceAuthorizationStatus(pub NSInteger);
impl SKCloudServiceAuthorizationStatus {
#[doc(alias = "SKCloudServiceAuthorizationStatusNotDetermined")]
#[deprecated = "Use MusicAuthorization.Status from MusicKit"]
pub const NotDetermined: Self = Self(0);
#[doc(alias = "SKCloudServiceAuthorizationStatusDenied")]
#[deprecated = "Use MusicAuthorization.Status from MusicKit"]
pub const Denied: Self = Self(1);
#[doc(alias = "SKCloudServiceAuthorizationStatusRestricted")]
#[deprecated = "Use MusicAuthorization.Status from MusicKit"]
pub const Restricted: Self = Self(2);
#[doc(alias = "SKCloudServiceAuthorizationStatusAuthorized")]
#[deprecated = "Use MusicAuthorization.Status from MusicKit"]
pub const Authorized: Self = Self(3);
}
unsafe impl Encode for SKCloudServiceAuthorizationStatus {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for SKCloudServiceAuthorizationStatus {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[deprecated = "Use MusicSubscription from MusicKit"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct SKCloudServiceCapability(pub NSUInteger);
bitflags::bitflags! {
impl SKCloudServiceCapability: NSUInteger {
#[doc(alias = "SKCloudServiceCapabilityNone")]
#[deprecated = "Use MusicSubscription from MusicKit"]
const None = 0;
#[doc(alias = "SKCloudServiceCapabilityMusicCatalogPlayback")]
#[deprecated = "Use MusicSubscription from MusicKit"]
const MusicCatalogPlayback = 1<<0;
#[doc(alias = "SKCloudServiceCapabilityMusicCatalogSubscriptionEligible")]
#[deprecated = "Use the canBecomeSubscriber property of MusicSubscription from MusicKit"]
const MusicCatalogSubscriptionEligible = 1<<1;
#[doc(alias = "SKCloudServiceCapabilityAddToCloudMusicLibrary")]
#[deprecated = "Use MusicSubscription from MusicKit"]
const AddToCloudMusicLibrary = 1<<8;
}
}
unsafe impl Encode for SKCloudServiceCapability {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for SKCloudServiceCapability {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[deprecated = "Use MusicKit"]
pub struct SKCloudServiceController;
);
extern_conformance!(
unsafe impl NSObjectProtocol for SKCloudServiceController {}
);
impl SKCloudServiceController {
extern_methods!(
#[deprecated = "Use MusicAuthorization.currentStatus from MusicKit"]
#[unsafe(method(authorizationStatus))]
#[unsafe(method_family = none)]
pub unsafe fn authorizationStatus() -> SKCloudServiceAuthorizationStatus;
#[cfg(feature = "block2")]
#[deprecated = "Use MusicAuthorization.request() from MusicKit"]
#[unsafe(method(requestAuthorization:))]
#[unsafe(method_family = none)]
pub unsafe fn requestAuthorization(
completion_handler: &block2::DynBlock<dyn Fn(SKCloudServiceAuthorizationStatus)>,
);
#[cfg(feature = "block2")]
#[deprecated = "Use MusicSubscription.current from MusicKit"]
#[unsafe(method(requestCapabilitiesWithCompletionHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn requestCapabilitiesWithCompletionHandler(
&self,
completion_handler: &block2::DynBlock<dyn Fn(SKCloudServiceCapability, *mut NSError)>,
);
#[cfg(feature = "block2")]
#[deprecated = "Use MusicDataRequest.currentCountryCode from MusicKit"]
#[unsafe(method(requestStorefrontCountryCodeWithCompletionHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn requestStorefrontCountryCodeWithCompletionHandler(
&self,
completion_handler: &block2::DynBlock<dyn Fn(*mut NSString, *mut NSError)>,
);
#[cfg(feature = "block2")]
#[deprecated = "Use Storefront.current.id"]
#[unsafe(method(requestStorefrontIdentifierWithCompletionHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn requestStorefrontIdentifierWithCompletionHandler(
&self,
completion_handler: &block2::DynBlock<dyn Fn(*mut NSString, *mut NSError)>,
);
#[cfg(feature = "block2")]
#[deprecated = "Use MusicKit"]
#[unsafe(method(requestUserTokenForDeveloperToken:completionHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn requestUserTokenForDeveloperToken_completionHandler(
&self,
developer_token: &NSString,
completion_handler: &block2::DynBlock<dyn Fn(*mut NSString, *mut NSError)>,
);
#[cfg(feature = "block2")]
#[deprecated]
#[unsafe(method(requestPersonalizationTokenForClientToken:withCompletionHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn requestPersonalizationTokenForClientToken_withCompletionHandler(
&self,
client_token: &NSString,
completion_handler: &block2::DynBlock<dyn Fn(*mut NSString, *mut NSError)>,
);
);
}
impl SKCloudServiceController {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern "C" {
#[deprecated = "Use MusicSubscription.subscriptionUpdates from MusicKit"]
pub static SKCloudServiceCapabilitiesDidChangeNotification: &'static NSNotificationName;
}
extern "C" {
#[deprecated = "Use Storefront.updates"]
pub static SKStorefrontCountryCodeDidChangeNotification: &'static NSNotificationName;
}
extern "C" {
#[deprecated = "Use Storefront.updates"]
pub static SKStorefrontIdentifierDidChangeNotification: &'static NSNotificationName;
}