diff --git a/types/pseudo-audio-param/index.d.ts b/types/pseudo-audio-param/index.d.ts new file mode 100644 index 0000000000..beaf205b7d --- /dev/null +++ b/types/pseudo-audio-param/index.d.ts @@ -0,0 +1,47 @@ +// Type definitions for pseudo-audio-param 1.3 +// Project: https://github.com/mohayonao/pseudo-audio-param/ +// Definitions by: Drew Petersen +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare module "pseudo-audio-param" { + export = PseudoAudioParam; +} + +interface PseudoAudioParamEvent { + type: string; + time: number; +} + +/** Simulate scheduled AudioParam values */ +declare class PseudoAudioParam { + events: PseudoAudioParamEvent[]; + + constructor(defaultValue: number); + + /** + * Return scheduled value at time + */ + getValueAtTime(time: number): number; + + /** + * Apply scheduled methods to the provided audioParam. If reset is `true`, + * cancel all events of AudioParam before applying + */ + applyTo(audioParam: AudioParam, reset: boolean): PseudoAudioParam; + + setValueAtTime(value: number, time: number): PseudoAudioParam; + linearRampToValueAtTime(value: number, time: number): PseudoAudioParam; + exponentialRampToValueAtTime(value: number, time: number): PseudoAudioParam; + setTargetAtTime( + value: number, + time: number, + timeConstant: number + ): PseudoAudioParam; + setValueCurveAtTime( + values: number[], + time: number, + duration: number + ): PseudoAudioParam; + cancelScheduledValues(time: number): PseudoAudioParam; + cancelAndHoldAtTime(time: number): PseudoAudioParam; +} diff --git a/types/pseudo-audio-param/pseudo-audio-param-tests.ts b/types/pseudo-audio-param/pseudo-audio-param-tests.ts new file mode 100644 index 0000000000..0c0bfe7b90 --- /dev/null +++ b/types/pseudo-audio-param/pseudo-audio-param-tests.ts @@ -0,0 +1,9 @@ +import PseudoAudioParam = require('pseudo-audio-param'); +const p = new PseudoAudioParam(1); +const v: number = p.getValueAtTime(0.1); + +const ctx = new AudioContext(); +const gain = new GainNode(ctx); +p.applyTo(gain.gain, false); + +p.setValueAtTime(0, 1); diff --git a/types/pseudo-audio-param/tsconfig.json b/types/pseudo-audio-param/tsconfig.json new file mode 100644 index 0000000000..58c4d8e868 --- /dev/null +++ b/types/pseudo-audio-param/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "pseudo-audio-param-tests.ts" + ] +} diff --git a/types/pseudo-audio-param/tslint.json b/types/pseudo-audio-param/tslint.json new file mode 100644 index 0000000000..c9579fee14 --- /dev/null +++ b/types/pseudo-audio-param/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "no-single-declare-module": false, + "no-declare-current-package": false + } +}