Index: webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm |
deleted file mode 100644 |
index 311e0dd886e49a37d33ea0d3dbfe30e93868600e..0000000000000000000000000000000000000000 |
--- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm |
+++ /dev/null |
@@ -1,601 +0,0 @@ |
-/* |
- * 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 "RTCPeerConnection+Private.h" |
- |
-#import "NSString+StdString.h" |
-#import "RTCConfiguration+Private.h" |
-#import "RTCDataChannel+Private.h" |
-#import "RTCIceCandidate+Private.h" |
-#import "RTCLegacyStatsReport+Private.h" |
-#import "RTCMediaConstraints+Private.h" |
-#import "RTCMediaStream+Private.h" |
-#import "RTCPeerConnectionFactory+Private.h" |
-#import "RTCRtpReceiver+Private.h" |
-#import "RTCRtpSender+Private.h" |
-#import "RTCSessionDescription+Private.h" |
-#import "WebRTC/RTCLogging.h" |
- |
-#include <memory> |
- |
-#include "webrtc/api/jsepicecandidate.h" |
-#include "webrtc/base/checks.h" |
- |
-NSString * const kRTCPeerConnectionErrorDomain = |
- @"org.webrtc.RTCPeerConnection"; |
-int const kRTCPeerConnnectionSessionDescriptionError = -1; |
- |
-namespace webrtc { |
- |
-class CreateSessionDescriptionObserverAdapter |
- : public CreateSessionDescriptionObserver { |
- public: |
- CreateSessionDescriptionObserverAdapter( |
- void (^completionHandler)(RTCSessionDescription *sessionDescription, |
- NSError *error)) { |
- completion_handler_ = completionHandler; |
- } |
- |
- ~CreateSessionDescriptionObserverAdapter() { |
- completion_handler_ = nil; |
- } |
- |
- void OnSuccess(SessionDescriptionInterface *desc) override { |
- RTC_DCHECK(completion_handler_); |
- std::unique_ptr<webrtc::SessionDescriptionInterface> description = |
- std::unique_ptr<webrtc::SessionDescriptionInterface>(desc); |
- RTCSessionDescription* session = |
- [[RTCSessionDescription alloc] initWithNativeDescription: |
- description.get()]; |
- completion_handler_(session, nil); |
- completion_handler_ = nil; |
- } |
- |
- void OnFailure(const std::string& error) override { |
- RTC_DCHECK(completion_handler_); |
- NSString* str = [NSString stringForStdString:error]; |
- NSError* err = |
- [NSError errorWithDomain:kRTCPeerConnectionErrorDomain |
- code:kRTCPeerConnnectionSessionDescriptionError |
- userInfo:@{ NSLocalizedDescriptionKey : str }]; |
- completion_handler_(nil, err); |
- completion_handler_ = nil; |
- } |
- |
- private: |
- void (^completion_handler_) |
- (RTCSessionDescription *sessionDescription, NSError *error); |
-}; |
- |
-class SetSessionDescriptionObserverAdapter : |
- public SetSessionDescriptionObserver { |
- public: |
- SetSessionDescriptionObserverAdapter(void (^completionHandler) |
- (NSError *error)) { |
- completion_handler_ = completionHandler; |
- } |
- |
- ~SetSessionDescriptionObserverAdapter() { |
- completion_handler_ = nil; |
- } |
- |
- void OnSuccess() override { |
- RTC_DCHECK(completion_handler_); |
- completion_handler_(nil); |
- completion_handler_ = nil; |
- } |
- |
- void OnFailure(const std::string& error) override { |
- RTC_DCHECK(completion_handler_); |
- NSString* str = [NSString stringForStdString:error]; |
- NSError* err = |
- [NSError errorWithDomain:kRTCPeerConnectionErrorDomain |
- code:kRTCPeerConnnectionSessionDescriptionError |
- userInfo:@{ NSLocalizedDescriptionKey : str }]; |
- completion_handler_(err); |
- completion_handler_ = nil; |
- } |
- |
- private: |
- void (^completion_handler_)(NSError *error); |
-}; |
- |
-PeerConnectionDelegateAdapter::PeerConnectionDelegateAdapter( |
- RTCPeerConnection *peerConnection) { |
- peer_connection_ = peerConnection; |
-} |
- |
-PeerConnectionDelegateAdapter::~PeerConnectionDelegateAdapter() { |
- peer_connection_ = nil; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnSignalingChange( |
- PeerConnectionInterface::SignalingState new_state) { |
- RTCSignalingState state = |
- [[RTCPeerConnection class] signalingStateForNativeState:new_state]; |
- RTCPeerConnection *peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnection:peer_connection |
- didChangeSignalingState:state]; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnAddStream( |
- rtc::scoped_refptr<MediaStreamInterface> stream) { |
- RTCMediaStream *mediaStream = |
- [[RTCMediaStream alloc] initWithNativeMediaStream:stream]; |
- RTCPeerConnection *peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnection:peer_connection |
- didAddStream:mediaStream]; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnRemoveStream( |
- rtc::scoped_refptr<MediaStreamInterface> stream) { |
- RTCMediaStream *mediaStream = |
- [[RTCMediaStream alloc] initWithNativeMediaStream:stream]; |
- RTCPeerConnection *peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnection:peer_connection |
- didRemoveStream:mediaStream]; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnDataChannel( |
- rtc::scoped_refptr<DataChannelInterface> data_channel) { |
- RTCDataChannel *dataChannel = |
- [[RTCDataChannel alloc] initWithNativeDataChannel:data_channel]; |
- RTCPeerConnection *peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnection:peer_connection |
- didOpenDataChannel:dataChannel]; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnRenegotiationNeeded() { |
- RTCPeerConnection *peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnectionShouldNegotiate:peer_connection]; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnIceConnectionChange( |
- PeerConnectionInterface::IceConnectionState new_state) { |
- RTCIceConnectionState state = |
- [[RTCPeerConnection class] iceConnectionStateForNativeState:new_state]; |
- RTCPeerConnection *peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnection:peer_connection |
- didChangeIceConnectionState:state]; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnIceGatheringChange( |
- PeerConnectionInterface::IceGatheringState new_state) { |
- RTCIceGatheringState state = |
- [[RTCPeerConnection class] iceGatheringStateForNativeState:new_state]; |
- RTCPeerConnection *peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnection:peer_connection |
- didChangeIceGatheringState:state]; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnIceCandidate( |
- const IceCandidateInterface *candidate) { |
- RTCIceCandidate *iceCandidate = |
- [[RTCIceCandidate alloc] initWithNativeCandidate:candidate]; |
- RTCPeerConnection *peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnection:peer_connection |
- didGenerateIceCandidate:iceCandidate]; |
-} |
- |
-void PeerConnectionDelegateAdapter::OnIceCandidatesRemoved( |
- const std::vector<cricket::Candidate>& candidates) { |
- NSMutableArray* ice_candidates = |
- [NSMutableArray arrayWithCapacity:candidates.size()]; |
- for (const auto& candidate : candidates) { |
- std::unique_ptr<JsepIceCandidate> candidate_wrapper( |
- new JsepIceCandidate(candidate.transport_name(), -1, candidate)); |
- RTCIceCandidate* ice_candidate = [[RTCIceCandidate alloc] |
- initWithNativeCandidate:candidate_wrapper.get()]; |
- [ice_candidates addObject:ice_candidate]; |
- } |
- RTCPeerConnection* peer_connection = peer_connection_; |
- [peer_connection.delegate peerConnection:peer_connection |
- didRemoveIceCandidates:ice_candidates]; |
-} |
- |
-} // namespace webrtc |
- |
- |
-@implementation RTCPeerConnection { |
- NSMutableArray<RTCMediaStream *> *_localStreams; |
- std::unique_ptr<webrtc::PeerConnectionDelegateAdapter> _observer; |
- rtc::scoped_refptr<webrtc::PeerConnectionInterface> _peerConnection; |
- std::unique_ptr<webrtc::MediaConstraints> _nativeConstraints; |
- BOOL _hasStartedRtcEventLog; |
-} |
- |
-@synthesize delegate = _delegate; |
- |
-- (instancetype)initWithFactory:(RTCPeerConnectionFactory *)factory |
- configuration:(RTCConfiguration *)configuration |
- constraints:(RTCMediaConstraints *)constraints |
- delegate:(id<RTCPeerConnectionDelegate>)delegate { |
- NSParameterAssert(factory); |
- std::unique_ptr<webrtc::PeerConnectionInterface::RTCConfiguration> config( |
- [configuration createNativeConfiguration]); |
- if (!config) { |
- return nil; |
- } |
- if (self = [super init]) { |
- _observer.reset(new webrtc::PeerConnectionDelegateAdapter(self)); |
- _nativeConstraints = constraints.nativeConstraints; |
- CopyConstraintsIntoRtcConfiguration(_nativeConstraints.get(), |
- config.get()); |
- _peerConnection = |
- factory.nativeFactory->CreatePeerConnection(*config, |
- nullptr, |
- nullptr, |
- _observer.get()); |
- if (!_peerConnection) { |
- return nil; |
- } |
- _localStreams = [[NSMutableArray alloc] init]; |
- _delegate = delegate; |
- } |
- return self; |
-} |
- |
-- (NSArray<RTCMediaStream *> *)localStreams { |
- return [_localStreams copy]; |
-} |
- |
-- (RTCSessionDescription *)localDescription { |
- const webrtc::SessionDescriptionInterface *description = |
- _peerConnection->local_description(); |
- return description ? |
- [[RTCSessionDescription alloc] initWithNativeDescription:description] |
- : nil; |
-} |
- |
-- (RTCSessionDescription *)remoteDescription { |
- const webrtc::SessionDescriptionInterface *description = |
- _peerConnection->remote_description(); |
- return description ? |
- [[RTCSessionDescription alloc] initWithNativeDescription:description] |
- : nil; |
-} |
- |
-- (RTCSignalingState)signalingState { |
- return [[self class] |
- signalingStateForNativeState:_peerConnection->signaling_state()]; |
-} |
- |
-- (RTCIceConnectionState)iceConnectionState { |
- return [[self class] iceConnectionStateForNativeState: |
- _peerConnection->ice_connection_state()]; |
-} |
- |
-- (RTCIceGatheringState)iceGatheringState { |
- return [[self class] iceGatheringStateForNativeState: |
- _peerConnection->ice_gathering_state()]; |
-} |
- |
-- (BOOL)setConfiguration:(RTCConfiguration *)configuration { |
- std::unique_ptr<webrtc::PeerConnectionInterface::RTCConfiguration> config( |
- [configuration createNativeConfiguration]); |
- if (!config) { |
- return NO; |
- } |
- CopyConstraintsIntoRtcConfiguration(_nativeConstraints.get(), |
- config.get()); |
- return _peerConnection->SetConfiguration(*config); |
-} |
- |
-- (RTCConfiguration *)configuration { |
- webrtc::PeerConnectionInterface::RTCConfiguration config = |
- _peerConnection->GetConfiguration(); |
- return [[RTCConfiguration alloc] initWithNativeConfiguration:config]; |
-} |
- |
-- (void)close { |
- _peerConnection->Close(); |
-} |
- |
-- (void)addIceCandidate:(RTCIceCandidate *)candidate { |
- std::unique_ptr<const webrtc::IceCandidateInterface> iceCandidate( |
- candidate.nativeCandidate); |
- _peerConnection->AddIceCandidate(iceCandidate.get()); |
-} |
- |
-- (void)removeIceCandidates:(NSArray<RTCIceCandidate *> *)iceCandidates { |
- std::vector<cricket::Candidate> candidates; |
- for (RTCIceCandidate *iceCandidate in iceCandidates) { |
- std::unique_ptr<const webrtc::IceCandidateInterface> candidate( |
- iceCandidate.nativeCandidate); |
- if (candidate) { |
- candidates.push_back(candidate->candidate()); |
- // Need to fill the transport name from the sdp_mid. |
- candidates.back().set_transport_name(candidate->sdp_mid()); |
- } |
- } |
- if (!candidates.empty()) { |
- _peerConnection->RemoveIceCandidates(candidates); |
- } |
-} |
- |
-- (void)addStream:(RTCMediaStream *)stream { |
- if (!_peerConnection->AddStream(stream.nativeMediaStream)) { |
- RTCLogError(@"Failed to add stream: %@", stream); |
- return; |
- } |
- [_localStreams addObject:stream]; |
-} |
- |
-- (void)removeStream:(RTCMediaStream *)stream { |
- _peerConnection->RemoveStream(stream.nativeMediaStream); |
- [_localStreams removeObject:stream]; |
-} |
- |
-- (void)offerForConstraints:(RTCMediaConstraints *)constraints |
- completionHandler: |
- (void (^)(RTCSessionDescription *sessionDescription, |
- NSError *error))completionHandler { |
- rtc::scoped_refptr<webrtc::CreateSessionDescriptionObserverAdapter> |
- observer(new rtc::RefCountedObject |
- <webrtc::CreateSessionDescriptionObserverAdapter>(completionHandler)); |
- _peerConnection->CreateOffer(observer, constraints.nativeConstraints.get()); |
-} |
- |
-- (void)answerForConstraints:(RTCMediaConstraints *)constraints |
- completionHandler: |
- (void (^)(RTCSessionDescription *sessionDescription, |
- NSError *error))completionHandler { |
- rtc::scoped_refptr<webrtc::CreateSessionDescriptionObserverAdapter> |
- observer(new rtc::RefCountedObject |
- <webrtc::CreateSessionDescriptionObserverAdapter>(completionHandler)); |
- _peerConnection->CreateAnswer(observer, constraints.nativeConstraints.get()); |
-} |
- |
-- (void)setLocalDescription:(RTCSessionDescription *)sdp |
- completionHandler:(void (^)(NSError *error))completionHandler { |
- rtc::scoped_refptr<webrtc::SetSessionDescriptionObserverAdapter> observer( |
- new rtc::RefCountedObject<webrtc::SetSessionDescriptionObserverAdapter>( |
- completionHandler)); |
- _peerConnection->SetLocalDescription(observer, sdp.nativeDescription); |
-} |
- |
-- (void)setRemoteDescription:(RTCSessionDescription *)sdp |
- completionHandler:(void (^)(NSError *error))completionHandler { |
- rtc::scoped_refptr<webrtc::SetSessionDescriptionObserverAdapter> observer( |
- new rtc::RefCountedObject<webrtc::SetSessionDescriptionObserverAdapter>( |
- completionHandler)); |
- _peerConnection->SetRemoteDescription(observer, sdp.nativeDescription); |
-} |
- |
-- (BOOL)startRtcEventLogWithFilePath:(NSString *)filePath |
- maxSizeInBytes:(int64_t)maxSizeInBytes { |
- RTC_DCHECK(filePath.length); |
- RTC_DCHECK_GT(maxSizeInBytes, 0); |
- RTC_DCHECK(!_hasStartedRtcEventLog); |
- if (_hasStartedRtcEventLog) { |
- RTCLogError(@"Event logging already started."); |
- return NO; |
- } |
- int fd = open(filePath.UTF8String, O_WRONLY | O_CREAT | O_TRUNC, |
- S_IRUSR | S_IWUSR); |
- if (fd < 0) { |
- RTCLogError(@"Error opening file: %@. Error: %d", filePath, errno); |
- return NO; |
- } |
- _hasStartedRtcEventLog = |
- _peerConnection->StartRtcEventLog(fd, maxSizeInBytes); |
- return _hasStartedRtcEventLog; |
-} |
- |
-- (void)stopRtcEventLog { |
- _peerConnection->StopRtcEventLog(); |
- _hasStartedRtcEventLog = NO; |
-} |
- |
-- (RTCRtpSender *)senderWithKind:(NSString *)kind |
- streamId:(NSString *)streamId { |
- std::string nativeKind = [NSString stdStringForString:kind]; |
- std::string nativeStreamId = [NSString stdStringForString:streamId]; |
- rtc::scoped_refptr<webrtc::RtpSenderInterface> nativeSender( |
- _peerConnection->CreateSender(nativeKind, nativeStreamId)); |
- return nativeSender ? |
- [[RTCRtpSender alloc] initWithNativeRtpSender:nativeSender] |
- : nil; |
-} |
- |
-- (NSArray<RTCRtpSender *> *)senders { |
- std::vector<rtc::scoped_refptr<webrtc::RtpSenderInterface>> nativeSenders( |
- _peerConnection->GetSenders()); |
- NSMutableArray *senders = [[NSMutableArray alloc] init]; |
- for (const auto &nativeSender : nativeSenders) { |
- RTCRtpSender *sender = |
- [[RTCRtpSender alloc] initWithNativeRtpSender:nativeSender]; |
- [senders addObject:sender]; |
- } |
- return senders; |
-} |
- |
-- (NSArray<RTCRtpReceiver *> *)receivers { |
- std::vector<rtc::scoped_refptr<webrtc::RtpReceiverInterface>> nativeReceivers( |
- _peerConnection->GetReceivers()); |
- NSMutableArray *receivers = [[NSMutableArray alloc] init]; |
- for (const auto &nativeReceiver : nativeReceivers) { |
- RTCRtpReceiver *receiver = |
- [[RTCRtpReceiver alloc] initWithNativeRtpReceiver:nativeReceiver]; |
- [receivers addObject:receiver]; |
- } |
- return receivers; |
-} |
- |
-#pragma mark - Private |
- |
-+ (webrtc::PeerConnectionInterface::SignalingState)nativeSignalingStateForState: |
- (RTCSignalingState)state { |
- switch (state) { |
- case RTCSignalingStateStable: |
- return webrtc::PeerConnectionInterface::kStable; |
- case RTCSignalingStateHaveLocalOffer: |
- return webrtc::PeerConnectionInterface::kHaveLocalOffer; |
- case RTCSignalingStateHaveLocalPrAnswer: |
- return webrtc::PeerConnectionInterface::kHaveLocalPrAnswer; |
- case RTCSignalingStateHaveRemoteOffer: |
- return webrtc::PeerConnectionInterface::kHaveRemoteOffer; |
- case RTCSignalingStateHaveRemotePrAnswer: |
- return webrtc::PeerConnectionInterface::kHaveRemotePrAnswer; |
- case RTCSignalingStateClosed: |
- return webrtc::PeerConnectionInterface::kClosed; |
- } |
-} |
- |
-+ (RTCSignalingState)signalingStateForNativeState: |
- (webrtc::PeerConnectionInterface::SignalingState)nativeState { |
- switch (nativeState) { |
- case webrtc::PeerConnectionInterface::kStable: |
- return RTCSignalingStateStable; |
- case webrtc::PeerConnectionInterface::kHaveLocalOffer: |
- return RTCSignalingStateHaveLocalOffer; |
- case webrtc::PeerConnectionInterface::kHaveLocalPrAnswer: |
- return RTCSignalingStateHaveLocalPrAnswer; |
- case webrtc::PeerConnectionInterface::kHaveRemoteOffer: |
- return RTCSignalingStateHaveRemoteOffer; |
- case webrtc::PeerConnectionInterface::kHaveRemotePrAnswer: |
- return RTCSignalingStateHaveRemotePrAnswer; |
- case webrtc::PeerConnectionInterface::kClosed: |
- return RTCSignalingStateClosed; |
- } |
-} |
- |
-+ (NSString *)stringForSignalingState:(RTCSignalingState)state { |
- switch (state) { |
- case RTCSignalingStateStable: |
- return @"STABLE"; |
- case RTCSignalingStateHaveLocalOffer: |
- return @"HAVE_LOCAL_OFFER"; |
- case RTCSignalingStateHaveLocalPrAnswer: |
- return @"HAVE_LOCAL_PRANSWER"; |
- case RTCSignalingStateHaveRemoteOffer: |
- return @"HAVE_REMOTE_OFFER"; |
- case RTCSignalingStateHaveRemotePrAnswer: |
- return @"HAVE_REMOTE_PRANSWER"; |
- case RTCSignalingStateClosed: |
- return @"CLOSED"; |
- } |
-} |
- |
-+ (webrtc::PeerConnectionInterface::IceConnectionState) |
- nativeIceConnectionStateForState:(RTCIceConnectionState)state { |
- switch (state) { |
- case RTCIceConnectionStateNew: |
- return webrtc::PeerConnectionInterface::kIceConnectionNew; |
- case RTCIceConnectionStateChecking: |
- return webrtc::PeerConnectionInterface::kIceConnectionChecking; |
- case RTCIceConnectionStateConnected: |
- return webrtc::PeerConnectionInterface::kIceConnectionConnected; |
- case RTCIceConnectionStateCompleted: |
- return webrtc::PeerConnectionInterface::kIceConnectionCompleted; |
- case RTCIceConnectionStateFailed: |
- return webrtc::PeerConnectionInterface::kIceConnectionFailed; |
- case RTCIceConnectionStateDisconnected: |
- return webrtc::PeerConnectionInterface::kIceConnectionDisconnected; |
- case RTCIceConnectionStateClosed: |
- return webrtc::PeerConnectionInterface::kIceConnectionClosed; |
- case RTCIceConnectionStateCount: |
- return webrtc::PeerConnectionInterface::kIceConnectionMax; |
- } |
-} |
- |
-+ (RTCIceConnectionState)iceConnectionStateForNativeState: |
- (webrtc::PeerConnectionInterface::IceConnectionState)nativeState { |
- switch (nativeState) { |
- case webrtc::PeerConnectionInterface::kIceConnectionNew: |
- return RTCIceConnectionStateNew; |
- case webrtc::PeerConnectionInterface::kIceConnectionChecking: |
- return RTCIceConnectionStateChecking; |
- case webrtc::PeerConnectionInterface::kIceConnectionConnected: |
- return RTCIceConnectionStateConnected; |
- case webrtc::PeerConnectionInterface::kIceConnectionCompleted: |
- return RTCIceConnectionStateCompleted; |
- case webrtc::PeerConnectionInterface::kIceConnectionFailed: |
- return RTCIceConnectionStateFailed; |
- case webrtc::PeerConnectionInterface::kIceConnectionDisconnected: |
- return RTCIceConnectionStateDisconnected; |
- case webrtc::PeerConnectionInterface::kIceConnectionClosed: |
- return RTCIceConnectionStateClosed; |
- case webrtc::PeerConnectionInterface::kIceConnectionMax: |
- return RTCIceConnectionStateCount; |
- } |
-} |
- |
-+ (NSString *)stringForIceConnectionState:(RTCIceConnectionState)state { |
- switch (state) { |
- case RTCIceConnectionStateNew: |
- return @"NEW"; |
- case RTCIceConnectionStateChecking: |
- return @"CHECKING"; |
- case RTCIceConnectionStateConnected: |
- return @"CONNECTED"; |
- case RTCIceConnectionStateCompleted: |
- return @"COMPLETED"; |
- case RTCIceConnectionStateFailed: |
- return @"FAILED"; |
- case RTCIceConnectionStateDisconnected: |
- return @"DISCONNECTED"; |
- case RTCIceConnectionStateClosed: |
- return @"CLOSED"; |
- case RTCIceConnectionStateCount: |
- return @"COUNT"; |
- } |
-} |
- |
-+ (webrtc::PeerConnectionInterface::IceGatheringState) |
- nativeIceGatheringStateForState:(RTCIceGatheringState)state { |
- switch (state) { |
- case RTCIceGatheringStateNew: |
- return webrtc::PeerConnectionInterface::kIceGatheringNew; |
- case RTCIceGatheringStateGathering: |
- return webrtc::PeerConnectionInterface::kIceGatheringGathering; |
- case RTCIceGatheringStateComplete: |
- return webrtc::PeerConnectionInterface::kIceGatheringComplete; |
- } |
-} |
- |
-+ (RTCIceGatheringState)iceGatheringStateForNativeState: |
- (webrtc::PeerConnectionInterface::IceGatheringState)nativeState { |
- switch (nativeState) { |
- case webrtc::PeerConnectionInterface::kIceGatheringNew: |
- return RTCIceGatheringStateNew; |
- case webrtc::PeerConnectionInterface::kIceGatheringGathering: |
- return RTCIceGatheringStateGathering; |
- case webrtc::PeerConnectionInterface::kIceGatheringComplete: |
- return RTCIceGatheringStateComplete; |
- } |
-} |
- |
-+ (NSString *)stringForIceGatheringState:(RTCIceGatheringState)state { |
- switch (state) { |
- case RTCIceGatheringStateNew: |
- return @"NEW"; |
- case RTCIceGatheringStateGathering: |
- return @"GATHERING"; |
- case RTCIceGatheringStateComplete: |
- return @"COMPLETE"; |
- } |
-} |
- |
-+ (webrtc::PeerConnectionInterface::StatsOutputLevel) |
- nativeStatsOutputLevelForLevel:(RTCStatsOutputLevel)level { |
- switch (level) { |
- case RTCStatsOutputLevelStandard: |
- return webrtc::PeerConnectionInterface::kStatsOutputLevelStandard; |
- case RTCStatsOutputLevelDebug: |
- return webrtc::PeerConnectionInterface::kStatsOutputLevelDebug; |
- } |
-} |
- |
-- (rtc::scoped_refptr<webrtc::PeerConnectionInterface>)nativePeerConnection { |
- return _peerConnection; |
-} |
- |
-@end |