/* * libjingle * Copyright 2013 Google Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #import "RTCEnumConverter.h" #include "talk/app/webrtc/peerconnectioninterface.h" @implementation RTCEnumConverter + (RTCICEConnectionState)convertIceConnectionStateToObjC: (webrtc::PeerConnectionInterface::IceConnectionState)nativeState { switch (nativeState) { case webrtc::PeerConnectionInterface::kIceConnectionNew: return RTCICEConnectionNew; case webrtc::PeerConnectionInterface::kIceConnectionChecking: return RTCICEConnectionChecking; case webrtc::PeerConnectionInterface::kIceConnectionConnected: return RTCICEConnectionConnected; case webrtc::PeerConnectionInterface::kIceConnectionCompleted: return RTCICEConnectionCompleted; case webrtc::PeerConnectionInterface::kIceConnectionFailed: return RTCICEConnectionFailed; case webrtc::PeerConnectionInterface::kIceConnectionDisconnected: return RTCICEConnectionDisconnected; case webrtc::PeerConnectionInterface::kIceConnectionClosed: return RTCICEConnectionClosed; case webrtc::PeerConnectionInterface::kIceConnectionMax: NSAssert(NO, @"kIceConnectionMax not allowed"); return RTCICEConnectionMax; } } + (RTCICEGatheringState)convertIceGatheringStateToObjC: (webrtc::PeerConnectionInterface::IceGatheringState)nativeState { switch (nativeState) { case webrtc::PeerConnectionInterface::kIceGatheringNew: return RTCICEGatheringNew; case webrtc::PeerConnectionInterface::kIceGatheringGathering: return RTCICEGatheringGathering; case webrtc::PeerConnectionInterface::kIceGatheringComplete: return RTCICEGatheringComplete; } } + (RTCSignalingState)convertSignalingStateToObjC: (webrtc::PeerConnectionInterface::SignalingState)nativeState { switch (nativeState) { case webrtc::PeerConnectionInterface::kStable: return RTCSignalingStable; case webrtc::PeerConnectionInterface::kHaveLocalOffer: return RTCSignalingHaveLocalOffer; case webrtc::PeerConnectionInterface::kHaveLocalPrAnswer: return RTCSignalingHaveLocalPrAnswer; case webrtc::PeerConnectionInterface::kHaveRemoteOffer: return RTCSignalingHaveRemoteOffer; case webrtc::PeerConnectionInterface::kHaveRemotePrAnswer: return RTCSignalingHaveRemotePrAnswer; case webrtc::PeerConnectionInterface::kClosed: return RTCSignalingClosed; } } + (webrtc::PeerConnectionInterface::StatsOutputLevel) convertStatsOutputLevelToNative:(RTCStatsOutputLevel)statsOutputLevel { switch (statsOutputLevel) { case RTCStatsOutputLevelStandard: return webrtc::PeerConnectionInterface::kStatsOutputLevelStandard; case RTCStatsOutputLevelDebug: return webrtc::PeerConnectionInterface::kStatsOutputLevelDebug; } } + (RTCSourceState)convertSourceStateToObjC: (webrtc::MediaSourceInterface::SourceState)nativeState { switch (nativeState) { case webrtc::MediaSourceInterface::kInitializing: return RTCSourceStateInitializing; case webrtc::MediaSourceInterface::kLive: return RTCSourceStateLive; case webrtc::MediaSourceInterface::kEnded: return RTCSourceStateEnded; case webrtc::MediaSourceInterface::kMuted: return RTCSourceStateMuted; } } + (webrtc::MediaStreamTrackInterface::TrackState) convertTrackStateToNative:(RTCTrackState)state { switch (state) { case RTCTrackStateInitializing: return webrtc::MediaStreamTrackInterface::kInitializing; case RTCTrackStateLive: return webrtc::MediaStreamTrackInterface::kLive; case RTCTrackStateEnded: return webrtc::MediaStreamTrackInterface::kEnded; case RTCTrackStateFailed: return webrtc::MediaStreamTrackInterface::kFailed; } } + (RTCTrackState)convertTrackStateToObjC: (webrtc::MediaStreamTrackInterface::TrackState)nativeState { switch (nativeState) { case webrtc::MediaStreamTrackInterface::kInitializing: return RTCTrackStateInitializing; case webrtc::MediaStreamTrackInterface::kLive: return RTCTrackStateLive; case webrtc::MediaStreamTrackInterface::kEnded: return RTCTrackStateEnded; case webrtc::MediaStreamTrackInterface::kFailed: return RTCTrackStateFailed; } } + (RTCIceTransportsType)iceTransportsTypeForNativeEnum: (webrtc::PeerConnectionInterface::IceTransportsType)nativeEnum { switch (nativeEnum) { case webrtc::PeerConnectionInterface::kNone: return kRTCIceTransportsTypeNone; case webrtc::PeerConnectionInterface::kRelay: return kRTCIceTransportsTypeRelay; case webrtc::PeerConnectionInterface::kNoHost: return kRTCIceTransportsTypeNoHost; case webrtc::PeerConnectionInterface::kAll: return kRTCIceTransportsTypeAll; } } + (webrtc::PeerConnectionInterface::IceTransportsType)nativeEnumForIceTransportsType: (RTCIceTransportsType)iceTransportsType { switch (iceTransportsType) { case kRTCIceTransportsTypeNone: return webrtc::PeerConnectionInterface::kNone; case kRTCIceTransportsTypeRelay: return webrtc::PeerConnectionInterface::kRelay; case kRTCIceTransportsTypeNoHost: return webrtc::PeerConnectionInterface::kNoHost; case kRTCIceTransportsTypeAll: return webrtc::PeerConnectionInterface::kAll; } } + (RTCBundlePolicy)bundlePolicyForNativeEnum: (webrtc::PeerConnectionInterface::BundlePolicy)nativeEnum { switch (nativeEnum) { case webrtc::PeerConnectionInterface::kBundlePolicyBalanced: return kRTCBundlePolicyBalanced; case webrtc::PeerConnectionInterface::kBundlePolicyMaxBundle: return kRTCBundlePolicyMaxBundle; case webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat: return kRTCBundlePolicyMaxCompat; } } + (webrtc::PeerConnectionInterface::BundlePolicy)nativeEnumForBundlePolicy: (RTCBundlePolicy)bundlePolicy { switch (bundlePolicy) { case kRTCBundlePolicyBalanced: return webrtc::PeerConnectionInterface::kBundlePolicyBalanced; case kRTCBundlePolicyMaxBundle: return webrtc::PeerConnectionInterface::kBundlePolicyMaxBundle; case kRTCBundlePolicyMaxCompat: return webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat; } } + (RTCRtcpMuxPolicy)rtcpMuxPolicyForNativeEnum: (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativeEnum { switch (nativeEnum) { case webrtc::PeerConnectionInterface::kRtcpMuxPolicyNegotiate: return kRTCRtcpMuxPolicyNegotiate; case webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire: return kRTCRtcpMuxPolicyRequire; } } + (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativeEnumForRtcpMuxPolicy: (RTCRtcpMuxPolicy)rtcpMuxPolicy { switch (rtcpMuxPolicy) { case kRTCRtcpMuxPolicyNegotiate: return webrtc::PeerConnectionInterface::kRtcpMuxPolicyNegotiate; case kRTCRtcpMuxPolicyRequire: return webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire; } } + (RTCTcpCandidatePolicy)tcpCandidatePolicyForNativeEnum: (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativeEnum { switch (nativeEnum) { case webrtc::PeerConnectionInterface::kTcpCandidatePolicyEnabled: return kRTCTcpCandidatePolicyEnabled; case webrtc::PeerConnectionInterface::kTcpCandidatePolicyDisabled: return kRTCTcpCandidatePolicyDisabled; } } + (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativeEnumForTcpCandidatePolicy: (RTCTcpCandidatePolicy)tcpCandidatePolicy { switch (tcpCandidatePolicy) { case kRTCTcpCandidatePolicyEnabled: return webrtc::PeerConnectionInterface::kTcpCandidatePolicyEnabled; case kRTCTcpCandidatePolicyDisabled: return webrtc::PeerConnectionInterface::kTcpCandidatePolicyDisabled; } } @end