TSClient

@interface TSClient : NSObject

A DVB-CSS Timeline Synchronisation protocol client implementation. A TSClient object will connect to a DVB-CSS Timeline Synchronisation protocol server and negotiate to receive timestamps from a selected timeline on the Timeline Synchronisation protocol server host. The protocol messages are exchanged via a WebSockets connection. The TSClient notifies other objects when new control timestamps are received in 2 ways: 1) via callbacks to a TClient delegate 2) via notifications kTSNewCRTLTimestampNotification

  • TS protocol server endpoint URL

    Declaration

    Objective-C

    @property (readonly, nonatomic) NSURL *TSServerUrl;

    Swift

    var tsServerUrl: URL! { get }
  • the programme (identified by contentId) for which we are receiving timeline updates

    Declaration

    Objective-C

    @property (readonly, nonatomic) NSString *contentId;

    Swift

    var contentId: String! { get }
  • the timeline whose progress we wish to receive updates. This timeline is selected by the TSClient - it specifies a timeline selector when a TS setup message is sent. If the timeline is available at the TS server host, then progress timestamps on that timeline are reported.

    Declaration

    Objective-C

    @property (readonly, nonatomic) NSString *timelineSelector;

    Swift

    var timelineSelector: String! { get }
  • Is TSClient running?

    Declaration

    Objective-C

    @property (readonly, getter=IsRunning, nonatomic) BOOL running;

    Swift

    var isRunning: Bool { get }
  • State of TSClient

    Declaration

    Objective-C

    @property (readonly, nonatomic) TSClientState state;

    Swift

    var state: TSClientState { get }
  • TSClient delegate (has to conform to TSClientDelegate protocol)

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic) id<TSClientDelegate> delegate;

    Swift

    var delegate: TSClientDelegate! { get set }
  • If true, this object will emit notifications about state change and new control timestamps

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic) BOOL notifyObservers;

    Swift

    var notifyObservers: Bool { get set }
  • Start TS protocol client

    Declaration

    Objective-C

    - (void)start;

    Swift

    func start()
  • Stop TS protocol client

    Declaration

    Objective-C

    - (void)stop;

    Swift

    func stop()
  • add an observer for clock state changes. Uses Notification design pattern in Cocoa.

    Declaration

    Objective-C

    - (void)addObserver:(id)notificationObserver
              selection:(SEL)notificationSelector
                   name:(NSString *)notificationName
                 object:(id)objectOfInterest;

    Swift

    func addObserver(_ notificationObserver: Any!, selection notificationSelector: Selector!, name notificationName: String!, object objectOfInterest: Any!)
  • remove clock observer

    Declaration

    Objective-C

    - (void)removeObserver:(id)notificationObserver;

    Swift

    func removeObserver(_ notificationObserver: Any!)
  • notify observers of clock state changes

    Declaration

    Objective-C

    - (void)notifyObservers:(NSString *)notificationName
                     object:(id)notificationSender
                   userInfo:(NSDictionary *)userInfo;

    Swift

    func notifyObservers(_ notificationName: String!, object notificationSender: Any!, userInfo: [AnyHashable : Any]! = [:])