|
1 #include "nsIThread.idl" |
|
2 #include "nsIDOMWindow.idl" |
|
3 #include "nsIPropertyBag2.idl" |
|
4 |
|
5 interface nsIDOMMediaStream; |
|
6 interface nsIDOMDataChannel; |
|
7 |
|
8 /* |
|
9 * Manager interface to PeerConnection.js so it is accessible from C++. |
|
10 */ |
|
11 [scriptable, uuid(c2218bd2-2648-4701-8fa6-305d3379e9f8)] |
|
12 interface IPeerConnectionManager : nsISupports |
|
13 { |
|
14 boolean hasActivePeerConnection(in unsigned long innerWindowID); |
|
15 }; |
|
16 |
|
17 %{C++ |
|
18 #define IPEERCONNECTION_MANAGER_CONTRACTID "@mozilla.org/dom/peerconnectionmanager;1" |
|
19 %} |
|
20 |
|
21 /* Do not confuse with nsIDOMRTCPeerConnection. This interface is purely for |
|
22 * communication between the PeerConnection JS DOM binding and the C++ |
|
23 * implementation in SIPCC. |
|
24 * |
|
25 * See media/webrtc/signaling/include/PeerConnectionImpl.h |
|
26 */ |
|
27 [scriptable, uuid(d7dfe148-0416-446b-a128-66a7c71ae8d3)] |
|
28 interface IPeerConnectionObserver : nsISupports |
|
29 { |
|
30 }; |
|
31 |
|
32 [scriptable, uuid(c9c31639-1a49-4533-8429-f6a348c4d8c3)] |
|
33 interface IPeerConnection : nsISupports |
|
34 { |
|
35 const unsigned long kHintAudio = 0x00000001; |
|
36 const unsigned long kHintVideo = 0x00000002; |
|
37 |
|
38 const long kActionNone = -1; |
|
39 const long kActionOffer = 0; |
|
40 const long kActionAnswer = 1; |
|
41 const long kActionPRAnswer = 2; |
|
42 |
|
43 const long kIceGathering = 0; |
|
44 const long kIceWaiting = 1; |
|
45 const long kIceChecking = 2; |
|
46 const long kIceConnected = 3; |
|
47 const long kIceFailed = 4; |
|
48 |
|
49 /* for readyState on Peer Connection */ |
|
50 const long kNew = 0; |
|
51 const long kNegotiating = 1; |
|
52 const long kActive = 2; |
|
53 const long kClosing = 3; |
|
54 const long kClosed = 4; |
|
55 |
|
56 /* for 'type' in DataChannelInit dictionary */ |
|
57 const unsigned short kDataChannelReliable = 0; |
|
58 const unsigned short kDataChannelPartialReliableRexmit = 1; |
|
59 const unsigned short kDataChannelPartialReliableTimed = 2; |
|
60 |
|
61 /* Constants for 'name' in error callbacks */ |
|
62 const unsigned long kNoError = 0; // Test driver only |
|
63 const unsigned long kInvalidConstraintsType = 1; |
|
64 const unsigned long kInvalidCandidateType = 2; |
|
65 const unsigned long kInvalidMediastreamTrack = 3; |
|
66 const unsigned long kInvalidState = 4; |
|
67 const unsigned long kInvalidSessionDescription = 5; |
|
68 const unsigned long kIncompatibleSessionDescription = 6; |
|
69 const unsigned long kIncompatibleConstraints = 7; |
|
70 const unsigned long kIncompatibleMediaStreamTrack = 8; |
|
71 const unsigned long kInternalError = 9; |
|
72 const unsigned long kMaxErrorType = 9; // Same as final error |
|
73 }; |