GCKMediaQueueItem.h
1 // Copyright 2015 Google Inc.
2 
3 #import <GoogleCast/GCKDefines.h>
4 #import <GoogleCast/GCKMediaCommon.h>
5 
6 #import <Foundation/Foundation.h>
7 
12 @class GCKMediaInformation;
14 
20 typedef NSUInteger GCKMediaQueueItemID;
21 
22 GCK_ASSUME_NONNULL_BEGIN
23 
28 GCK_EXTERN const GCKMediaQueueItemID kGCKMediaQueueInvalidItemID;
29 
41 GCK_EXPORT
42 @interface GCKMediaQueueItem : NSObject <NSCopying>
43 
45 @property(nonatomic, strong, readonly) GCKMediaInformation *mediaInformation;
46 
48 @property(nonatomic, assign, readonly) GCKMediaQueueItemID itemID;
49 
55 @property(nonatomic, assign, readonly) BOOL autoplay;
56 
61 @property(nonatomic, assign, readonly) NSTimeInterval startTime;
62 
67 @property(nonatomic, assign, readonly) NSTimeInterval playbackDuration;
68 
74 @property(nonatomic, assign, readonly) NSTimeInterval preloadTime;
75 
77 @property(nonatomic, strong, readonly) NSArray<NSNumber *> *activeTrackIDs;
78 
80 @property(nonatomic, strong, readonly) id customData;
81 
96 - (instancetype)initWithMediaInformation:(GCKMediaInformation *)mediaInformation
97  autoplay:(BOOL)autoplay
98  startTime:(NSTimeInterval)startTime
99  preloadTime:(NSTimeInterval)preloadTime
100  activeTrackIDs:(NSArray<NSNumber *> *GCK_NULLABLE_TYPE)activeTrackIDs
101  customData:(id GCK_NULLABLE_TYPE)customData;
102 
117 - (instancetype)initWithMediaInformation:(GCKMediaInformation *)mediaInformation
118  autoplay:(BOOL)autoplay
119  startTime:(NSTimeInterval)startTime
120  playbackDuration:(NSTimeInterval)playbackDuration
121  preloadTime:(NSTimeInterval)preloadTime
122  activeTrackIDs:(NSArray<NSNumber *> *GCK_NULLABLE_TYPE)activeTrackIDs
123  customData:(id GCK_NULLABLE_TYPE)customData
124  /*NS_DESIGNATED_INITIALIZER*/;
125 
130 - (void)clearItemID;
131 
140 - (instancetype)mediaQueueItemModifiedWithBlock:(void (^)(GCKMediaQueueItemBuilder *builder))block;
141 
142 @end
143 
166 GCK_EXPORT
167 @interface GCKMediaQueueItemBuilder : NSObject
168 
170 @property(nonatomic, copy, readwrite, GCK_NULLABLE) GCKMediaInformation *mediaInformation;
171 
177 @property(nonatomic, assign, readwrite) BOOL autoplay;
178 
184 @property(nonatomic, assign, readwrite) NSTimeInterval startTime;
185 
190 @property(nonatomic, assign, readwrite) NSTimeInterval playbackDuration;
191 
196 @property(nonatomic, assign, readwrite) NSTimeInterval preloadTime;
197 
199 @property(nonatomic, copy, readwrite, GCK_NULLABLE) NSArray<NSNumber *> *activeTrackIDs;
200 
202 @property(nonatomic, copy, readwrite, GCK_NULLABLE) id customData;
203 
207 - (instancetype)init;
208 
215 - (instancetype)initWithMediaQueueItem:(GCKMediaQueueItem *GCK_NULLABLE_TYPE)item;
216 
220 - (GCKMediaQueueItem *)build;
221 
222 @end
223 
224 GCK_ASSUME_NONNULL_END
id customData
The custom data associated with this item, if any.
Definition: GCKMediaQueueItem.h:80
BOOL autoplay
Whether the item should automatically start playback when it becomes the current item in the queue...
Definition: GCKMediaQueueItem.h:55
void clearItemID()
Clears (unassigns) the item ID.
NSTimeInterval startTime
The start time of the item, in seconds.
Definition: GCKMediaQueueItem.h:61
A builder object for constructing new or derived GCKMediaQueueItem instances.
Definition: GCKMediaQueueItem.h:167
NSTimeInterval playbackDuration
The playback duration for the item, in seconds, or INFINITY if the stream&#39;s actual duration should be...
Definition: GCKMediaQueueItem.h:67
GCKMediaQueueItemID itemID
The item ID, or kGCKMediaQueueInvalidItemID if one has not yet been assigned.
Definition: GCKMediaQueueItem.h:48
GCKMediaInformation * mediaInformation
The media information associated with this item.
Definition: GCKMediaQueueItem.h:45
A class representing a media queue item.
Definition: GCKMediaQueueItem.h:42
NSArray< NSNumber * > * activeTrackIDs
The active track IDs for this item.
Definition: GCKMediaQueueItem.h:77
NSTimeInterval preloadTime
How long before the previous item ends, in seconds, before the receiver should start preloading this ...
Definition: GCKMediaQueueItem.h:74
A class that aggregates information about a media item.
Definition: GCKMediaInformation.h:40