source: gs3-extensions/web-audio/trunk/js-mad/script/arraybuffer/arraystream.js@ 28388

Last change on this file since 28388 was 28388, checked in by davidb, 11 years ago

Set of JS, CSS, PNG etc web resources to support a mixture of audio player/document display capabilities

File size: 1.3 KB
Line 
1
2Mad.ArrayBuffers.ArrayStream = Mad.ArrayBuffers.ByteStream.extend({
3 init: function (buffer) {
4 this.offset = 0;
5 this.buffer = buffer;
6 this.amountRead = this.buffer.length;
7 this.contentLength = this.buffer.length;
8 this.length = this.amountRead;
9 },
10
11 substream: function (offset, length) {
12 return new Mad.ArrayBuffers.SubStream(this, offset, length);
13 },
14
15 absoluteAvailable: function(n, updated) {
16 return n < this.amountRead;
17 },
18
19 getU8: function(offset, bigEndian) {
20 return this.buffer[offset];
21 },
22
23 seek: function(n) {
24 this.offset += n;
25 },
26
27 read: function(n) {
28 var result = this.peek(n);
29
30 this.seek(n);
31
32 return result;
33 },
34
35 peek: function(n) {
36 if (this.available(n)) {
37 var offset = this.offset;
38
39 var result = this.get(offset, n);
40
41 return result;
42 } else {
43 throw 'TODO: THROW PEEK ERROR!';
44 }
45 },
46
47 get: function(offset, length) {
48 if (offset + length < this.contentLength) {
49 var subarr = this.buffer.subarray(offset, offset + length);
50 return subarr;
51 } else {
52 throw 'TODO: THROW GET ERROR!';
53 }
54 }
55});
Note: See TracBrowser for help on using the repository browser.