| /* |
| * Copyright (C) 2012 Google Inc. All rights reserved. |
| * |
| * 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. Neither the name of Google Inc. nor the names of its contributors |
| * may be used to endorse or promote products derived from this |
| * software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "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 COPYRIGHT |
| * OWNER OR CONTRIBUTORS 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. |
| */ |
| |
| module p2p { |
| |
| interface [ |
| Conditional=MEDIA_STREAM, |
| ActiveDOMObject, |
| Constructor(in DOMString serverConfiguration, in [Callback] IceCallback iceCallback), |
| CallWith=ScriptExecutionContext, |
| EventTarget |
| ] PeerConnection00 { |
| // FIXME: Make mediaHints an object |
| SessionDescription createOffer(in [Optional] DOMString mediaHints); |
| |
| // FIXME: Make mediaHints an object |
| SessionDescription createAnswer(in DOMString offer, in [Optional] DOMString mediaHints); |
| |
| // Actions, for setLocalDescription/setRemoteDescription. |
| const unsigned short SDP_OFFER = 0x100; |
| const unsigned short SDP_PRANSWER = 0x200; |
| const unsigned short SDP_ANSWER = 0x300; |
| |
| void setLocalDescription(in unsigned short action, in SessionDescription desc) |
| raises(DOMException); |
| |
| void setRemoteDescription(in unsigned short action, in SessionDescription desc) |
| raises(DOMException); |
| |
| readonly attribute SessionDescription localDescription; |
| |
| readonly attribute SessionDescription remoteDescription; |
| |
| const unsigned short NEW = 0; |
| const unsigned short NEGOTIATING = 1; |
| const unsigned short ACTIVE = 2; |
| const unsigned short CLOSED = 3; |
| readonly attribute unsigned short readyState; |
| |
| // FIXME: Make iceOptions an object |
| void startIce(in [Optional] DOMString iceOptions) |
| raises(DOMException); |
| |
| void processIceMessage(in IceCandidate candidate) |
| raises(DOMException); |
| |
| const unsigned short ICE_GATHERING = 0x100; |
| const unsigned short ICE_WAITING = 0x200; |
| const unsigned short ICE_CHECKING = 0x300; |
| const unsigned short ICE_CONNECTED = 0x400; |
| const unsigned short ICE_COMPLETED = 0x500; |
| const unsigned short ICE_FAILED = 0x600; |
| const unsigned short ICE_CLOSED = 0x700; |
| readonly attribute unsigned short iceState; |
| |
| // FIXME: Make mediaStreamHints an object |
| [StrictTypeChecking] void addStream(in MediaStream stream, in [Optional] DOMString mediaStreamHints) |
| raises(DOMException); |
| [StrictTypeChecking] void removeStream(in MediaStream stream) |
| raises(DOMException); |
| |
| readonly attribute MediaStreamList localStreams; |
| readonly attribute MediaStreamList remoteStreams; |
| |
| void close() |
| raises(DOMException); |
| |
| attribute EventListener onconnecting; |
| attribute EventListener onopen; |
| attribute EventListener onstatechange; |
| attribute EventListener onaddstream; |
| attribute EventListener onremovestream; |
| |
| // EventTarget interface |
| void addEventListener(in DOMString type, |
| in EventListener listener, |
| in [Optional] boolean useCapture); |
| void removeEventListener(in DOMString type, |
| in EventListener listener, |
| in [Optional] boolean useCapture); |
| boolean dispatchEvent(in Event event) |
| raises(EventException); |
| }; |
| |
| } |