dreamio/Dreamio/NativePlaybackBackend.swift

28 lines
800 B
Swift

import UIKit
protocol NativePlaybackBackend: AnyObject {
var view: UIView { get }
var onReady: (() -> Void)? { get set }
var onFailure: ((Error) -> Void)? { get set }
func prepare(in viewController: UIViewController)
func play(request: NativePlaybackRequest)
func stop()
}
enum NativePlaybackError: LocalizedError {
case backendUnavailable
case startupTimedOut
case playbackFailed
var errorDescription: String? {
switch self {
case .backendUnavailable:
return "Native playback is not available in this build."
case .startupTimedOut:
return "Native playback did not start before the timeout."
case .playbackFailed:
return "VLC reported a playback error for this stream."
}
}
}