dom/webidl/PeerConnectionImpl.webidl

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:d75b5e6b4267
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
5 *
6 * PeerConnection.js' interface to the C++ PeerConnectionImpl.
7 *
8 * Do not confuse with mozRTCPeerConnection. This interface is purely for
9 * communication between the PeerConnection JS DOM binding and the C++
10 * implementation in SIPCC.
11 *
12 * See media/webrtc/signaling/include/PeerConnectionImpl.h
13 *
14 */
15
16 interface nsISupports;
17
18 /* Must be created first. Observer events will be dispatched on the thread provided */
19 [ChromeOnly, Constructor]
20 interface PeerConnectionImpl {
21 /* Must be called first. Observer events dispatched on the thread provided */
22 [Throws]
23 void initialize(PeerConnectionObserver observer, Window window,
24 RTCConfiguration iceServers,
25 nsISupports thread);
26 /* JSEP calls */
27 [Throws]
28 void createOffer(optional MediaConstraintsInternal constraints);
29 [Throws]
30 void createAnswer(optional MediaConstraintsInternal constraints);
31 [Throws]
32 void setLocalDescription(long action, DOMString sdp);
33 [Throws]
34 void setRemoteDescription(long action, DOMString sdp);
35
36 /* Stats call, calls either |onGetStatsSuccess| or |onGetStatsError| on our
37 observer. (see the |PeerConnectionObserver| interface) */
38 [Throws]
39 void getStats(MediaStreamTrack? selector);
40
41 /* Adds the stream created by GetUserMedia */
42 [Throws]
43 void addStream(MediaStream stream,
44 optional MediaConstraintsInternal constraints);
45 [Throws]
46 void removeStream(MediaStream stream);
47 [Throws]
48 void closeStreams();
49
50 sequence<MediaStream> getLocalStreams();
51 sequence<MediaStream> getRemoteStreams();
52
53 /* As the ICE candidates roll in this one should be called each time
54 * in order to keep the candidate list up-to-date for the next SDP-related
55 * call PeerConnectionImpl does not parse ICE candidates, just sticks them
56 * into the SDP.
57 */
58 [Throws]
59 void addIceCandidate(DOMString candidate, DOMString mid, unsigned short level);
60
61 /* Puts the SIPCC engine back to 'kIdle', shuts down threads, deletes state */
62 void close();
63
64 /* Attributes */
65 readonly attribute DOMString fingerprint;
66 readonly attribute DOMString localDescription;
67 readonly attribute DOMString remoteDescription;
68
69 readonly attribute PCImplIceConnectionState iceConnectionState;
70 readonly attribute PCImplIceGatheringState iceGatheringState;
71 readonly attribute PCImplReadyState readyState;
72 readonly attribute PCImplSignalingState signalingState;
73 readonly attribute PCImplSipccState sipccState;
74
75 /* Data channels */
76 [Throws]
77 DataChannel createDataChannel(DOMString label, DOMString protocol,
78 unsigned short type, boolean outOfOrderAllowed,
79 unsigned short maxTime, unsigned short maxNum,
80 boolean externalNegotiated, unsigned short stream);
81 [Throws]
82 void connectDataConnection(unsigned short localport,
83 unsigned short remoteport, unsigned short numstreams);
84 };

mercurial