summaryrefslogtreecommitdiff
path: root/SmartDeviceLink/SDLLifecycleManager.m
diff options
context:
space:
mode:
Diffstat (limited to 'SmartDeviceLink/SDLLifecycleManager.m')
-rw-r--r--SmartDeviceLink/SDLLifecycleManager.m36
1 files changed, 29 insertions, 7 deletions
diff --git a/SmartDeviceLink/SDLLifecycleManager.m b/SmartDeviceLink/SDLLifecycleManager.m
index fac00b535..e38e5084c 100644
--- a/SmartDeviceLink/SDLLifecycleManager.m
+++ b/SmartDeviceLink/SDLLifecycleManager.m
@@ -11,6 +11,7 @@
#import "SDLLifecycleManager.h"
#import "NSMapTable+Subscripting.h"
+#import "SDLAbstractProtocol.h"
#import "SDLConfiguration.h"
#import "SDLConnectionManagerType.h"
#import "SDLLogMacros.h"
@@ -40,6 +41,8 @@
#import "SDLResult.h"
#import "SDLSetAppIcon.h"
#import "SDLStateMachine.h"
+#import "SDLStreamingMediaConfiguration.h"
+#import "SDLStreamingMediaManager.h"
#import "SDLUnregisterAppInterface.h"
@@ -77,7 +80,7 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
#pragma mark Lifecycle
- (instancetype)init {
- return [self initWithConfiguration:[SDLConfiguration configurationWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" appId:@"001"] lockScreen:[SDLLockScreenConfiguration disabledConfiguration]] delegate:nil];
+ return [self initWithConfiguration:[SDLConfiguration configurationWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" appId:@"001"] lockScreen:[SDLLockScreenConfiguration disabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration]] delegate:nil];
}
- (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id<SDLManagerDelegate>)delegate {
@@ -86,6 +89,8 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
return nil;
}
+ SDLLogV(@"Creating Lifecycle Manager");
+
// Dependencies
_configuration = [configuration copy];
_delegate = delegate;
@@ -104,6 +109,14 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
_fileManager = [[SDLFileManager alloc] initWithConnectionManager:self];
_permissionManager = [[SDLPermissionManager alloc] init];
_lockScreenManager = [[SDLLockScreenManager alloc] initWithConfiguration:_configuration.lockScreenConfig notificationDispatcher:_notificationDispatcher presenter:[[SDLLockScreenPresenter alloc] init]];
+
+ if ([configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation]
+ || [configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection]) {
+ SDLLogV(@"Creating StreamingMediaManager for app type: %@", configuration.lifecycleConfig.appType);
+ _streamManager = [[SDLStreamingMediaManager alloc] initWithEncryption:configuration.streamingMediaConfig.maximumDesiredEncryption videoEncoderSettings:configuration.streamingMediaConfig.customVideoEncoderSettings];
+ } else {
+ SDLLogV(@"Skipping StreamingMediaManager setup due to app type");
+ }
// Notifications
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(transportDidConnect) name:SDLTransportDidConnect object:_notificationDispatcher];
@@ -136,10 +149,6 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
#pragma mark Getters
-- (nullable SDLStreamingMediaManager *)streamManager {
- return self.proxy.streamingMediaManager;
-}
-
- (SDLState *)lifecycleState {
return self.lifecycleStateMachine.currentState;
}
@@ -212,8 +221,8 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
- (void)didEnterStateConnected {
// If we have security managers, add them to the proxy
- if (self.configuration.lifecycleConfig.securityManagers != nil) {
- [self.proxy addSecurityManagers:self.configuration.lifecycleConfig.securityManagers forAppId:self.configuration.lifecycleConfig.appId];
+ if (self.configuration.streamingMediaConfig.securityManagers != nil) {
+ [self.proxy addSecurityManagers:self.configuration.streamingMediaConfig.securityManagers forAppId:self.configuration.lifecycleConfig.appId];
}
// Build a register app interface request with the configuration data
@@ -265,6 +274,19 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
dispatch_group_leave(managerGroup);
}];
+
+
+ if (self.streamManager != nil) {
+ dispatch_group_enter(managerGroup);
+ }
+
+ [self.streamManager startWithProtocol:self.proxy.protocol completionHandler:^(BOOL success, NSError * _Nullable error) {
+ if (!success) {
+ SDLLogE(@"Streaming media manager was unable to start; error: %@", error);
+ }
+
+ dispatch_group_leave(managerGroup);
+ }];
// We're done synchronously calling all startup methods, so we can now wait.
dispatch_group_leave(managerGroup);