From 2dd734125b85722b1dc4119685263222da6a5087 Mon Sep 17 00:00:00 2001 From: bennordgengo <58412387+bennordgengo@users.noreply.github.com> Date: Tue, 14 Apr 2020 05:02:05 +0900 Subject: [PATCH] wavesurfer.js add many missing methods in version 3.3 (#43851) * add types for v3.3.1, fix alphabetical order * header remove patch version * Object to object --- types/wavesurfer.js/index.d.ts | 93 ++++++++++++++++++++++++++-------- 1 file changed, 73 insertions(+), 20 deletions(-) diff --git a/types/wavesurfer.js/index.d.ts b/types/wavesurfer.js/index.d.ts index 85364ae50e..e152ab4827 100644 --- a/types/wavesurfer.js/index.d.ts +++ b/types/wavesurfer.js/index.d.ts @@ -1,6 +1,8 @@ -// Type definitions for wavesurfer.js 3.2 +// Type definitions for wavesurfer.js 3.3 // Project: https://github.com/katspaugh/wavesurfer.js -// Definitions by: Yusuke Higuchi , Egor Gorbachev +// Definitions by: Yusuke Higuchi +// Egor Gorbachev +// Ben Nordstrom // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 @@ -19,40 +21,61 @@ declare class Observer { declare class WaveSurfer extends Observer { constructor(params: WaveSurfer.WaveSurferParams); + static VERSION: string; static util: WaveSurfer.WaveSurferUtil; static create(params: WaveSurfer.WaveSurferParams): WaveSurfer; // [x: string]: any // pluginName -> WaveSurferPlugin // propertyNameAddedByPlugin -> any [x: string]: any; + backend: WaveSurfer.WaveSurferBackend; util: WaveSurfer.WaveSurferUtil; + addPlugin(plugin: WaveSurfer.PluginDefinition): WaveSurfer; + cancelAjax(): void; destroy(): void; + destroyPlugin(name: string): WaveSurfer; empty(): void; + exportPCM(length?: number, accuracy?: number, noWindow?: boolean, start?: number, end?: number): Promise; + exportImage(format?: string, quality?: number, type?: 'dataURL' | 'blob'): string | string[] | Promise; + getActivePlugins(): object; + getBackgroundColor(): string; getCurrentTime(): number; + getCursorColor(): string; getDuration(): number; - getPlaybackRate(): number; - getVolume(): number; - getMute(): boolean; getFilters(): AudioNode[]; + getHeight(): number; + getPlaybackRate(): number; + getProgressColor(): string; + getMute(): boolean; + getVolume(): number; getWaveColor(): string; - exportPCM(length: number, accuracy: number, noWindow?: boolean, start?: number): string; - exportImage(format: string, quality: number): string; - init(): void; + init(): WaveSurfer; + initPlugin(name: string): WaveSurfer; isPlaying(): boolean; isReady(): boolean; - load(url: string | HTMLMediaElement, peaks?: ReadonlyArray | ReadonlyArray>, preload?: string, duration?: number): void; + load( + url: string | HTMLMediaElement, + peaks?: ReadonlyArray | ReadonlyArray>, + preload?: string, + duration?: number, + ): void; loadBlob(url: Blob | File): void; pause(): Promise | undefined; play(start?: number, end?: number): Promise | undefined; playPause(): Promise | undefined; + registerPlugins(plugins: WaveSurfer.PluginDefinition[]): WaveSurfer; seekAndCenter(progress: number): void; seekTo(progress: number): void; + setBackgroundColor(color: string): void; + setCurrentTime(seconds: number): void; + setCursorColor(color: string): void; setHeight(height: number): void; - setPlaybackRate(rate: number): void; - setVolume(newVolume: number): void; setMute(mute: boolean): void; + setPlaybackRate(rate: number): void; + setPlayEnd(position: number): void; + setVolume(newVolume: number): void; setWaveColor(color: string): void; - setSinkId(deviceId: string): void; + setSinkId(deviceId: string): Promise; skip(offset: number): void; skipBackward(seconds?: number): void; skipForward(seconds?: number): void; @@ -72,9 +95,24 @@ declare namespace WaveSurfer { clearWave(): void; createWrapper(): void; destroy(): void; - drawBars(peaks: ReadonlyArray | ReadonlyArray>, channelIndex: number, start: number, end: number): void; - drawPeaks(peaks: ReadonlyArray | ReadonlyArray>, length: number, start: number, end: number): void; - drawWave(peaks: ReadonlyArray | ReadonlyArray>, channelIndex: number, start: number, end: number): void; + drawBars( + peaks: ReadonlyArray | ReadonlyArray>, + channelIndex: number, + start: number, + end: number, + ): void; + drawPeaks( + peaks: ReadonlyArray | ReadonlyArray>, + length: number, + start: number, + end: number, + ): void; + drawWave( + peaks: ReadonlyArray | ReadonlyArray>, + channelIndex: number, + start: number, + end: number, + ): void; getScrollX(): number; getWidth(): number; handleEvent(e: Event, noPrevent: boolean): number; @@ -114,15 +152,21 @@ declare namespace WaveSurfer { audioRate?: number; audioScriptProcessor?: ScriptProcessorNode; autoCenter?: boolean; - backend?: string; + autoCenterRate?: number; + autoCenterImmediately?: boolean; + backend?: 'WebAudio' | 'MediaElement' | 'MediaElementWebAudio'; + backgroundColor?: string; barHeight?: number; - barWidth?: number; - barGap?: number; barRadius?: number; + barGap?: number; + barWidth?: number; + barMinHeight?: number; closeAudioContext?: boolean; container: string | HTMLElement; cursorColor?: string; cursorWidth?: number; + drawingContextAttributes?: object; + duration?: number; fillParent?: boolean; forceDecode?: boolean; height?: number; @@ -139,8 +183,9 @@ declare namespace WaveSurfer { plugins?: PluginDefinition[]; progressColor?: string; removeMediaElementOnDestroy?: boolean; - renderer?: { new(container: HTMLElement, params: WaveSurferParams): WaveRenderer }; + renderer?: { new (container: HTMLElement, params: WaveSurferParams): WaveRenderer }; responsive?: boolean | number; + rtl?: boolean; scrollParent?: boolean; skipLength?: number; splitChannels?: boolean; @@ -153,7 +198,7 @@ declare namespace WaveSurfer { staticProps?: object; deferInit?: boolean; params: object; - instance: { new(params: object, ws: WaveSurfer): WaveSurferPlugin }; + instance: { new (params: object, ws: WaveSurfer): WaveSurferPlugin }; } interface ListenerDescriptor { @@ -171,4 +216,12 @@ declare namespace WaveSurfer { key: string; value: string; } + + interface WaveSurferBackend { + getPeaks( + length: number, + first?: number, + last?: number, + ): ReadonlyArray | ReadonlyArray>; + } }