summaryrefslogtreecommitdiff
path: root/loadMusic.js
blob: 6353ae7a713a52a288983775ecdfe72450ccbc46 (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
self.addEventListener('message', function(e) {
	var data = e.data;
	switch (data.cmd) {
		case 'load':
			var request = new XMLHttpRequest();
//			var req_url = "cgi-bin/proxy?"+encodeURI(data.url);
			var req_url = "cgi-bin/proxy?"+data.url;
			request.open("GET", req_url, true);
			request.responseType = "arraybuffer";

			request.onload = function() {
				var response = ab2str(request.response);
				if(response == "failed")
					self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'Getthing content has failed.'});
				else
					self.postMessage({'result' : 'success', 'url' : data.url, "response" : request.response});
			}

			request.onerror = function() {
				self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'BufferLoader: XHR error'});
			}

			request.send();
		
			break;
		default:
			self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'Unknown command: ' + data.msg});
	};
}, false);

function ab2str(buf) {
	return String.fromCharCode.apply(null, new Uint8Array(buf, 0, 6));
}