1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296
|
// swift-interface-format-version: 1.0
// swift-module-flags: -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -library-level spi -enable-bare-slash-regex -user-module-version 211.60.12 -module-name LinearMediaKit
import _Concurrency
import Combine
import CoreMedia
import Foundation
import QuartzCore
import RealityFoundation
import Swift
import UIKit
// FIXME (147782145): Define a clang module for XPC to be used in Public SDK builds
//import XPC
@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc(LMPlayableViewController) @_Concurrency.MainActor(unsafe) public class PlayableViewController : UIKit.UIViewController {
public var playable: (any LinearMediaKit.Playable)? { get set }
public var prefersAutoDimming: Swift.Bool { get set }
public var automaticallyDockOnFullScreenPresentation: Swift.Bool { get set }
public var dismissFullScreenOnExitingDocking: Swift.Bool { get set }
public var environmentPickerButtonViewController: UIKit.UIViewController? { get }
}
public enum ContentType : Swift.Equatable, Swift.CaseIterable, Swift.Codable, Swift.Sendable {
case immersive
case spatial
case planar
case audioOnly
public static func == (a: LinearMediaKit.ContentType, b: LinearMediaKit.ContentType) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public typealias AllCases = [LinearMediaKit.ContentType]
public static var allCases: [LinearMediaKit.ContentType] {
get
}
public func encode(to encoder: any Swift.Encoder) throws
public var hashValue: Swift.Int {
get
}
public init(from decoder: any Swift.Decoder) throws
public static func makeEntity(captionLayer: QuartzCore.CALayer) -> RealityFoundation.Entity?
public static func makeSpatialEntity(videoMetadata: LinearMediaKit.SpatialVideoMetadata?, extruded: Swift.Bool = true) -> (any RealityFoundation.Entity & LinearMediaKit.Peculiarable)?
}
public enum PresentationMode {
case inline
case fullscreen
case fullscreenFromInline
case pip
public static func == (a: LinearMediaKit.PresentationMode, b: LinearMediaKit.PresentationMode) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
public struct RenderingConfiguration : Swift.Equatable {
public var contentType: LinearMediaKit.ContentType?
public var wantsThumbnailLayerPublished: Swift.Bool
public var wantsThumbnailMaterialPublished: Swift.Bool
public var wantsVideoLayerPublished: Swift.Bool
public var wantsVideoMaterialPublished: Swift.Bool
public var wantsVideoAssetPublished: Swift.Bool
public var wantsPeculiarEntityPublished: Swift.Bool
public static func == (a: LinearMediaKit.RenderingConfiguration, b: LinearMediaKit.RenderingConfiguration) -> Swift.Bool
}
public enum ViewingMode {
case mono
case stereo
case immersive
public static var unique: LinearMediaKit.ViewingMode {
get
}
case spatial
public static var singular: LinearMediaKit.ViewingMode {
get
}
public static func == (a: LinearMediaKit.ViewingMode, b: LinearMediaKit.ViewingMode) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
public struct SeekMetadata {
public enum Origin {
case user
public static func == (a: LinearMediaKit.SeekMetadata.Origin, b: LinearMediaKit.SeekMetadata.Origin) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
public let origin: LinearMediaKit.SeekMetadata.Origin
public init(origin: LinearMediaKit.SeekMetadata.Origin)
}
public protocol Track : AnyObject {
var localizedDisplayName: Swift.String { get }
}
public enum PeculiarMode {
case portal
case immersive
public static func == (a: LinearMediaKit.PeculiarMode, b: LinearMediaKit.PeculiarMode) -> Swift.Bool
public func hash(into hasher: inout Swift.Hasher)
public var hashValue: Swift.Int {
get
}
}
public struct SpatialVideoMetadata {
public init(width: Swift.Int32, height: Swift.Int32, horizontalFOVDegrees: Swift.Float, baseline: Swift.Float, disparityAdjustment: Swift.Float, isRecommendedForImmersive: Swift.Bool)
public var width: Swift.Int32
public var height: Swift.Int32
public var horizontalFOVDegrees: Swift.Float
public var baseline: Swift.Float
public var disparityAdjustment: Swift.Float
public var isRecommendedForImmersive: Swift.Bool
}
public protocol Peculiarable {
func setScreen(width: Swift.Float, height: Swift.Float)
var screenMode: LinearMediaKit.PeculiarMode { get set }
var supportedScreenModes: [LinearMediaKit.PeculiarMode] { get }
var screenGUIDPublisher: Combine.AnyPublisher<Swift.UInt64?, Swift.Never> { get }
var shouldDisplayThumbnail: Swift.Bool { get }
var preferStereoPlayback: Swift.Bool { get set }
func setVideoMetaData(to: LinearMediaKit.SpatialVideoMetadata?)
// FIXME (147782145): Define a clang module for XPC to be used in Public SDK builds
// var videoReceiverEndpointPublisher: Combine.AnyPublisher<XPC.xpc_object_t?, Swift.Never> { get }
}
public typealias PeculiarEntity = RealityFoundation.Entity & LinearMediaKit.Peculiarable
public enum ContentMode : Swift.Int, Swift.CaseIterable {
case scaleAspectFit
case scaleAspectFill
case scaleToFill
public static var `default`: LinearMediaKit.ContentMode
public init?(rawValue: Swift.Int)
public typealias AllCases = [LinearMediaKit.ContentMode]
public typealias RawValue = Swift.Int
public static var allCases: [LinearMediaKit.ContentMode] {
get
}
public var rawValue: Swift.Int {
get
}
}
public protocol ContentMetadataKey {
associatedtype Value : Swift.Equatable
static var name: Swift.String { get }
}
public struct ContentMetadata {
public enum DisplayTitle : LinearMediaKit.ContentMetadataKey {
public typealias Value = Swift.String
public static var name: Swift.String
}
public let displayTitle: LinearMediaKit.ContentMetadata.DisplayTitle
public enum DisplaySubtitle : LinearMediaKit.ContentMetadataKey {
public typealias Value = Swift.String
public static var name: Swift.String
}
public let displaySubtitle: LinearMediaKit.ContentMetadata.DisplaySubtitle
public enum AnticipatedStartDate : LinearMediaKit.ContentMetadataKey {
public typealias Value = Foundation.Date
public static var name: Swift.String
}
public let anticipatedStartDate: LinearMediaKit.ContentMetadata.AnticipatedStartDate
public enum AnticipatedEndDate : LinearMediaKit.ContentMetadataKey {
public typealias Value = Foundation.Date
public static var name: Swift.String
}
public let anticipatedEndDate: LinearMediaKit.ContentMetadata.AnticipatedEndDate
}
@dynamicMemberLookup public struct ContentMetadataContainer {
public init()
public subscript<K>(dynamicMember keyPath: Swift.KeyPath<LinearMediaKit.ContentMetadata, K>) -> K.Value? where K : LinearMediaKit.ContentMetadataKey {
get
set
}
}
public struct FullscreenBehaviors : Swift.OptionSet, Swift.CustomStringConvertible {
public let rawValue: Swift.Int
public init(rawValue: Swift.Int)
public static let sceneResize: LinearMediaKit.FullscreenBehaviors
public static let sceneSizeRestrictions: LinearMediaKit.FullscreenBehaviors
public static let sceneChromeOptions: LinearMediaKit.FullscreenBehaviors
public static let hostContentInline: LinearMediaKit.FullscreenBehaviors
public static let `default`: [LinearMediaKit.FullscreenBehaviors]
public var description: Swift.String {
get
}
public typealias ArrayLiteralElement = LinearMediaKit.FullscreenBehaviors
public typealias Element = LinearMediaKit.FullscreenBehaviors
public typealias RawValue = Swift.Int
}
public protocol Playable : AnyObject {
var presentationModePublisher: Combine.AnyPublisher<LinearMediaKit.PresentationMode, Swift.Never> { get }
func makeDefaultEntity() -> RealityFoundation.Entity?
func updateRenderingConfiguration(_ config: LinearMediaKit.RenderingConfiguration)
var errorPublisher: Combine.AnyPublisher<(any Swift.Error)?, Swift.Never> { get }
var isLoadingPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
@available(*, deprecated, message: "Replaced by 'playbackRatePublisher'")
var isPlayingPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var playbackRatePublisher: Combine.AnyPublisher<Swift.Double, Swift.Never> { get }
var selectedPlaybackRatePublisher: Combine.AnyPublisher<Swift.Double, Swift.Never> { get }
var playbackRatesPublisher: Combine.AnyPublisher<[Swift.Double], Swift.Never> { get }
var requiresLinearPlaybackPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var canTogglePlaybackPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var showsPlaybackControlsPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
func play()
func pause()
func togglePlayback()
func setPlaybackRate(_ rate: Swift.Double)
var interstitialRangesPublisher: Combine.AnyPublisher<[Swift.Range<Foundation.TimeInterval>], Swift.Never> { get }
var isInterstitialActivePublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
func skipActiveInterstitial()
var currentTimePublisher: Combine.AnyPublisher<Foundation.TimeInterval, Swift.Never> { get }
var remainingTimePublisher: Combine.AnyPublisher<Foundation.TimeInterval, Swift.Never> { get }
var durationPublisher: Combine.AnyPublisher<Foundation.TimeInterval, Swift.Never> { get }
func setTimeResolverInterval(_ interval: Foundation.TimeInterval)
func setTimeResolverResolution(_ resolution: Swift.Double)
var thumbnailLayerPublisher: Combine.AnyPublisher<QuartzCore.CALayer?, Swift.Never> { get }
var thumbnailMaterialPublisher: Combine.AnyPublisher<RealityFoundation.VideoMaterial?, Swift.Never> { get }
func setThumbnailSize(_ size: CoreFoundation.CGSize)
func seekThumbnail(to time: Foundation.TimeInterval)
var captionLayerPublisher: Combine.AnyPublisher<QuartzCore.CALayer?, Swift.Never> { get }
@available(*, deprecated, message: "Use captionContentInsetsPublisher and setCaptionContentInsets instead.")
var captionContentInsets: UIKit.UIEdgeInsets { get set }
var captionContentInsetsPublisher: Combine.AnyPublisher<UIKit.UIEdgeInsets, Swift.Never> { get }
func setCaptionContentInsets(_ insets: UIKit.UIEdgeInsets)
var isSeekingPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var canSeekPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var seekableTimeRangesPublisher: Combine.AnyPublisher<[Swift.ClosedRange<Foundation.TimeInterval>], Swift.Never> { get }
@available(*, deprecated, message: "Replace with seek(to:from:metadata:)")
func seek(to time: Foundation.TimeInterval)
@available(*, deprecated, message: "Replace with seek(to:from:metadata:)")
func seek(delta: Foundation.TimeInterval)
func seek(to destination: Foundation.TimeInterval, from source: Foundation.TimeInterval, metadata: LinearMediaKit.SeekMetadata) -> Foundation.TimeInterval
func beginScrubbing()
func endScrubbing()
var canScanForwardPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
func beginScanningForward()
func endScanningForward()
var canScanBackwardPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
func beginScanningBackward()
func endScanningBackward()
var isTrimmingPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var forwardPlaybackEndTimePublisher: Combine.AnyPublisher<CoreMedia.CMTime?, Swift.Never> { get }
var reversePlaybackEndTimePublisher: Combine.AnyPublisher<CoreMedia.CMTime?, Swift.Never> { get }
var trimViewPublisher: Combine.AnyPublisher<UIKit.UIView?, Swift.Never> { get }
func completeTrimming(commitChanges: Swift.Bool)
func updateStartTime(_ time: Foundation.TimeInterval)
func updateEndTime(_ time: Foundation.TimeInterval)
var contentTypePublisher: Combine.AnyPublisher<LinearMediaKit.ContentType?, Swift.Never> { get }
var contentMetadataPublisher: Combine.AnyPublisher<LinearMediaKit.ContentMetadataContainer, Swift.Never> { get }
var artworkPublisher: Combine.AnyPublisher<Foundation.Data?, Swift.Never> { get }
var isPlayableOfflinePublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var contentInfoViewControllersPublisher: Combine.AnyPublisher<[UIKit.UIViewController], Swift.Never> { get }
var contextualActionsPublisher: Combine.AnyPublisher<[UIKit.UIAction], Swift.Never> { get }
var contextualActionsInfoViewPublisher: Combine.AnyPublisher<UIKit.UIView?, Swift.Never> { get }
var transportBarIncludesTitleViewPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var contentDimensionsPublisher: Combine.AnyPublisher<CoreFoundation.CGSize, Swift.Never> { get }
var contentModePublisher: Combine.AnyPublisher<LinearMediaKit.ContentMode, Swift.Never> { get }
var videoLayerPublisher: Combine.AnyPublisher<QuartzCore.CALayer?, Swift.Never> { get }
var videoMaterialPublisher: Combine.AnyPublisher<RealityFoundation.VideoMaterial?, Swift.Never> { get }
@available(*, deprecated, message: "Will be removed during seed -1")
var peculiarEntityPublisher: Combine.AnyPublisher<(any RealityFoundation.Entity & LinearMediaKit.Peculiarable)?, Swift.Never> { get }
func updateVideoBounds(_ bounds: CoreFoundation.CGRect)
var anticipatedViewingModePublisher: Combine.AnyPublisher<LinearMediaKit.ViewingMode?, Swift.Never> { get }
func updateViewingMode(_ viewingMode: LinearMediaKit.ViewingMode?)
var contentOverlayPublisher: Combine.AnyPublisher<UIKit.UIView?, Swift.Never> { get }
var contentOverlayViewControllerPublisher: Combine.AnyPublisher<UIKit.UIViewController?, Swift.Never> { get }
// FIXME (147782145): Define a clang module for XPC to be used in Public SDK builds
// func setVideoReceiverEndpoint(_ endpoint: XPC.xpc_object_t)
var volumePublisher: Combine.AnyPublisher<Swift.Double, Swift.Never> { get }
func setVolume(_ volume: Swift.Double)
func beginEditingVolume()
func endEditingVolume()
var isMutedPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
func setIsMuted(_ value: Swift.Bool)
var sessionDisplayTitlePublisher: Combine.AnyPublisher<Swift.String?, Swift.Never> { get }
var sessionThumbnailPublisher: Combine.AnyPublisher<UIKit.UIImage?, Swift.Never> { get }
var isSessionExtendedPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var hasAudioContentPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var currentAudioTrackPublisher: Combine.AnyPublisher<(any LinearMediaKit.Track)?, Swift.Never> { get }
var audioTracksPublisher: Combine.AnyPublisher<[any LinearMediaKit.Track]?, Swift.Never> { get }
func setAudioTrack(_ newTrack: (any LinearMediaKit.Track)?)
var currentLegibleTrackPublisher: Combine.AnyPublisher<(any LinearMediaKit.Track)?, Swift.Never> { get }
var legibleTracksPublisher: Combine.AnyPublisher<[any LinearMediaKit.Track]?, Swift.Never> { get }
func setLegibleTrack(_ newTrack: (any LinearMediaKit.Track)?)
var allowPipPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
func togglePip()
func toggleInlineMode()
var allowFullScreenFromInlinePublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var isLiveStreamPublisher: Combine.AnyPublisher<Swift.Bool, Swift.Never> { get }
var startDatePublisher: Combine.AnyPublisher<Foundation.Date, Swift.Never> { get }
var endDatePublisher: Combine.AnyPublisher<Foundation.Date, Swift.Never> { get }
var recommendedViewingRatioPublisher: Combine.AnyPublisher<Swift.Double?, Swift.Never> { get }
var fullscreenSceneBehaviorsPublisher: Combine.AnyPublisher<[LinearMediaKit.FullscreenBehaviors], Swift.Never> { get }
func willEnterFullscreen()
func didCompleteEnterFullscreen(result: Swift.Result<Swift.Void, any Swift.Error>)
func willExitFullscreen()
func didCompleteExitFullscreen(result: Swift.Result<Swift.Void, any Swift.Error>)
}
|