diff --git a/src/MediaPlayer/MPNowPlayingInfoCenter.cs b/src/MediaPlayer/MPNowPlayingInfoCenter.cs index ac25019818f1..be0c2a59222f 100644 --- a/src/MediaPlayer/MPNowPlayingInfoCenter.cs +++ b/src/MediaPlayer/MPNowPlayingInfoCenter.cs @@ -7,13 +7,14 @@ // Copyright 2011, Xamarin Inc // -#if !TVOS && !MONOMAC +#if XAMCORE_2_0 || !MONOMAC using XamCore.Foundation; using XamCore.ObjCRuntime; namespace XamCore.MediaPlayer { + [Mac (10,12,2, onlyOn64: true)] public class MPNowPlayingInfo { public MPNowPlayingInfo () { @@ -220,13 +221,10 @@ public MPNowPlayingInfo NowPlaying { return new MPNowPlayingInfo (_NowPlayingInfo); } set { - if (value == null) - _NowPlayingInfo = null; - else - _NowPlayingInfo = value.ToDictionary (); + _NowPlayingInfo = value?.ToDictionary (); } } } } -#endif // !TVOS +#endif diff --git a/src/MediaPlayer/MediaPlayer.cs b/src/MediaPlayer/MediaPlayer.cs index 0ae65b7d40c2..7258a7768715 100644 --- a/src/MediaPlayer/MediaPlayer.cs +++ b/src/MediaPlayer/MediaPlayer.cs @@ -18,6 +18,7 @@ namespace XamCore.MediaPlayer { [Native] [NoMac] [NoTV] + [Availability (Deprecated = Platform.iOS_9_0)] public enum MPMoviePlaybackState : nint { Stopped, Playing, @@ -31,6 +32,7 @@ public enum MPMoviePlaybackState : nint { [Native] [NoMac] [NoTV] + [Availability (Deprecated = Platform.iOS_9_0)] public enum MPMovieLoadState : nint { Unknown = 0, Playable = 1 << 0, diff --git a/src/mediaplayer.cs b/src/mediaplayer.cs index ca18baa3daa3..72e65f8a9f9b 100644 --- a/src/mediaplayer.cs +++ b/src/mediaplayer.cs @@ -22,10 +22,9 @@ namespace XamCore.MediaPlayer { #if XAMCORE_2_0 || !MONOMAC - [NoMac] - [NoTV] + [Mac (10,12,2, onlyOn64: true)] // type exists only to expose fields [BaseType (typeof (NSObject))] -#if XAMCORE_2_0 +#if XAMCORE_2_0 && IOS // introduced in 4.2 interface MPMediaEntity : NSSecureCoding { #else @@ -49,7 +48,7 @@ interface MPMediaItem : NSSecureCoding { [Field ("MPMediaEntityPropertyPersistentID")] NSString PropertyPersistentID { get; } -#if XAMCORE_2_0 +#if XAMCORE_2_0 && IOS } [NoMac] @@ -57,10 +56,12 @@ interface MPMediaItem : NSSecureCoding { [BaseType (typeof (MPMediaEntity))] interface MPMediaItem { #endif + [NoMac][NoTV] [Since (4,2)] [Export ("persistentIDPropertyForGroupingType:")][Static] string GetPersistentIDProperty (MPMediaGrouping groupingType); + [NoMac][NoTV] [Since (4,2)] [Export ("titlePropertyForGroupingType:")][Static] string GetTitleProperty (MPMediaGrouping groupingType); @@ -297,13 +298,13 @@ interface MPMediaItemArtwork { [NoTV] // Objective-C exception thrown. Name: MPMediaItemCollectionInitException Reason: -init is not supported, use -initWithItems: [DisableDefaultCtor] -#if XAMCORE_2_0 +#if XAMCORE_2_0 && IOS // introduced in 4.2 - but the type was never added to classic [BaseType (typeof (MPMediaEntity))] #else [BaseType (typeof (NSObject))] #endif -#if XAMCORE_3_0 || !XAMCORE_2_0 +#if XAMCORE_3_0 || !XAMCORE_2_0 || !IOS interface MPMediaItemCollection : NSSecureCoding { #else // part of the bug is that we inlined MPMediaEntity needlessly @@ -364,7 +365,7 @@ interface MPMediaLibrary : NSSecureCoding { [iOS (9,3)] [Export ("addItemWithProductID:completionHandler:")] [Async] -#if XAMCORE_2_0 +#if XAMCORE_2_0 && IOS // MPMediaEntity was not part of classic void AddItem (string productID, [NullAllowed] Action completionHandler); #else @@ -813,7 +814,7 @@ interface MPMediaPlayback { #if !MONOMAC [NoTV] - [Availability (Deprecated = Platform.iOS_9_0)] + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [BaseType (typeof (NSObject))] interface MPMoviePlayerController : MPMediaPlayback { [DesignatedInitializer] @@ -870,7 +871,7 @@ interface MPMoviePlayerController : MPMediaPlayback { bool ShouldAutoplay { get; set; } [Export ("useApplicationAudioSession")] - [Availability (Introduced = Platform.iOS_3_2, Deprecated = Platform.iOS_6_0)] + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] bool UseApplicationAudioSession { get; set; } [Since (3,2)] @@ -889,10 +890,12 @@ interface MPMoviePlayerController : MPMediaPlayback { [Export ("airPlayVideoActive")] bool AirPlayVideoActive { [Bind ("isAirPlayVideoActive")] get; } + [Availability (Deprecated = Platform.iOS_9_0)] [Since (4,3)] [Export ("accessLog")] MPMovieAccessLog AccessLog { get; } + [Availability (Deprecated = Platform.iOS_9_0)] [Since (4,3)] [Export ("errorLog")] MPMovieErrorLog ErrorLog { get; } @@ -942,128 +945,156 @@ interface MPMoviePlayerController : MPMediaPlayback { [Export ("timedMetadata")] MPTimedMetadata [] TimedMetadata { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Field ("MPMoviePlayerScalingModeDidChangeNotification")] [Notification] NSString ScalingModeDidChangeNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Field ("MPMoviePlayerPlaybackDidFinishNotification")] [Notification (typeof (MPMoviePlayerFinishedEventArgs))] NSString PlaybackDidFinishNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerPlaybackDidFinishReasonUserInfoKey")] // NSNumber (MPMovieFinishReason) NSString PlaybackDidFinishReasonUserInfoKey { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerPlaybackStateDidChangeNotification")] [Notification] NSString PlaybackStateDidChangeNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerLoadStateDidChangeNotification")] [Notification] NSString LoadStateDidChangeNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerNowPlayingMovieDidChangeNotification")] [Notification] NSString NowPlayingMovieDidChangeNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerWillEnterFullscreenNotification")] [Notification (typeof (MPMoviePlayerFullScreenEventArgs))] [Notification] NSString WillEnterFullscreenNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerDidEnterFullscreenNotification")] [Notification] NSString DidEnterFullscreenNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerWillExitFullscreenNotification")] [Notification (typeof (MPMoviePlayerFullScreenEventArgs))] NSString WillExitFullscreenNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerDidExitFullscreenNotification")] [Notification] NSString DidExitFullscreenNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerFullscreenAnimationDurationUserInfoKey")] NSString FullscreenAnimationDurationUserInfoKey { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerFullscreenAnimationCurveUserInfoKey")] NSString FullscreenAnimationCurveUserInfoKey { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMovieMediaTypesAvailableNotification")] [Notification] NSString TypesAvailableNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMovieSourceTypeAvailableNotification")] [Notification] NSString SourceTypeAvailableNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMovieDurationAvailableNotification")] [Notification] NSString DurationAvailableNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMovieNaturalSizeAvailableNotification")] [Notification] NSString NaturalSizeAvailableNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerThumbnailImageRequestDidFinishNotification")] [Notification (typeof (MPMoviePlayerThumbnailEventArgs))] NSString ThumbnailImageRequestDidFinishNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerThumbnailImageKey")] NSString ThumbnailImageKey { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerThumbnailTimeKey")] NSString ThumbnailTimeKey { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (3,2)] [Field ("MPMoviePlayerThumbnailErrorKey")] NSString ThumbnailErrorKey { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (4,0)] [Field ("MPMoviePlayerTimedMetadataUpdatedNotification")] [Notification (typeof (MPMoviePlayerTimedMetadataEventArgs))] NSString TimedMetadataUpdatedNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (4,0)] [Field ("MPMoviePlayerTimedMetadataUserInfoKey")] NSString TimedMetadataUserInfoKey { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (4,0)] [Field ("MPMoviePlayerTimedMetadataKeyName")] NSString TimedMetadataKeyName { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (4,0)] [Field ("MPMoviePlayerTimedMetadataKeyInfo")] NSString TimedMetadataKeyInfo { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (4,0)] [Field ("MPMoviePlayerTimedMetadataKeyMIMEType")] NSString TimedMetadataKeyMIMEType { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (4,0)] [Field ("MPMoviePlayerTimedMetadataKeyDataType")] NSString TimedMetadataKeyDataType { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (4,0)] [Field ("MPMoviePlayerTimedMetadataKeyLanguageCode")] NSString TimedMetadataKeyLanguageCode { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Field ("MPMediaPlaybackIsPreparedToPlayDidChangeNotification")] [Notification] NSString MediaPlaybackIsPreparedToPlayDidChangeNotification { get; } @@ -1072,11 +1103,13 @@ interface MPMoviePlayerController : MPMediaPlayback { [Export ("readyForDisplay")] bool ReadyForDisplay { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Since (6,0)] [Field ("MPMoviePlayerReadyForDisplayDidChangeNotification")] [Notification] NSString MoviePlayerReadyForDisplayDidChangeNotification { get; } + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [iOS (5,0)] [Field ("MPMoviePlayerIsAirPlayVideoActiveDidChangeNotification")] [Notification] @@ -1114,7 +1147,7 @@ interface MPTimedMetadata { #if !MONOMAC [NoTV] [BaseType (typeof (UIViewController))] - [Availability (Introduced = Platform.iOS_3_2, Deprecated = Platform.iOS_9_0)] + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] interface MPMoviePlayerViewController { [DesignatedInitializer] [Export ("initWithContentURL:")] @@ -1393,6 +1426,12 @@ interface MPNowPlayingInfoCenter { [Field ("MPNowPlayingInfoPropertyExternalUserProfileIdentifier")] NSString PropertyExternalUserProfileIdentifier { get; } + [iOS (11,0)] + [TV (11,0)] + [Mac (10,13, onlyOn64: true)] + [Field ("MPNowPlayingInfoPropertyServiceIdentifier")] + NSString PropertyServiceIdentifier { get; } + [iOS (10,0)] [TV (10,0)] [Field ("MPNowPlayingInfoPropertyPlaybackProgress")] @@ -1409,7 +1448,7 @@ interface MPNowPlayingInfoCenter { NSString PropertyIsLiveStream { get; } [iOS (10,3)] - [Mac (10,12,3)] + [Mac (10,12,3, onlyOn64: true)] [Field ("MPNowPlayingInfoPropertyAssetURL")] NSString PropertyAssetUrl { get; } } @@ -1439,13 +1478,11 @@ interface MPContentItem { [Export ("title")] string Title { get; set; } - [NoMac] [iOS (10,0)] [TV (10,0)] [Export ("streamingContent")] bool StreamingContent { [Bind ("isStreamingContent")] get; set; } - [NoMac] [iOS (10,0)] [TV (10,0)] [Export ("explicitContent")] @@ -1653,7 +1690,6 @@ interface MPFeedbackCommand { [Export ("localizedTitle")] string LocalizedTitle { get; set; } - [NoMac] [iOS (8,2)] // added in 8.2, shown as NS_AVAILABLE_IOS(8_0) [Export ("localizedShortTitle")] string LocalizedShortTitle { get; set; } @@ -2085,5 +2121,61 @@ interface MPMusicPlayerApplicationController [Export ("performQueueTransaction:completionHandler:")] void Perform (Action queueTransaction, Action completionHandler); } + + [NoTV][NoMac] + [iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface MPMusicPlayerPlayParameters : NSSecureCoding { + [Export ("initWithDictionary:")] + IntPtr Constructor (NSDictionary dictionary); + + [Export ("dictionary", ArgumentSemantic.Copy)] + NSDictionary Dictionary { get; } + } + + [NoTV][NoMac] + [iOS (11,0)] + [BaseType (typeof (MPMusicPlayerQueueDescriptor))] + [DisableDefaultCtor] + interface MPMusicPlayerPlayParametersQueueDescriptor { + [Export ("initWithPlayParametersQueue:")] + IntPtr Constructor (MPMusicPlayerPlayParameters[] playParametersQueue); + + [Export ("playParametersQueue", ArgumentSemantic.Copy)] + MPMusicPlayerPlayParameters[] PlayParametersQueue { get; set; } + + [NullAllowed, Export ("startItemPlayParameters", ArgumentSemantic.Strong)] + MPMusicPlayerPlayParameters StartItemPlayParameters { get; set; } + + [Export ("setStartTime:forItemWithPlayParameters:")] + void SetStartTime (/* NSTimeInterval */ double startTime, MPMusicPlayerPlayParameters playParameters); + + [Export ("setEndTime:forItemWithPlayParameters:")] + void SetEndTime (/* NSTimeInterval */ double endTime, MPMusicPlayerPlayParameters playParameters); + } + + interface IMPSystemMusicPlayerController {} + + [NoTV][NoMac] + [iOS (11,0)] + [Protocol] + interface MPSystemMusicPlayerController { + [Abstract] + [Export ("openToPlayQueueDescriptor:")] + void OpenToPlay (MPMusicPlayerQueueDescriptor queueDescriptor); + } + + [Category] + [BaseType (typeof (NSUserActivity))] + [TV (10,0,1)][iOS (10,1)] + [NoWatch][NoMac] + interface NSUserActivity_MediaPlayerAdditions { + [NullAllowed, Export ("externalMediaContentIdentifier")] + NSString GetExternalMediaContentIdentifier (); + + [NullAllowed, Export ("setExternalMediaContentIdentifier:")] + void SetExternalMediaContentIdentifier (NSString identifier); + } #endif } diff --git a/src/uikit.cs b/src/uikit.cs index 3ad42b64d88a..43281b4e9ddc 100644 --- a/src/uikit.cs +++ b/src/uikit.cs @@ -13458,13 +13458,13 @@ interface UIViewController : NSCoding, UIAppearanceContainer, UIContentContainer // 3.2 extensions from MoviePlayer [NoMac] [NoTV] - [Availability (Introduced = Platform.iOS_3_2, Deprecated = Platform.iOS_9_0)] + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Export ("presentMoviePlayerViewControllerAnimated:")] void PresentMoviePlayerViewController (MPMoviePlayerViewController moviePlayerViewController); [NoMac] [NoTV] - [Availability (Introduced = Platform.iOS_3_2, Deprecated = Platform.iOS_9_0)] + [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'AVPlayerViewController' (AVKit) instead.")] [Export ("dismissMoviePlayerViewControllerAnimated")] void DismissMoviePlayerViewController (); diff --git a/tests/introspection/ApiProtocolTest.cs b/tests/introspection/ApiProtocolTest.cs index c18789d3f0d9..2003eaa9ecd7 100644 --- a/tests/introspection/ApiProtocolTest.cs +++ b/tests/introspection/ApiProtocolTest.cs @@ -71,6 +71,7 @@ protected virtual bool Skip (Type type, string protocolName) case "CAEmitterCell": case "GKAchievement": case "GKScore": + case "MPMediaItem": // new in iOS8 and 10.0 case "NSExtensionContext": case "NSLayoutAnchor`1": diff --git a/tests/introspection/iOS/iOSApiProtocolTest.cs b/tests/introspection/iOS/iOSApiProtocolTest.cs index 024452723727..d84364b3ec28 100644 --- a/tests/introspection/iOS/iOSApiProtocolTest.cs +++ b/tests/introspection/iOS/iOSApiProtocolTest.cs @@ -393,7 +393,6 @@ protected override bool Skip (Type type, string protocolName) switch (type.Name) { // undocumented conformance (up to 7.0) and conformity varies between iOS versions case "MKDirectionsRequest": - case "MPMediaItem": case "MPMediaPlaylist": case "MPMediaItemCollection": case "MPMediaEntity": diff --git a/tests/xtro-sharpie/ios.ignore b/tests/xtro-sharpie/ios.ignore index 1ebb8053dee5..a0ea1b888cdb 100644 --- a/tests/xtro-sharpie/ios.ignore +++ b/tests/xtro-sharpie/ios.ignore @@ -77,6 +77,14 @@ !missing-field! IntentsUIVersionString not bound +# MediaPlayer + +## incorrect macro/parsing - decorated with `MP_API(macos(10.12.2))` +!missing-enum! MPNowPlayingPlaybackState not bound +!missing-selector! MPNowPlayingInfoCenter::playbackState not bound +!missing-selector! MPNowPlayingInfoCenter::setPlaybackState: not bound + + # ReplayKit ## only used on tvOS but exposed in iOS 10 SDK diff --git a/tests/xtro-sharpie/osx.pending b/tests/xtro-sharpie/osx.pending index 0644254abea2..ee9ed0d26376 100644 --- a/tests/xtro-sharpie/osx.pending +++ b/tests/xtro-sharpie/osx.pending @@ -403,9 +403,11 @@ # MediaPlayer API macOS 10.12.2 +## MPMediaItem only exposed for fields, it's not really available in macOS +!wrong-base-type! MPMediaItem expected MPMediaEntity actual NSObject + # These are not available on macOS even if xtro says so. !missing-type! MPMediaEntity not bound -!missing-type! MPMediaItem not bound !missing-enum! MPErrorCode not bound !missing-enum! MPMediaType not bound @@ -413,50 +415,16 @@ !missing-field! MPErrorDomain not bound !missing-field! MPMediaEntityPropertyPersistentID not bound -!missing-field! MPMediaItemPropertyAlbumArtist not bound -!missing-field! MPMediaItemPropertyAlbumArtistPersistentID not bound -!missing-field! MPMediaItemPropertyAlbumPersistentID not bound -!missing-field! MPMediaItemPropertyAlbumTitle not bound -!missing-field! MPMediaItemPropertyAlbumTrackCount not bound -!missing-field! MPMediaItemPropertyAlbumTrackNumber not bound -!missing-field! MPMediaItemPropertyArtist not bound -!missing-field! MPMediaItemPropertyArtistPersistentID not bound -!missing-field! MPMediaItemPropertyArtwork not bound -!missing-field! MPMediaItemPropertyAssetURL not bound -!missing-field! MPMediaItemPropertyBeatsPerMinute not bound -!missing-field! MPMediaItemPropertyBookmarkTime not bound -!missing-field! MPMediaItemPropertyComments not bound -!missing-field! MPMediaItemPropertyComposer not bound -!missing-field! MPMediaItemPropertyComposerPersistentID not bound -!missing-field! MPMediaItemPropertyDateAdded not bound -!missing-field! MPMediaItemPropertyDiscCount not bound -!missing-field! MPMediaItemPropertyDiscNumber not bound -!missing-field! MPMediaItemPropertyGenre not bound -!missing-field! MPMediaItemPropertyGenrePersistentID not bound -!missing-field! MPMediaItemPropertyHasProtectedAsset not bound -!missing-field! MPMediaItemPropertyIsCloudItem not bound -!missing-field! MPMediaItemPropertyIsCompilation not bound -!missing-field! MPMediaItemPropertyIsExplicit not bound -!missing-field! MPMediaItemPropertyLastPlayedDate not bound -!missing-field! MPMediaItemPropertyLyrics not bound -!missing-field! MPMediaItemPropertyMediaType not bound -!missing-field! MPMediaItemPropertyPersistentID not bound -!missing-field! MPMediaItemPropertyPlayCount not bound -!missing-field! MPMediaItemPropertyPlaybackDuration not bound -!missing-field! MPMediaItemPropertyPodcastPersistentID not bound -!missing-field! MPMediaItemPropertyPodcastTitle not bound -!missing-field! MPMediaItemPropertyRating not bound -!missing-field! MPMediaItemPropertyReleaseDate not bound -!missing-field! MPMediaItemPropertySkipCount not bound -!missing-field! MPMediaItemPropertyTitle not bound -!missing-field! MPMediaItemPropertyUserGrouping not bound - +## type not available on macOS !missing-selector! +MPMediaEntity::canFilterByProperty: not bound !missing-selector! MPMediaEntity::enumerateValuesForProperties:usingBlock: not bound !missing-selector! MPMediaEntity::objectForKeyedSubscript: not bound !missing-selector! MPMediaEntity::valueForProperty: not bound + +## deprecaed in iOS 10, not on macOS !missing-selector! MPMediaItemArtwork::imageCropRect not bound + # Not available in OS X !missing-selector! ACAccount::userFullName not bound diff --git a/tests/xtro-sharpie/tvos.ignore b/tests/xtro-sharpie/tvos.ignore index 6a52537344c5..5f5d0056a06d 100644 --- a/tests/xtro-sharpie/tvos.ignore +++ b/tests/xtro-sharpie/tvos.ignore @@ -282,6 +282,21 @@ !missing-selector! +MPMediaItem::persistentIDPropertyForGroupingType: not bound !missing-selector! +MPMediaItem::titlePropertyForGroupingType: not bound +## unused in public API for tvOS +!missing-enum! MPMediaType not bound + + These are not available on macOS even if xtro says so. +!missing-type! MPMediaEntity not bound + +## MPMediaItem only exposed for fields, it's not really available in macOS +!unknown-type! MPMediaItem bound +#!wrong-base-type! MPMediaItem expected MPMediaEntity actual NSObject + +## incorrect macro/parsing - decorated with `MP_API(macos(10.12.2))` +!missing-enum! MPNowPlayingPlaybackState not bound +!missing-selector! MPNowPlayingInfoCenter::playbackState not bound +!missing-selector! MPNowPlayingInfoCenter::setPlaybackState: not bound + # StoreKit diff --git a/tests/xtro-sharpie/watchos.ignore b/tests/xtro-sharpie/watchos.ignore index 5bf9cd3ee4fe..283f04706765 100644 --- a/tests/xtro-sharpie/watchos.ignore +++ b/tests/xtro-sharpie/watchos.ignore @@ -119,6 +119,20 @@ AVAudioPlayerDelegate::audioPlayerEndInterruption:withOptions: !missing-enum! PKPaymentButtonType not bound +# SpriteKit + +## AVPlayer is not available on watchOS +!missing-selector! +SKVideoNode::videoNodeWithAVPlayer: not bound +!missing-selector! SKVideoNode::initWithAVPlayer: not bound + +## Those API are already deprecated - so we're not adding them +## from a managed point-of-view that's invisible (same .ctor) +!missing-selector! SKVideoNode::initWithVideoFileNamed: not bound +!missing-selector! SKVideoNode::initWithVideoURL: not bound +!missing-selector! +SKVideoNode::videoNodeWithVideoFileNamed: not bound +!missing-selector! +SKVideoNode::videoNodeWithVideoURL: not bound + + # UIKit ## Implemented in managed code