10e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org/* 20e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * libjingle 30e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * Copyright 2013, Google Inc. 40e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 50e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * Redistribution and use in source and binary forms, with or without 60e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * modification, are permitted provided that the following conditions are met: 70e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 80e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 1. Redistributions of source code must retain the above copyright notice, 90e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * this list of conditions and the following disclaimer. 100e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 2. Redistributions in binary form must reproduce the above copyright notice, 110e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * this list of conditions and the following disclaimer in the documentation 120e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * and/or other materials provided with the distribution. 130e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 3. The name of the author may not be used to endorse or promote products 140e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * derived from this software without specific prior written permission. 150e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * 160e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 170e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 180e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 190e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 200e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 210e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 220e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 230e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 240e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 250e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 260e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org */ 270e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 280e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#import "RTCEnumConverter.h" 290e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 300e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include "talk/app/webrtc/peerconnectioninterface.h" 310e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 320e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org@implementation RTCEnumConverter 330e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 340e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org+ (RTCICEConnectionState)convertIceConnectionStateToObjC: 350e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org (webrtc::PeerConnectionInterface::IceConnectionState)nativeState { 360e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org switch (nativeState) { 370e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceConnectionNew: 380e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEConnectionNew; 390e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceConnectionChecking: 400e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEConnectionChecking; 410e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceConnectionConnected: 420e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEConnectionConnected; 430e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceConnectionCompleted: 440e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEConnectionCompleted; 450e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceConnectionFailed: 460e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEConnectionFailed; 470e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceConnectionDisconnected: 480e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEConnectionDisconnected; 490e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceConnectionClosed: 500e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEConnectionClosed; 510e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 520e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 530e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 540e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org+ (RTCICEGatheringState)convertIceGatheringStateToObjC: 550e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org (webrtc::PeerConnectionInterface::IceGatheringState)nativeState { 560e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org switch (nativeState) { 570e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceGatheringNew: 580e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEGatheringNew; 590e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceGatheringGathering: 600e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEGatheringGathering; 610e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kIceGatheringComplete: 620e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCICEGatheringComplete; 630e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 640e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 650e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 660e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org+ (RTCSignalingState)convertSignalingStateToObjC: 670e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org (webrtc::PeerConnectionInterface::SignalingState)nativeState { 680e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org switch (nativeState) { 690e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kStable: 700e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSignalingStable; 710e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kHaveLocalOffer: 720e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSignalingHaveLocalOffer; 730e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kHaveLocalPrAnswer: 740e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSignalingHaveLocalPrAnswer; 750e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kHaveRemoteOffer: 760e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSignalingHaveRemoteOffer; 770e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kHaveRemotePrAnswer: 780e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSignalingHaveRemotePrAnswer; 790e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::PeerConnectionInterface::kClosed: 800e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSignalingClosed; 810e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 820e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 830e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 84664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org+ (webrtc::PeerConnectionInterface::StatsOutputLevel) 85664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org convertStatsOutputLevelToNative:(RTCStatsOutputLevel)statsOutputLevel { 86664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org switch (statsOutputLevel) { 87664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org case RTCStatsOutputLevelStandard: 88664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org return webrtc::PeerConnectionInterface::kStatsOutputLevelStandard; 89664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org case RTCStatsOutputLevelDebug: 90664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org return webrtc::PeerConnectionInterface::kStatsOutputLevelDebug; 91664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org } 92664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org} 93664ec031431b37eade6e400dadfd1709e7494fc1tkchin@webrtc.org 940e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org+ (RTCSourceState)convertSourceStateToObjC: 950e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org (webrtc::MediaSourceInterface::SourceState)nativeState { 960e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org switch (nativeState) { 970e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::MediaSourceInterface::kInitializing: 980e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSourceStateInitializing; 990e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::MediaSourceInterface::kLive: 1000e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSourceStateLive; 1010e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::MediaSourceInterface::kEnded: 1020e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSourceStateEnded; 1030e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::MediaSourceInterface::kMuted: 1040e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCSourceStateMuted; 1050e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 1060e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 1070e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1080e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org+ (webrtc::MediaStreamTrackInterface::TrackState) 1090e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org convertTrackStateToNative:(RTCTrackState)state { 1100e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org switch (state) { 1110e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case RTCTrackStateInitializing: 1120e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return webrtc::MediaStreamTrackInterface::kInitializing; 1130e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case RTCTrackStateLive: 1140e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return webrtc::MediaStreamTrackInterface::kLive; 1150e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case RTCTrackStateEnded: 1160e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return webrtc::MediaStreamTrackInterface::kEnded; 1170e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case RTCTrackStateFailed: 1180e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return webrtc::MediaStreamTrackInterface::kFailed; 1190e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 1200e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 1210e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1220e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org+ (RTCTrackState)convertTrackStateToObjC: 1230e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org (webrtc::MediaStreamTrackInterface::TrackState)nativeState { 1240e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org switch (nativeState) { 1250e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::MediaStreamTrackInterface::kInitializing: 1260e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCTrackStateInitializing; 1270e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::MediaStreamTrackInterface::kLive: 1280e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCTrackStateLive; 1290e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::MediaStreamTrackInterface::kEnded: 1300e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCTrackStateEnded; 1310e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case webrtc::MediaStreamTrackInterface::kFailed: 1320e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return RTCTrackStateFailed; 1330e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 1340e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 1350e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1360e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org@end 137