GCKSession.h
1 // Copyright 2015 Google Inc.
2 
3 #import <GoogleCast/GCKSessionTraits.h>
4 
5 #import <GoogleCast/GCKCommon.h>
6 #import <GoogleCast/GCKDefines.h>
7 #import <GoogleCast/GCKDevice.h>
8 #import <GoogleCast/GCKMediaMetadata.h>
9 #import <GoogleCast/GCKRemoteMediaClient.h>
10 #import <GoogleCast/GCKSessionOptions.h>
11 
12 #import <Foundation/Foundation.h>
13 
14 GCK_ASSUME_NONNULL_BEGIN
15 
29 GCK_EXPORT
30 @interface GCKSession : NSObject
31 
33 @property(nonatomic, strong, readonly) GCKDevice *device;
34 
36 @property(nonatomic, copy, readonly, GCK_NULLABLE) NSString *sessionID;
37 
43 @property(nonatomic, strong, readonly, GCK_NULLABLE) GCKSessionOptions *sessionOptions;
44 
46 @property(nonatomic, assign, readonly) GCKConnectionState connectionState;
47 
54 @property(nonatomic, assign, readonly) BOOL suspended GCK_DEPRECATED(
55  "GCKSession no longer supports being in a suspended state. If needed, move this functionality "
56  "to a subclass.");
57 ;
58 
60 @property(nonatomic, copy, readonly, GCK_NULLABLE) NSString *deviceStatusText;
61 
63 @property(nonatomic, copy, readonly, GCK_NULLABLE) GCKSessionTraits *traits;
64 
66 @property(nonatomic, assign, readonly) float currentDeviceVolume;
67 
69 @property(nonatomic, assign, readonly) BOOL currentDeviceMuted;
70 
77 @property(nonatomic, strong, readonly, GCK_NULLABLE) GCKRemoteMediaClient *remoteMediaClient;
78 
83 @property(nonatomic, strong, readonly, GCK_NULLABLE) GCKMediaMetadata *mediaMetadata;
84 
93 - (instancetype)initWithDevice:(GCKDevice *)device
94  traits:(GCKSessionTraits *GCK_NULLABLE_TYPE)traits
95  sessionID:(NSString *GCK_NULLABLE_TYPE)sessionID;
96 
108 - (instancetype)initWithDevice:(GCKDevice *)device
109  traits:(GCKSessionTraits *GCK_NULLABLE_TYPE)traits
110  sessionID:(NSString *GCK_NULLABLE_TYPE)sessionID
111  sessionOptions:(GCKSessionOptions *GCK_NULLABLE_TYPE)sessionOptions;
112 
121 - (GCKRequest *)setDeviceVolume:(float)volume;
122 
131 - (GCKRequest *)setDeviceMuted:(BOOL)muted;
132 
133 @end
134 
135 GCK_ASSUME_NONNULL_END
An object representing a receiver device.
Definition: GCKDevice.h:82
GCKRemoteMediaClient * remoteMediaClient
The GCKRemoteMediaClient object that can be used to control media playback in this session...
Definition: GCKSession.h:77
An object for tracking an asynchronous request.
Definition: GCKRequest.h:35
An abstract base class representing a session with a receiver device.
Definition: GCKSession.h:30
A container for media metadata.
Definition: GCKMediaMetadata.h:369
float currentDeviceVolume
The current device volume, in the range [0.0, 1.0].
Definition: GCKSession.h:66
GCKSessionOptions * sessionOptions
The session options, if any.
Definition: GCKSession.h:43
GCKMediaMetadata * mediaMetadata
The current media metadata, if any.
Definition: GCKSession.h:83
GCKConnectionState connectionState
The current session connection state.
Definition: GCKSession.h:46
NSString * deviceStatusText
The current device status text.
Definition: GCKSession.h:57
GCKSessionTraits * traits
The session traits.
Definition: GCKSession.h:63
NSString * sessionID
The current session ID, if any.
Definition: GCKSession.h:36
A class for controlling media playback on a Cast receiver.
Definition: GCKRemoteMediaClient.h:29
BOOL currentDeviceMuted
The current device mute state.
Definition: GCKSession.h:69
"Do not call" GCK_DEPRECATED()
Deprecated, do not use - implemented as a no-op.
GCKDevice * device
The device that this session is associated with.
Definition: GCKSession.h:33
An object describing the traits and capabilities of a session.
Definition: GCKSessionTraits.h:15