@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
46 lines (45 loc) • 2.17 kB
TypeScript
import { Player } from 'tone/build/esm/source/buffer/Player';
export type OnBeforePlayCallback = (offset: number) => void;
export type OnPlaySuccessCallback = () => void;
export type OnPlayErrorCallback = (err: unknown) => void;
export type OnStopCallback = () => void;
export interface PlayerCallbacks {
onBeforePlay?: Set<OnBeforePlayCallback>;
onPlaySuccess?: Set<OnPlaySuccessCallback>;
onPlayError?: Set<OnPlayErrorCallback>;
onStop?: Set<OnStopCallback>;
}
export type PlayerEventName = 'onBeforePlay' | 'onPlaySuccess' | 'onPlayError' | 'onStop';
type CallbackByEventNameGeneric = {
[key in PlayerEventName]: OnBeforePlayCallback | OnPlaySuccessCallback | OnPlayErrorCallback | OnStopCallback;
};
export interface CallbackByEventName extends CallbackByEventNameGeneric {
onBeforePlay: OnBeforePlayCallback;
onPlaySuccess: OnPlaySuccessCallback;
onPlayError: OnPlayErrorCallback;
onStop: OnStopCallback;
}
export declare class AudioPlayerCallbacksManagerClass {
private static _instance;
private constructor();
static instance(): AudioPlayerCallbacksManagerClass;
private _callbacksByPlayer;
registerPlayer(player: Player): void;
deregisterPlayer(player: Player): void;
onBeforePlay(player: Player, callback: OnBeforePlayCallback): void;
removeOnBeforePlay(player: Player, callback: OnStopCallback): void;
runOnBeforePlayCallbacks(player: Player, offset: number): void;
onPlaySuccess(player: Player, callback: OnPlaySuccessCallback): void;
removeOnPlaySuccess(player: Player, callback: OnStopCallback): void;
runOnPlaySuccessCallbacks(player: Player): void;
onPlayError(player: Player, callback: OnPlayErrorCallback): void;
removeOnPlayError(player: Player, callback: OnStopCallback): void;
runOnPlayErrorCallbacks(player: Player, err: unknown): void;
onStop(player: Player, callback: OnStopCallback): void;
removeOnStop(player: Player, callback: OnStopCallback): void;
runOnStopCallbacks(player: Player): void;
private _on;
private _removeCallback;
}
export declare const AudioPlayerCallbacksManager: AudioPlayerCallbacksManagerClass;
export {};