tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

buffer-loader.js (1177B)


      1 /* Taken from
      2   https://raw.github.com/WebKit/webkit/master/LayoutTests/webaudio/resources/buffer-loader.js */
      3 
      4 function BufferLoader(context, urlList, callback) {
      5  this.context = context;
      6  this.urlList = urlList;
      7  this.onload = callback;
      8  this.bufferList = new Array();
      9  this.loadCount = 0;
     10 }
     11 
     12 BufferLoader.prototype.loadBuffer = function(url, index) {
     13  // Load buffer asynchronously
     14  var request = new XMLHttpRequest();
     15  request.open("GET", url, true);
     16  request.responseType = "arraybuffer";
     17 
     18  var loader = this;
     19 
     20  request.onload = function() {
     21    loader.context.decodeAudioData(request.response, decodeSuccessCallback, decodeErrorCallback);
     22  };
     23 
     24  request.onerror = function() {
     25    alert('BufferLoader: XHR error');
     26  };
     27 
     28  var decodeSuccessCallback = function(buffer) {
     29    loader.bufferList[index] = buffer;
     30    if (++loader.loadCount == loader.urlList.length)
     31      loader.onload(loader.bufferList);
     32  };
     33 
     34  var decodeErrorCallback = function() {
     35    alert('decodeErrorCallback: decode error');
     36  };
     37 
     38  request.send();
     39 }
     40 
     41 BufferLoader.prototype.load = function() {
     42  for (var i = 0; i < this.urlList.length; ++i)
     43    this.loadBuffer(this.urlList[i], i);
     44 }