Skip to content

Commit b023873

Browse files
committed
Add Typescript types for fmt and data chunks
1 parent 075e220 commit b023873

File tree

1 file changed

+43
-4
lines changed

1 file changed

+43
-4
lines changed

index.d.ts

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)