| /* | |
| * 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.h" | |
| #include "api/peer_connection_interface.h" | |
| NS_ASSUME_NONNULL_BEGIN | |
| namespace webrtc { | |
| /** | |
| * These objects are created by RTCPeerConnectionFactory to wrap an | |
| * id<RTCPeerConnectionDelegate> and call methods on that interface. | |
| */ | |
| class PeerConnectionDelegateAdapter : public PeerConnectionObserver { | |
| public: | |
| PeerConnectionDelegateAdapter(RTC_OBJC_TYPE(RTCPeerConnection) * | |
| peerConnection); | |
| ~PeerConnectionDelegateAdapter() override; | |
| void OnSignalingChange( | |
| PeerConnectionInterface::SignalingState new_state) override; | |
| void OnAddStream(webrtc::scoped_refptr<MediaStreamInterface> stream) override; | |
| void OnRemoveStream( | |
| webrtc::scoped_refptr<MediaStreamInterface> stream) override; | |
| void OnTrack( | |
| webrtc::scoped_refptr<RtpTransceiverInterface> transceiver) override; | |
| void OnDataChannel( | |
| webrtc::scoped_refptr<DataChannelInterface> data_channel) override; | |
| void OnRenegotiationNeeded() override; | |
| void OnIceConnectionChange( | |
| PeerConnectionInterface::IceConnectionState new_state) override; | |
| void OnStandardizedIceConnectionChange( | |
| PeerConnectionInterface::IceConnectionState new_state) override; | |
| void OnConnectionChange( | |
| PeerConnectionInterface::PeerConnectionState new_state) override; | |
| void OnIceGatheringChange( | |
| PeerConnectionInterface::IceGatheringState new_state) override; | |
| void OnIceCandidate(const IceCandidate *candidate) override; | |
| void OnIceCandidateError(const std::string &address, | |
| int port, | |
| const std::string &url, | |
| int error_code, | |
| const std::string &error_text) override; | |
| void OnIceCandidateRemoved(const webrtc::IceCandidate *candidate) override; | |
| void OnIceSelectedCandidatePairChanged( | |
| const webrtc::CandidatePairChangeEvent &event) override; | |
| void OnAddTrack(webrtc::scoped_refptr<RtpReceiverInterface> receiver, | |
| const std::vector<webrtc::scoped_refptr<MediaStreamInterface>> | |
| &streams) override; | |
| void OnRemoveTrack( | |
| webrtc::scoped_refptr<RtpReceiverInterface> receiver) override; | |
| private: | |
| __weak RTC_OBJC_TYPE(RTCPeerConnection) * peer_connection_; | |
| }; | |
| } // namespace webrtc | |
| @protocol RTC_OBJC_TYPE | |
| (RTCSSLCertificateVerifier); | |
| @interface RTC_OBJC_TYPE (RTCPeerConnection) | |
| () | |
| /** The factory used to create this RTCPeerConnection */ | |
| @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCPeerConnectionFactory) * | |
| factory; | |
| /** The native PeerConnectionInterface created during construction. */ | |
| @property(nonatomic, readonly) | |
| webrtc::scoped_refptr<webrtc::PeerConnectionInterface> | |
| nativePeerConnection; | |
| /** Initialize an RTCPeerConnection with a configuration, constraints, and | |
| * delegate. | |
| */ | |
| - (nullable instancetype) | |
| initWithFactory:(RTC_OBJC_TYPE(RTCPeerConnectionFactory) *)factory | |
| configuration:(RTC_OBJC_TYPE(RTCConfiguration) *)configuration | |
| constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints | |
| certificateVerifier:(nullable id<RTC_OBJC_TYPE(RTCSSLCertificateVerifier)>) | |
| certificateVerifier | |
| delegate:(nullable id<RTC_OBJC_TYPE(RTCPeerConnectionDelegate)>) | |
| delegate; | |
| /** Initialize an RTCPeerConnection with a configuration, constraints, | |
| * delegate and PeerConnectionDependencies. | |
| */ | |
| - (nullable instancetype) | |
| initWithDependencies:(RTC_OBJC_TYPE(RTCPeerConnectionFactory) *)factory | |
| configuration:(RTC_OBJC_TYPE(RTCConfiguration) *)configuration | |
| constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints | |
| dependencies:(std::unique_ptr<webrtc::PeerConnectionDependencies>) | |
| dependencies | |
| delegate:(nullable id<RTC_OBJC_TYPE(RTCPeerConnectionDelegate)>) | |
| delegate NS_DESIGNATED_INITIALIZER; | |
| + (webrtc::PeerConnectionInterface::SignalingState)nativeSignalingStateForState: | |
| (RTCSignalingState)state; | |
| + (RTCSignalingState)signalingStateForNativeState: | |
| (webrtc::PeerConnectionInterface::SignalingState)nativeState; | |
| + (NSString *)stringForSignalingState:(RTCSignalingState)state; | |
| + (webrtc::PeerConnectionInterface::IceConnectionState) | |
| nativeIceConnectionStateForState:(RTCIceConnectionState)state; | |
| + (webrtc::PeerConnectionInterface::PeerConnectionState) | |
| nativeConnectionStateForState:(RTCPeerConnectionState)state; | |
| + (RTCIceConnectionState)iceConnectionStateForNativeState: | |
| (webrtc::PeerConnectionInterface::IceConnectionState)nativeState; | |
| + (RTCPeerConnectionState)connectionStateForNativeState: | |
| (webrtc::PeerConnectionInterface::PeerConnectionState)nativeState; | |
| + (NSString *)stringForIceConnectionState:(RTCIceConnectionState)state; | |
| + (NSString *)stringForConnectionState:(RTCPeerConnectionState)state; | |
| + (webrtc::PeerConnectionInterface::IceGatheringState) | |
| nativeIceGatheringStateForState:(RTCIceGatheringState)state; | |
| + (RTCIceGatheringState)iceGatheringStateForNativeState: | |
| (webrtc::PeerConnectionInterface::IceGatheringState)nativeState; | |
| + (NSString *)stringForIceGatheringState:(RTCIceGatheringState)state; | |
| + (webrtc::PeerConnectionInterface::StatsOutputLevel) | |
| nativeStatsOutputLevelForLevel:(RTCStatsOutputLevel)level; | |
| @end | |
| NS_ASSUME_NONNULL_END |