| Index: webrtc/api/objc/RTCMediaConstraints.mm
|
| diff --git a/webrtc/api/objc/RTCMediaConstraints.mm b/webrtc/api/objc/RTCMediaConstraints.mm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a53a517747f7a2ebcf9fb8f71b36a7ae8f3379bd
|
| --- /dev/null
|
| +++ b/webrtc/api/objc/RTCMediaConstraints.mm
|
| @@ -0,0 +1,92 @@
|
| +/*
|
| + * Copyright 2015 The WebRTC project authors. All Rights Reserved.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license
|
| + * that can be found in the LICENSE file in the root of the source
|
| + * tree. An additional intellectual property rights grant can be found
|
| + * in the file PATENTS. All contributing project authors may
|
| + * be found in the AUTHORS file in the root of the source tree.
|
| + */
|
| +
|
| +#import "RTCMediaConstraints.h"
|
| +
|
| +#import "webrtc/api/objc/RTCMediaConstraints+Private.h"
|
| +#import "webrtc/base/objc/NSString+StdString.h"
|
| +
|
| +namespace webrtc {
|
| +
|
| +MediaConstraints::~MediaConstraints() {}
|
| +
|
| +MediaConstraints::MediaConstraints() {}
|
| +
|
| +MediaConstraints::MediaConstraints(
|
| + const MediaConstraintsInterface::Constraints& mandatory,
|
| + const MediaConstraintsInterface::Constraints& optional)
|
| + : mandatory_(mandatory), optional_(optional) {}
|
| +
|
| +const MediaConstraintsInterface::Constraints&
|
| +MediaConstraints::GetMandatory() const {
|
| + return mandatory_;
|
| +}
|
| +
|
| +const MediaConstraintsInterface::Constraints&
|
| +MediaConstraints::GetOptional() const {
|
| + return optional_;
|
| +}
|
| +
|
| +} // namespace webrtc
|
| +
|
| +
|
| +@implementation RTCMediaConstraints {
|
| + NSDictionary<NSString *, NSString *> *_mandatory;
|
| + NSDictionary<NSString *, NSString *> *_optional;
|
| +}
|
| +
|
| +- (instancetype)initWithMandatoryConstraints:
|
| + (NSDictionary<NSString *, NSString *> *)mandatory
|
| + optionalConstraints:
|
| + (NSDictionary<NSString *, NSString *> *)optional {
|
| + if (self = [super init]) {
|
| + _mandatory = [[NSDictionary alloc] initWithDictionary:mandatory
|
| + copyItems:YES];
|
| + _optional = [[NSDictionary alloc] initWithDictionary:optional
|
| + copyItems:YES];
|
| + }
|
| + return self;
|
| +}
|
| +
|
| +- (NSString *)description {
|
| + return [NSString stringWithFormat:@"RTCMediaConstraints:\n%@\n%@",
|
| + _mandatory,
|
| + _optional];
|
| +}
|
| +
|
| +#pragma mark - Private
|
| +
|
| +- (rtc::scoped_ptr<webrtc::MediaConstraints>)nativeConstraints {
|
| + webrtc::MediaConstraintsInterface::Constraints mandatory =
|
| + [[self class] nativeConstraintsForConstraints:_mandatory];
|
| + webrtc::MediaConstraintsInterface::Constraints optional =
|
| + [[self class] nativeConstraintsForConstraints:_optional];
|
| +
|
| + webrtc::MediaConstraints *nativeConstraints =
|
| + new webrtc::MediaConstraints(mandatory, optional);
|
| + return rtc::scoped_ptr<webrtc::MediaConstraints>(nativeConstraints);
|
| +}
|
| +
|
| ++ (webrtc::MediaConstraintsInterface::Constraints)
|
| + nativeConstraintsForConstraints:
|
| + (NSDictionary<NSString *, NSString *> *)constraints {
|
| + webrtc::MediaConstraintsInterface::Constraints nativeConstraints;
|
| + for (NSString *key in constraints) {
|
| + NSAssert([key isKindOfClass:[NSString class]],
|
| + @"%@ is not an NSString.", key);
|
| + NSAssert([constraints[key] isKindOfClass:[NSString class]],
|
| + @"%@ is not an NSString.", constraints[key]);
|
| + nativeConstraints.push_back(webrtc::MediaConstraintsInterface::Constraint(
|
| + key.stdString, constraints[key].stdString));
|
| + }
|
| + return nativeConstraints;
|
| +}
|
| +
|
| +@end
|
|
|