blob: 70a6532dbccf379a32ffbab19955cd828775a204 [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
Steve Anton10542f22019-01-11 09:11:00 -080013#include "api/peer_connection_interface.h"
hjon6d49a8e2016-01-26 13:06:42 -080014
15NS_ASSUME_NONNULL_BEGIN
16
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020017@interface RTC_OBJC_TYPE (RTCConfiguration)
18()
hjon6d49a8e2016-01-26 13:06:42 -080019
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020020 + (webrtc::PeerConnectionInterface::IceTransportsType)nativeTransportsTypeForTransportPolicy
21 : (RTCIceTransportPolicy)policy;
hjon6d49a8e2016-01-26 13:06:42 -080022
23+ (RTCIceTransportPolicy)transportPolicyForTransportsType:
Yves Gerey665174f2018-06-19 15:03:05 +020024 (webrtc::PeerConnectionInterface::IceTransportsType)nativeType;
hjon6d49a8e2016-01-26 13:06:42 -080025
26+ (NSString *)stringForTransportPolicy:(RTCIceTransportPolicy)policy;
27
28+ (webrtc::PeerConnectionInterface::BundlePolicy)nativeBundlePolicyForPolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020029 (RTCBundlePolicy)policy;
hjon6d49a8e2016-01-26 13:06:42 -080030
31+ (RTCBundlePolicy)bundlePolicyForNativePolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020032 (webrtc::PeerConnectionInterface::BundlePolicy)nativePolicy;
hjon6d49a8e2016-01-26 13:06:42 -080033
34+ (NSString *)stringForBundlePolicy:(RTCBundlePolicy)policy;
35
36+ (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativeRtcpMuxPolicyForPolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020037 (RTCRtcpMuxPolicy)policy;
hjon6d49a8e2016-01-26 13:06:42 -080038
39+ (RTCRtcpMuxPolicy)rtcpMuxPolicyForNativePolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020040 (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativePolicy;
hjon6d49a8e2016-01-26 13:06:42 -080041
42+ (NSString *)stringForRtcpMuxPolicy:(RTCRtcpMuxPolicy)policy;
43
Yves Gerey665174f2018-06-19 15:03:05 +020044+ (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativeTcpCandidatePolicyForPolicy:
45 (RTCTcpCandidatePolicy)policy;
hjon6d49a8e2016-01-26 13:06:42 -080046
47+ (RTCTcpCandidatePolicy)tcpCandidatePolicyForNativePolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020048 (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativePolicy;
hjon6d49a8e2016-01-26 13:06:42 -080049
50+ (NSString *)stringForTcpCandidatePolicy:(RTCTcpCandidatePolicy)policy;
51
Yves Gerey665174f2018-06-19 15:03:05 +020052+ (webrtc::PeerConnectionInterface::CandidateNetworkPolicy)nativeCandidateNetworkPolicyForPolicy:
53 (RTCCandidateNetworkPolicy)policy;
Honghai Zhang46007ae2016-06-03 16:31:32 -070054
55+ (RTCCandidateNetworkPolicy)candidateNetworkPolicyForNativePolicy:
Yves Gerey665174f2018-06-19 15:03:05 +020056 (webrtc::PeerConnectionInterface::CandidateNetworkPolicy)nativePolicy;
Honghai Zhang46007ae2016-06-03 16:31:32 -070057
58+ (NSString *)stringForCandidateNetworkPolicy:(RTCCandidateNetworkPolicy)policy;
59
hbosf9da44d2016-06-09 03:18:28 -070060+ (rtc::KeyType)nativeEncryptionKeyTypeForKeyType:(RTCEncryptionKeyType)keyType;
61
Steve Anton8cb344a2018-02-27 15:34:53 -080062+ (webrtc::SdpSemantics)nativeSdpSemanticsForSdpSemantics:(RTCSdpSemantics)sdpSemantics;
63
64+ (RTCSdpSemantics)sdpSemanticsForNativeSdpSemantics:(webrtc::SdpSemantics)sdpSemantics;
65
66+ (NSString *)stringForSdpSemantics:(RTCSdpSemantics)sdpSemantics;
67
hbosa73ca562016-05-17 03:28:58 -070068/**
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020069 * RTCConfiguration struct representation of this RTCConfiguration.
70 * This is needed to pass to the underlying C++ APIs.
hbosa73ca562016-05-17 03:28:58 -070071 */
Peter Hanspersd9b64cd2018-01-12 16:16:18 +010072- (nullable webrtc::PeerConnectionInterface::RTCConfiguration *)createNativeConfiguration;
hbosa73ca562016-05-17 03:28:58 -070073
jtteh4eeb5372017-04-03 15:06:37 -070074- (instancetype)initWithNativeConfiguration:
Yves Gerey665174f2018-06-19 15:03:05 +020075 (const webrtc::PeerConnectionInterface::RTCConfiguration &)config NS_DESIGNATED_INITIALIZER;
jtteh4eeb5372017-04-03 15:06:37 -070076
hjon6d49a8e2016-01-26 13:06:42 -080077@end
78
79NS_ASSUME_NONNULL_END