<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
  <title>WebRTC PeerConnection Manual Test</title>
  <!-- Load the polyfill to switch-hit between Chrome and Firefox -->
  <script src="adapter.js"></script>
  <script src="peerconnection_manual.js"></script>
  <link rel="StyleSheet" href="stylesheet.css">
  <meta charset="utf-8">
</head>
<body>

<div id="wrapper">
  <div id="header" hidden>
    GetUserMedia <a href="http://goo.gl/V7cZg">MediaStreamConstraints</a>:
    <input type="text" id="getusermedia-constraints" wrap="soft">
    Audio<input type="checkbox" id="audio" checked
        onclick="updateGetUserMediaConstraints();"/>
    Video<input type="checkbox" id="video" checked
        onclick="updateGetUserMediaConstraints();"/>
    Screen capture<input type="checkbox" id="screencapture"
        onclick="updateGetUserMediaConstraints();"/>
    <button class="button-green" id="re-request"
        onclick="getUserMediaFromHere();">Request GetUserMedia</button><br/>
    Audio source <select class="drop-down" id="audiosrc"
        onchange="updateGetUserMediaConstraints();"></select>
    Video source <select class="drop-down" id="videosrc"
        onchange="updateGetUserMediaConstraints();"></select>
    Optional min size <input type="text" id="video-width" value="1280"
        size="5px" onblur="updateGetUserMediaConstraints();">
    x <input type="text" id="video-height" value="720" size="5px"
        onblur="updateGetUserMediaConstraints();">
    <button id="get-devices" onclick="getDevices();">
        Get devices</button>
    Onload<input type="checkbox" id="get-devices-onload">
    You can also use <a href="constraints.html">constraints.html</a>&nbsp;&nbsp;
    <a href="peerconnection-help.html" target="_blank">Help</a>
    <br/>
  </div>
    <button id="get-devices" onclick="startDrawingOnCanvas();">
    Start drawing on Canvas for input</button>

  <div id="container">
    <div class="left">
        <div>
          <h2>Local Preview</h2>
          <video width="320" height="240" id="local-view" loop hidden
              muted>
          <source src="big-buck-bunny_trailer.webm" type="video/webm"  />
          </video>
          <canvas id="c" width="320" height="240"></canvas>
        </div>
        <div>
          <div>
            Size: <div id="local-view-size" class="inline-contents"></div>
            <div id="local-view-stream-size" class="inline-contents">(stream
                size: N/A)</div><br/>
          </div>
          <div>
            Resize: <button onclick="updateVideoTagSize('local-view')"> To
                stream size</button>
            <button onclick="updateVideoTagSize('local-view', 320, 240);">
                320x240</button>
            <button onclick="updateVideoTagSize('local-view', 640, 480);">
                640x480</button>
          </div>
        </div>

      <h2>Send on data channel</h2>
      <input type="text" id="data-channel-send" size="10" />
      <button onclick="sendDataFromHere();">Send data</button><br>

      <h2>Settings</h2>
      Server [<a href="" onclick="showServerHelp();">?</a>]:
      <input type="text" id="pc-server" size="30"
          value="http://localhost:8888"/>
      Peer ID: <input type="text" id="peer-id" size="10" />
      <button class="button-green" id="connect" onclick="connectFromHere();">
          Connect</button><br/>

      PeerConnection Constraints:
      CPU overuse <input type="checkbox" id="cpuoveruse-detection"
          onclick="setPeerConnectionConstraints();" checked="true"/>
      RTP <input type="checkbox" id="data-channel-type-rtp"
          onclick="setPeerConnectionConstraints();"><br/>
      <input class="width-100" type="text" id="pc-constraints" value="{}" ><br/>
      PeerConnection <a href="http://goo.gl/xVi12">
          createOffer MediaConstraints:</a><br/>
      <input type="text" class="width-100" id="pc-createoffer-constraints"
          value="{}"/><br/>
      PeerConnection <a href="http://goo.gl/0TjfX">
          createAnswer MediaConstraints:</a><br/>
      <input type="text" class="width-100" id="pc-createanswer-constraints"
          value="{}"/><br/>

      Call:
      <button class="button-green" onclick="negotiateCallFromHere();">Negotiate
          </button>
      <button class="button-red" onclick="hangUpFromHere();">Hang up</button>
          <br/>

      Local Stream:
      <button class="button-green" onclick="addLocalStreamFromHere();">Add
          </button>
      <button class="button-red" onclick="removeLocalStreamFromHere();">Remove
          </button>
      <button class="button-red" onclick="stopLocalFromHere();">Stop</button>
      <button onclick="toggleLocalVideoFromHere();">Toggle Video</button>
      <button onclick="toggleLocalAudioFromHere();">Toggle Audio</button><br/>

      Remote Stream:
      <button onclick="toggleRemoteVideoFromHere();">Toggle Video</button>
      <button onclick="toggleRemoteAudioFromHere();">Toggle Audio</button><br/>

      Data Channel:
      <button onclick="createDataChannelFromHere();">Create</button>
      <button onclick="closeDataChannelFromHere();">Close</button>
      status:
      <input type="text" id="data-channel-status" size="10" value="not created"
          disabled="true" /><br/>

      DTMF Sender:
      <button onclick="createDtmfSenderFromHere();">Create</button>
      tones:
      <input type="text" id="dtmf-tones" size="10" value="123,abc" />
      duration(ms):
      <input type="text" id="dtmf-tones-duration" size="10" value="100" />
      gap(ms):
      <input type="text" id="dtmf-tones-gap" size="10" value="50" />
      <button onclick="insertDtmfFromHere();">Send</button><br/>

      Options:
      <input type="checkbox" id="force-isac" onclick="forceIsacChanged();"/>
      Force iSAC in Outgoing SDP<br/>
      <button onclick="clearLog();">Clear Logs</button>
    </div>

    <div class="right">
      <div>
        <h2>Remote Video</h2>
          <video width="320" height="240" id="remote-view" autoplay="autoplay">
              </video><br/>
      </div>
      <div>
        <div>
          Size: <div id="remote-view-size" class="inline-contents"></div>
          <div id="remote-view-stream-size" class="inline-contents">(stream size
              :N/A)</div><br/>
        </div>
        <div>
          Resize: <button onclick="updateVideoTagSize('remote-view')"> To
              stream size</button>
          <button onclick="updateVideoTagSize('remote-view', 320, 240);">
              320x240</button>
          <button onclick="updateVideoTagSize('remote-view', 640, 480);">
              640x480</button>
        </div>
      </div>

      <h2>Received on data channel</h2>
      <textarea id="data-channel-receive" rows="7" cols="40" disabled="true">
          </textarea>

      <h2>Sent DTMF tones</h2>
      <textarea id="dtmf-tones-sent" rows="7" cols="40" disabled="true">
          </textarea>
    </div>

    <div id="footer">
      <div class="left">
        <h2>Messages</h2>
        <pre id="messages"></pre>
      </div>

      <div class="right">
        <h2>Debug</h2>
        <pre id="debug"></pre>
      </div>
    </div>
  </div>
</div>
</body>

<script>

  function startDrawingOnCanvas() {
    var v = document.getElementById('local-view');
    v.play();
    var c = document.getElementById('c');

    var context = c.getContext('2d');
    v.addEventListener('play', function(){
      draw(this,context,c.clientWidth,c.clientHeight);
    },false);

  }

  function draw(v,c,w,h) {
    if(v.paused || v.ended) return false;
    c.drawImage(v,0,0,w,h);
    setTimeout(draw,20,v,c,w,h);
  }

</script>
</html>