GCKMediaStatus.h
1 // Copyright 2013 Google Inc.
2 
3 #import <GoogleCast/GCKAdBreakStatus.h>
4 #import <GoogleCast/GCKDefines.h>
5 #import <GoogleCast/GCKMediaCommon.h>
6 
7 #import <Foundation/Foundation.h>
8 
10 @class GCKMediaQueueItem;
11 @class GCKVideoInfo;
12 
18 GCK_ASSUME_NONNULL_BEGIN
19 
25 GCK_EXTERN const NSInteger kGCKMediaCommandPause;
26 
32 GCK_EXTERN const NSInteger kGCKMediaCommandSeek;
33 
39 GCK_EXTERN const NSInteger kGCKMediaCommandSetVolume;
40 
46 GCK_EXTERN const NSInteger kGCKMediaCommandToggleMute;
47 
53 GCK_EXTERN const NSInteger kGCKMediaCommandSkipForward;
54 
60 GCK_EXTERN const NSInteger kGCKMediaCommandSkipBackward;
61 
68 GCK_EXTERN const NSInteger kGCKMediaCommandQueueNext;
69 
77 GCK_EXTERN const NSInteger kGCKMediaCommandQueuePrevious;
78 
83 typedef NS_ENUM(NSInteger, GCKMediaPlayerState) {
85  GCKMediaPlayerStateUnknown = 0,
87  GCKMediaPlayerStateIdle = 1,
89  GCKMediaPlayerStatePlaying = 2,
91  GCKMediaPlayerStatePaused = 3,
93  GCKMediaPlayerStateBuffering = 4,
95  GCKMediaPlayerStateLoading = 5,
96 };
97 
102 typedef NS_ENUM(NSInteger, GCKMediaPlayerIdleReason) {
104  GCKMediaPlayerIdleReasonNone = 0,
105 
107  GCKMediaPlayerIdleReasonFinished = 1,
108 
113  GCKMediaPlayerIdleReasonCancelled = 2,
114 
119  GCKMediaPlayerIdleReasonInterrupted = 3,
120 
122  GCKMediaPlayerIdleReasonError = 4,
123 };
124 
128 GCK_EXPORT
129 @interface GCKMediaStatus : NSObject <NSCopying>
130 
134 @property(nonatomic, assign, readonly) NSInteger mediaSessionID;
135 
139 @property(nonatomic, assign, readonly) GCKMediaPlayerState playerState;
140 
146 @property(nonatomic, assign, readonly) BOOL playingAd;
147 
152 @property(nonatomic, assign, readonly) GCKMediaPlayerIdleReason idleReason;
153 
159 @property(nonatomic, assign, readonly) float playbackRate;
160 
164 @property(nonatomic, strong, readonly, GCK_NULLABLE) GCKMediaInformation *mediaInformation;
165 
169 @property(nonatomic, assign, readonly) NSTimeInterval streamPosition;
170 
174 @property(nonatomic, assign, readonly) float volume;
175 
179 @property(nonatomic, assign, readonly) BOOL isMuted;
180 
184 @property(nonatomic, assign, readonly) GCKMediaRepeatMode queueRepeatMode;
185 
189 @property(nonatomic, assign, readonly) NSUInteger currentItemID;
190 
194 @property(nonatomic, assign, readonly) BOOL queueHasCurrentItem;
195 
199 @property(nonatomic, assign, readonly, GCK_NULLABLE) GCKMediaQueueItem *currentQueueItem;
200 
204 - (BOOL)queueHasNextItem;
205 
209 @property(nonatomic, assign, readonly, GCK_NULLABLE) GCKMediaQueueItem *nextQueueItem;
210 
214 @property(nonatomic, assign, readonly) BOOL queueHasPreviousItem;
215 
219 @property(nonatomic, assign, readonly) BOOL queueHasLoadingItem;
220 
224 @property(nonatomic, assign, readonly) NSUInteger preloadedItemID;
225 
229 @property(nonatomic, assign, readonly) NSUInteger loadingItemID;
230 
234 @property(nonatomic, strong, readonly, GCK_NULLABLE) NSArray<NSNumber *> *activeTrackIDs;
235 
241 @property(nonatomic, strong, readonly, GCK_NULLABLE) GCKVideoInfo *videoInfo;
242 
246 @property(nonatomic, strong, readonly, GCK_NULLABLE) id customData;
247 
253 @property(nonatomic, strong, readonly, GCK_NULLABLE) GCKAdBreakStatus *adBreakStatus;
254 
261 - (instancetype)initWithSessionID:(NSInteger)mediaSessionID
262  mediaInformation:(GCKMediaInformation *GCK_NULLABLE_TYPE)mediaInformation;
263 
267 - (BOOL)isMediaCommandSupported:(NSInteger)command;
268 
272 - (NSUInteger)queueItemCount;
273 
277 - (GCKMediaQueueItem *GCK_NULLABLE_TYPE)queueItemAtIndex:(NSUInteger)index;
278 
282 - (GCKMediaQueueItem *GCK_NULLABLE_TYPE)queueItemWithItemID:(NSUInteger)itemID;
283 
288 - (NSInteger)queueIndexForItemID:(NSUInteger)itemID;
289 
290 @end
291 
292 GCK_ASSUME_NONNULL_END
BOOL queueHasNextItem()
Checks if there is an item after the currently playing item in the queue.
GCKMediaRepeatMode queueRepeatMode
The current queue repeat mode.
Definition: GCKMediaStatus.h:184
GCK_EXTERN const NSInteger kGCKMediaCommandToggleMute
A flag (bitmask) indicating that a media item&#39;s audio can be muted.
Definition: GCKMediaStatus.h:46
GCK_ASSUME_NONNULL_BEGIN GCK_EXTERN const NSInteger kGCKMediaCommandPause
A flag (bitmask) indicating that a media item can be paused.
Definition: GCKMediaStatus.h:25
BOOL queueHasLoadingItem
Whether there is an item being preloaded in the queue.
Definition: GCKMediaStatus.h:219
NSUInteger queueItemCount()
Returns the number of items in the playback queue.
BOOL isMuted
The stream&#39;s mute state.
Definition: GCKMediaStatus.h:179
BOOL queueHasCurrentItem
Whether there is a current item in the queue.
Definition: GCKMediaStatus.h:194
float playbackRate
Gets the current stream playback rate.
Definition: GCKMediaStatus.h:159
GCKMediaInformation * mediaInformation
The GCKMediaInformation for this item.
Definition: GCKMediaStatus.h:164
float volume
The stream&#39;s volume.
Definition: GCKMediaStatus.h:174
NSUInteger loadingItemID
The ID of the item that is currently loading, if any.
Definition: GCKMediaStatus.h:229
GCK_EXTERN const NSInteger kGCKMediaCommandSeek
A flag (bitmask) indicating that a media item supports seeking.
Definition: GCKMediaStatus.h:32
GCKMediaPlayerState playerState
The current player state.
Definition: GCKMediaStatus.h:139
GCK_EXTERN const NSInteger kGCKMediaCommandSkipForward
A flag (bitmask) indicating that a media item supports skipping forward.
Definition: GCKMediaStatus.h:53
GCKMediaQueueItem * currentQueueItem
The current queue item, if any.
Definition: GCKMediaStatus.h:199
NSArray< NSNumber * > * activeTrackIDs
The list of active track IDs.
Definition: GCKMediaStatus.h:234
NSTimeInterval streamPosition
The current stream position, as an NSTimeInterval from the start of the stream.
Definition: GCKMediaStatus.h:169
A class representing the ad break status.
Definition: GCKAdBreakStatus.h:15
GCKAdBreakStatus * adBreakStatus
The current ad playback status.
Definition: GCKMediaStatus.h:253
GCKMediaPlayerIdleReason idleReason
The current idle reason.
Definition: GCKMediaStatus.h:152
A class representing a media queue item.
Definition: GCKMediaQueueItem.h:42
id customData
Any custom data that is associated with the media status.
Definition: GCKMediaStatus.h:246
GCKVideoInfo * videoInfo
The video information, if any.
Definition: GCKMediaStatus.h:241
NSUInteger currentItemID
The ID of the current queue item, if any.
Definition: GCKMediaStatus.h:189
BOOL playingAd
Indicates whether the receiver is currently playing an ad.
Definition: GCKMediaStatus.h:146
A class that holds status information about some media.
Definition: GCKMediaStatus.h:129
GCK_EXTERN const NSInteger kGCKMediaCommandSkipBackward
A flag (bitmask) indicating that a media item supports skipping backward.
Definition: GCKMediaStatus.h:60
BOOL queueHasPreviousItem
Whether there is an item before the currently playing item in the queue.
Definition: GCKMediaStatus.h:214
GCKMediaQueueItem * nextQueueItem
The next queue item, if any.
Definition: GCKMediaStatus.h:209
GCK_EXTERN const NSInteger kGCKMediaCommandQueueNext
A flag (bitmask) indicating that a media item supports moving to the next item in the queue...
Definition: GCKMediaStatus.h:68
NSInteger mediaSessionID
The current media session ID, if any; otherwise 0.
Definition: GCKMediaStatus.h:134
A class representing video format details.
Definition: GCKVideoInfo.h:30
GCK_EXTERN const NSInteger kGCKMediaCommandSetVolume
A flag (bitmask) indicating that a media item&#39;s audio volume can be changed.
Definition: GCKMediaStatus.h:39
A class that aggregates information about a media item.
Definition: GCKMediaInformation.h:40
NSUInteger preloadedItemID
The ID of the item that is currently preloaded, if any.
Definition: GCKMediaStatus.h:224
GCK_EXTERN const NSInteger kGCKMediaCommandQueuePrevious
A flag (bitmask) indicating that a media item supports moving to the previous item in the queue...
Definition: GCKMediaStatus.h:77