blob: eb06c186453c4c39536e225ca79c2fc19e46a378 [file] [log] [blame]
henrike@webrtc.org28e20752013-07-10 00:45:36 +00001/*
2 * libjingle
jlmiller@webrtc.org5f93d0a2015-01-20 21:36:13 +00003 * Copyright 2013 Google Inc.
henrike@webrtc.org28e20752013-07-10 00:45:36 +00004 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice,
11 * this list of conditions and the following disclaimer in the documentation
12 * and/or other materials provided with the distribution.
13 * 3. The name of the author may not be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
19 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
Zeke Chinbc7dd7e2015-05-29 14:59:14 -070028// TODO(tkchin): remove this in favor of having objc headers mirror their C++ counterparts.
29// TODO(tkchin): see if we can move C++ enums into their own file so we can avoid all this
30// conversion code.
henrike@webrtc.org28e20752013-07-10 00:45:36 +000031#import "RTCTypes.h"
32
Zeke Chinbc7dd7e2015-05-29 14:59:14 -070033#import "talk/app/webrtc/objc/RTCPeerConnectionInterface+Internal.h"
henrike@webrtc.org28e20752013-07-10 00:45:36 +000034
35@interface RTCEnumConverter : NSObject
36
Zeke Chinbc7dd7e2015-05-29 14:59:14 -070037// TODO(tkchin): rename these.
henrike@webrtc.org28e20752013-07-10 00:45:36 +000038+ (RTCICEConnectionState)convertIceConnectionStateToObjC:
39 (webrtc::PeerConnectionInterface::IceConnectionState)nativeState;
40
41+ (RTCICEGatheringState)convertIceGatheringStateToObjC:
42 (webrtc::PeerConnectionInterface::IceGatheringState)nativeState;
43
44+ (RTCSignalingState)convertSignalingStateToObjC:
45 (webrtc::PeerConnectionInterface::SignalingState)nativeState;
46
tkchin@webrtc.org19b1be12014-04-22 21:05:38 +000047+ (webrtc::PeerConnectionInterface::StatsOutputLevel)
48 convertStatsOutputLevelToNative:(RTCStatsOutputLevel)statsOutputLevel;
49
henrike@webrtc.org28e20752013-07-10 00:45:36 +000050+ (RTCSourceState)convertSourceStateToObjC:
51 (webrtc::MediaSourceInterface::SourceState)nativeState;
52
53+ (webrtc::MediaStreamTrackInterface::TrackState)convertTrackStateToNative:
54 (RTCTrackState)state;
55
56+ (RTCTrackState)convertTrackStateToObjC:
57 (webrtc::MediaStreamTrackInterface::TrackState)nativeState;
58
Zeke Chinbc7dd7e2015-05-29 14:59:14 -070059+ (RTCIceTransportsType)iceTransportsTypeForNativeEnum:
60 (webrtc::PeerConnectionInterface::IceTransportsType)nativeEnum;
61
62+ (webrtc::PeerConnectionInterface::IceTransportsType)nativeEnumForIceTransportsType:
63 (RTCIceTransportsType)iceTransportsType;
64
65+ (RTCBundlePolicy)bundlePolicyForNativeEnum:
66 (webrtc::PeerConnectionInterface::BundlePolicy)nativeEnum;
67
68+ (webrtc::PeerConnectionInterface::BundlePolicy)nativeEnumForBundlePolicy:
69 (RTCBundlePolicy)bundlePolicy;
70
71+ (RTCRtcpMuxPolicy)rtcpMuxPolicyForNativeEnum:
72 (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativeEnum;
73
74+ (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativeEnumForRtcpMuxPolicy:
75 (RTCRtcpMuxPolicy)rtcpMuxPolicy;
76
77+ (RTCTcpCandidatePolicy)tcpCandidatePolicyForNativeEnum:
78 (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativeEnum;
79
80+ (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativeEnumForTcpCandidatePolicy:
81 (RTCTcpCandidatePolicy)tcpCandidatePolicy;
82
henrike@webrtc.org28e20752013-07-10 00:45:36 +000083@end