blob: cb45441a15533e637acc58aa4838741feba9c7e5 [file] [log] [blame]
hjon6d49a8e2016-01-26 13:06:42 -08001/*
2 * Copyright 2015 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020011#import "RTCConfiguration.h"
hjon6d49a8e2016-01-26 13:06:42 -080012
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020013#include "api/peerconnectioninterface.h"
hjon6d49a8e2016-01-26 13:06:42 -080014
15NS_ASSUME_NONNULL_BEGIN
16
17@interface RTCConfiguration ()
18
Yves Gerey665174f2018-06-19 15:03:05 +020019+ (webrtc::PeerConnectionInterface::IceTransportsType)nativeTransportsTypeForTransportPolicy:
20 (RTCIceTransportPolicy)policy;
hjon6d49a8e2016-01-26 13:06:42 -080021
22+ (RTCIceTransportPolicy)transportPolicyForTransportsType:
Yves Gerey665174f2018-06-19 15:03:05 +020023 (webrtc::PeerConnectionInterface::IceTransportsType)nativeType;
hjon6d49a8e2016-01-26 13:06:42 -080024
25+ (NSString *)stringForTransportPolicy:(RTCIceTransportPolicy)policy;
26
27+ (webrtc::PeerConnectionInterface::BundlePolicy)nativeBundlePolicyForPolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020028 (RTCBundlePolicy)policy;
hjon6d49a8e2016-01-26 13:06:42 -080029
30+ (RTCBundlePolicy)bundlePolicyForNativePolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020031 (webrtc::PeerConnectionInterface::BundlePolicy)nativePolicy;
hjon6d49a8e2016-01-26 13:06:42 -080032
33+ (NSString *)stringForBundlePolicy:(RTCBundlePolicy)policy;
34
35+ (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativeRtcpMuxPolicyForPolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020036 (RTCRtcpMuxPolicy)policy;
hjon6d49a8e2016-01-26 13:06:42 -080037
38+ (RTCRtcpMuxPolicy)rtcpMuxPolicyForNativePolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020039 (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativePolicy;
hjon6d49a8e2016-01-26 13:06:42 -080040
41+ (NSString *)stringForRtcpMuxPolicy:(RTCRtcpMuxPolicy)policy;
42
Yves Gerey665174f2018-06-19 15:03:05 +020043+ (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativeTcpCandidatePolicyForPolicy:
44 (RTCTcpCandidatePolicy)policy;
hjon6d49a8e2016-01-26 13:06:42 -080045
46+ (RTCTcpCandidatePolicy)tcpCandidatePolicyForNativePolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020047 (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativePolicy;
hjon6d49a8e2016-01-26 13:06:42 -080048
49+ (NSString *)stringForTcpCandidatePolicy:(RTCTcpCandidatePolicy)policy;
50
Yves Gerey665174f2018-06-19 15:03:05 +020051+ (webrtc::PeerConnectionInterface::CandidateNetworkPolicy)nativeCandidateNetworkPolicyForPolicy:
52 (RTCCandidateNetworkPolicy)policy;
Honghai Zhang46007ae2016-06-03 16:31:32 -070053
54+ (RTCCandidateNetworkPolicy)candidateNetworkPolicyForNativePolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020055 (webrtc::PeerConnectionInterface::CandidateNetworkPolicy)nativePolicy;
Honghai Zhang46007ae2016-06-03 16:31:32 -070056
57+ (NSString *)stringForCandidateNetworkPolicy:(RTCCandidateNetworkPolicy)policy;
58
hbosf9da44d2016-06-09 03:18:28 -070059+ (rtc::KeyType)nativeEncryptionKeyTypeForKeyType:(RTCEncryptionKeyType)keyType;
60
Steve Anton8cb344a2018-02-27 15:34:53 -080061+ (webrtc::SdpSemantics)nativeSdpSemanticsForSdpSemantics:(RTCSdpSemantics)sdpSemantics;
62
63+ (RTCSdpSemantics)sdpSemanticsForNativeSdpSemantics:(webrtc::SdpSemantics)sdpSemantics;
64
65+ (NSString *)stringForSdpSemantics:(RTCSdpSemantics)sdpSemantics;
66
hbosa73ca562016-05-17 03:28:58 -070067/**
68 * RTCConfiguration struct representation of this RTCConfiguration. This is
69 * needed to pass to the underlying C++ APIs.
70 */
Peter Hanspersd9b64cd2018-01-12 16:16:18 +010071- (nullable webrtc::PeerConnectionInterface::RTCConfiguration *)createNativeConfiguration;
hbosa73ca562016-05-17 03:28:58 -070072
jtteh4eeb5372017-04-03 15:06:37 -070073- (instancetype)initWithNativeConfiguration:
Yves Gerey665174f2018-06-19 15:03:05 +020074 (const webrtc::PeerConnectionInterface::RTCConfiguration &)config NS_DESIGNATED_INITIALIZER;
jtteh4eeb5372017-04-03 15:06:37 -070075
hjon6d49a8e2016-01-26 13:06:42 -080076@end
77
78NS_ASSUME_NONNULL_END