mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 06:47:03 +00:00
[@types/wav] adds typings for wav (#39065)
* wip * [@types/wav] add type definitions for wav
This commit is contained in:
committed by
Andrew Branch
parent
bb43717ca3
commit
6bd457dec0
Vendored
+74
@@ -0,0 +1,74 @@
|
||||
// Type definitions for wav 1.0
|
||||
// Project: https://github.com/TooTallNate/node-wav#readme
|
||||
// Definitions by: Matthew Peveler <https://github.com/MasterOdin>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
import { Transform, TransformOptions } from "stream";
|
||||
import { WriteStream } from 'fs';
|
||||
|
||||
export interface Format {
|
||||
audioFormat: number;
|
||||
endianness: 'LE' | 'BE';
|
||||
channels: number;
|
||||
sampleRate: number;
|
||||
byteRate: number;
|
||||
blockAlign: number;
|
||||
bitDepth: number;
|
||||
signed: boolean;
|
||||
}
|
||||
|
||||
export interface UnknownChunk {
|
||||
id: string;
|
||||
data: any;
|
||||
}
|
||||
|
||||
export class Reader extends Transform {
|
||||
constructor(opts?: TransformOptions);
|
||||
|
||||
addListener(event: "format", listener: (format: Format) => void): this;
|
||||
addListener(event: "chunk", listener: (unknownChunk: UnknownChunk) => void): this;
|
||||
addListener(event: string, listener: (...args: any[]) => void): this;
|
||||
|
||||
on(event: "format", listener: (format: Format) => void): this;
|
||||
on(event: "chunk", listener: (unknownChunk: UnknownChunk) => void): this;
|
||||
on(event: string, listener: (...args: any[]) => void): this;
|
||||
}
|
||||
|
||||
export interface WriterOptions extends TransformOptions {
|
||||
format?: number;
|
||||
channels?: number;
|
||||
sampleRate?: number;
|
||||
bitDepth?: number;
|
||||
}
|
||||
|
||||
export class Writer extends Transform {
|
||||
endianness: 'LE';
|
||||
format: number;
|
||||
channels: number;
|
||||
sampleRate: number;
|
||||
bitDepth: number;
|
||||
bytesProcessed: number;
|
||||
|
||||
constructor(opts?: WriterOptions);
|
||||
|
||||
addListener(event: "header", listener: (header: Buffer) => void): this;
|
||||
addListener(event: string, listener: (...args: any[]) => void): this;
|
||||
|
||||
on(event: "header", listener: (header: Buffer) => void): this;
|
||||
on(event: string, listener: (...args: any[]) => void): this;
|
||||
}
|
||||
|
||||
export class FileWriter extends Writer {
|
||||
path: string;
|
||||
file: WriteStream;
|
||||
|
||||
constructor(path: string, opts?: WriterOptions);
|
||||
|
||||
addListener(event: "done", listener: () => void): this;
|
||||
addListener(event: string, listener: (...args: any[]) => void): this;
|
||||
|
||||
on(event: "done", listener: () => void): this;
|
||||
on(event: string, listener: (...args: any[]) => void): this;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"wav-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
@@ -0,0 +1,28 @@
|
||||
import { createReadStream } from 'fs';
|
||||
import { Reader, Writer, FileWriter } from 'wav';
|
||||
|
||||
const file = createReadStream('track01.wav');
|
||||
const reader = new Reader();
|
||||
const reader2 = new Reader();
|
||||
|
||||
const writer = new Writer({
|
||||
sampleRate: 16000,
|
||||
channels: 1
|
||||
});
|
||||
|
||||
const fileWriter = new FileWriter('./test.wav', {
|
||||
sampleRate: 16000,
|
||||
channels: 1
|
||||
});
|
||||
|
||||
reader.on('format', (format) => {
|
||||
console.log(format);
|
||||
reader.pipe(writer);
|
||||
});
|
||||
|
||||
reader2.on('format', (format) => {
|
||||
console.log(format);
|
||||
reader2.pipe(fileWriter);
|
||||
});
|
||||
|
||||
file.pipe(reader);
|
||||
Reference in New Issue
Block a user