forked from ConnectSDK/Connect-SDK-iOS-FireTV
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFireTVService.h
73 lines (61 loc) · 2.7 KB
/
FireTVService.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//
// FireTVService.h
// ConnectSDK
//
// Created by Eugene Nikolskyi on 2015-07-08.
// Copyright (c) 2015 LG Electronics. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#import "DeviceService.h"
#import "MediaPlayer.h"
@class AppStateChangeNotifier;
@class FireTVMediaControl;
@class FireTVMediaPlayer;
@protocol BlockRunner;
@protocol RemoteMediaPlayer;
NS_ASSUME_NONNULL_BEGIN
/// The service Id for FireTV functionality.
extern NSString *const kConnectSDKFireTVServiceId;
/**
* @c FireTVService provides capabilities for Amazon Fire TV and Fire TV Stick
* devices. @c FireTVService acts a layer on top of Amazon's Fling SDK, and
* requires the Fling SDK framework to function. @c FireTVService provides the
* following functionality:
*
* - Media playback
* - Media control
*
* Using Connect SDK for discovery/control of Fire TV devices will result in
* your app complying with the Amazon Fling SDK terms of service.
*/
@interface FireTVService : DeviceService <MediaControl, MediaPlayer>
/// The @c BlockRunner instance specifying where to run delegate callbacks. The
/// default value is the main dispatch queue runner. Cannot be @c nil, as it
/// will reset to the default value.
@property (nonatomic, strong) id<BlockRunner> delegateBlockRunner;
/// Object that controls @c MediaPlayer functionality.
@property (nonatomic, strong) FireTVMediaPlayer *fireTVMediaPlayer;
/// Object that controls @c MediaControl functionality.
@property (nonatomic, strong) FireTVMediaControl *fireTVMediaControl;
/// A @c RemoteMediaPlayer that's controlled by this service instance. It's
/// returned from the @c ServiceDescription object, and thus can be @c nil if
/// the @c serviceDescription property is @c nil.
@property (nonatomic, readonly, nullable) id<RemoteMediaPlayer> remoteMediaPlayer;
/// An @c AppStateChangeNotifier that allows to track app state changes.
@property (nonatomic, readonly) AppStateChangeNotifier *appStateChangeNotifier;
/// Initializes the instance with the given @c AppStateChangeNotifier. Using
/// @c nil parameter will create real object.
- (instancetype)initWithAppStateChangeNotifier:(nullable AppStateChangeNotifier *)stateNotifier;
@end
NS_ASSUME_NONNULL_END