@@ -17,7 +17,7 @@ declare module wavefile {
1717 * 'RIFF', 'RIFX' and 'RF64' are supported.
1818 * @type {string }
1919 */
20- container : string ;
20+ container : 'RIFF' | 'RIFX' | 'RF64' ;
2121 /**
2222 * @type {number }
2323 */
@@ -27,12 +27,12 @@ declare module wavefile {
2727 * Always 'WAVE'.
2828 * @type {string }
2929 */
30- format : string ;
30+ format : 'WAVE' ;
3131 /**
3232 * The data of the 'fmt' chunk.
3333 * @type {!Object<string, *> }
3434 */
35- fmt : object ;
35+ fmt : WaveFileFmtChunk ;
3636 /**
3737 * The data of the 'fact' chunk.
3838 * @type {!Object<string, *> }
@@ -78,7 +78,7 @@ declare module wavefile {
7878 * The data of the 'data' chunk.
7979 * @type {!Object<string, *> }
8080 */
81- data : object ;
81+ data : WaveFileDataChunk ;
8282 /**
8383 * The data of the 'LIST' chunks.
8484 * Each item in this list look like this:
@@ -390,4 +390,43 @@ declare module wavefile {
390390 */
391391 get_PMX ( ) : string ;
392392 }
393+
394+ type WaveFileDataChunk = {
395+ /** @type {string } */
396+ chunkId : 'data' ;
397+ /** @type {number } */
398+ chunkSize : number ;
399+ /** @type {!Uint8Array } */
400+ samples : Uint8Array ;
401+ } ;
402+
403+ type WaveFileFmtChunk = {
404+ /** @type {string } */
405+ chunkId : 'fmt ' ;
406+ /** @type {number } */
407+ chunkSize : number ;
408+ /** @type {number } */
409+ audioFormat : number ;
410+ /** @type {number } */
411+ numChannels : number ;
412+ /** @type {number } */
413+ sampleRate : number ;
414+ /** @type {number } */
415+ byteRate : number ;
416+ /** @type {number } */
417+ blockAlign : number ;
418+ /** @type {number } */
419+ bitsPerSample : number ;
420+ /** @type {number } */
421+ cbSize : number ;
422+ /** @type {number } */
423+ validBitsPerSample : number ;
424+ /** @type {number } */
425+ dwChannelMask : number ;
426+ /**
427+ * 4 32-bit values representing a 128-bit ID
428+ * @type {!Array<number> }
429+ */
430+ subformat : readonly [ number , number , number , number ] ;
431+ } ;
393432}
0 commit comments