summaryrefslogtreecommitdiffstats
path: root/test.html
blob: 915655289459baf6cfce2b735b434d066f15c3c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<html>
<head>
  <script type="text/javascript" src="libxmp.js"></script>
  <script type="text/javascript" src="chiptune.js"></script>

  <script type="text/javascript">
    // support webkit-prefix for chrome
    if (window.webkitAudioContext !== undefined) {
      AudioContext = webkitAudioContext;
    }

    var context = new AudioContext();

    var player = new ChiptunePlayer(context.destination);

    var playClicked = function() {
      player.play();
    };

    var pauseClicked = function() {
      player.pause();
    };

    var resumeClicked = function() {
      player.resume();
    };

    var loopChanged = function() {
      player.setLooping(this.checked);
    };

    var unloadClicked = function() {
      player.unload();
      document.getElementById("play").removeEventListener('click', playClicked, false);
      document.getElementById("pause").removeEventListener('click', pauseClicked, false);
      document.getElementById("resume").removeEventListener('click', resumeClicked, false);
      document.getElementById("unload").removeEventListener('click', unloadClicked, false);
      document.getElementById("loop").removeEventListener('change', loopChanged, false);
    };

    window.onload = function() {
      document.getElementById("files").addEventListener('change', function(evt) {
        var loop = document.getElementById("loop").checked;
        player.load(evt.target.files[0], loop, function(err) {
          if (err) { return console.log(err) };

          document.getElementById("play").addEventListener('click', playClicked, false);
          document.getElementById("pause").addEventListener('click', pauseClicked, false);
          document.getElementById("resume").addEventListener('click', resumeClicked, false);
          document.getElementById("unload").addEventListener('click', unloadClicked, false);
          document.getElementById("loop").addEventListener('change', loopChanged, false);
        });
      }, false);
    }
  </script>
</head>
<body>
  <input type="file" id="files" name="files"/>
  <button id="play">Play</button>
  <button id="pause">Pause</button>
  <button id="resume">Resume</button>
  <button id="unload">Unload</button>
  <input id="loop" type="checkbox">Looping</input>
</body>
</html>