summaryrefslogtreecommitdiff
path: root/SmartDeviceLink/SDLStreamingMediaConfiguration.m
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2017-08-02 15:54:36 -0400
committerJoel Fischer <joeljfischer@gmail.com>2017-08-02 15:54:36 -0400
commitbbafdb5157a8d7e72e9503a6e7199efcc4e07582 (patch)
treee6afe976439a38c95c80178b2b43f8bfc7d6da6b /SmartDeviceLink/SDLStreamingMediaConfiguration.m
parent4c8bc1a347e2bca5a7f0f987e52d957479878e05 (diff)
downloadsdl_ios-bbafdb5157a8d7e72e9503a6e7199efcc4e07582.tar.gz
In progress updates to how configurations are set for streaming media
Diffstat (limited to 'SmartDeviceLink/SDLStreamingMediaConfiguration.m')
-rw-r--r--SmartDeviceLink/SDLStreamingMediaConfiguration.m55
1 files changed, 55 insertions, 0 deletions
diff --git a/SmartDeviceLink/SDLStreamingMediaConfiguration.m b/SmartDeviceLink/SDLStreamingMediaConfiguration.m
new file mode 100644
index 000000000..52a3fba98
--- /dev/null
+++ b/SmartDeviceLink/SDLStreamingMediaConfiguration.m
@@ -0,0 +1,55 @@
+//
+// SDLStreamingMediaConfiguration.m
+// SmartDeviceLink-iOS
+//
+// Created by Joel Fischer on 8/2/17.
+// Copyright © 2017 smartdevicelink. All rights reserved.
+//
+
+#import "SDLStreamingMediaConfiguration.h"
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLStreamingMediaConfiguration
+
+- (instancetype)initWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *_Nullable)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(NSDictionary<NSString *, id> *_Nullable)videoSettings {
+ self = [super init];
+ if (!self) {
+ return nil;
+ }
+
+ _securityManagers = securityManagers;
+ _maximumDesiredEncryption = encryptionFlag;
+ _customVideoEncoderSettings = videoSettings;
+
+ return self;
+}
+
+- (instancetype)initEnabledConfigurationWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *)securityManagers customVideoEncoderSettings:(NSDictionary<NSString *, id> *_Nullable)customVideoEncoderSettings {
+ SDLStreamingEncryptionFlag encryptionFlag = (securityManagers.count > 0) ? SDLStreamingEncryptionFlagAuthenticateAndEncrypt : SDLStreamingEncryptionFlagNone;
+
+ return [self initWithSecurityManagers:securityManagers encryptionFlag:encryptionFlag videoSettings:customVideoEncoderSettings];
+}
+
++ (instancetype)enabledConfigurationWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *)securityManagers customVideoEncoderSettings:(NSDictionary<NSString *, id> *_Nullable)customVideoEncoderSettings {
+ return [[self alloc] initEnabledConfigurationWithSecurityManagers:securityManagers customVideoEncoderSettings:customVideoEncoderSettings];
+}
+
+- (instancetype)initEnabledConfiguration {
+ return [self initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil];
+}
+
++ (instancetype)enabledConfiguration {
+ return [[self alloc] initEnabledConfiguration];
+}
+
+#pragma mark NSCopying
+
+- (id)copyWithZone:(nullable NSZone *)zone {
+ return [[self.class allocWithZone:zone] initWithSecurityManagers:_securityManagers encryptionFlag:_maximumDesiredEncryption videoSettings:_customVideoEncoderSettings];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END