UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

90 lines (89 loc) 2.91 kB
"use strict"; export class AudioPlayerCallbacksManagerClass { constructor() { this._callbacksByPlayer = /* @__PURE__ */ new Map(); } static instance() { return this._instance = this._instance || new AudioPlayerCallbacksManagerClass(); } registerPlayer(player) { if (this._callbacksByPlayer.get(player)) { return; } this._callbacksByPlayer.set(player, {}); } deregisterPlayer(player) { this._callbacksByPlayer.delete(player); } // onBeforePlay onBeforePlay(player, callback) { this._on(player, "onBeforePlay", callback); } removeOnBeforePlay(player, callback) { this._removeCallback(player, "onBeforePlay", callback); } runOnBeforePlayCallbacks(player, offset) { var _a, _b; (_b = (_a = this._callbacksByPlayer.get(player)) == null ? void 0 : _a.onBeforePlay) == null ? void 0 : _b.forEach((callback) => callback(offset)); } // onPlaySuccess onPlaySuccess(player, callback) { this._on(player, "onPlaySuccess", callback); } removeOnPlaySuccess(player, callback) { this._removeCallback(player, "onPlaySuccess", callback); } runOnPlaySuccessCallbacks(player) { var _a, _b; (_b = (_a = this._callbacksByPlayer.get(player)) == null ? void 0 : _a.onPlaySuccess) == null ? void 0 : _b.forEach((callback) => callback()); } // onPlayError onPlayError(player, callback) { this._on(player, "onPlayError", callback); } removeOnPlayError(player, callback) { this._removeCallback(player, "onPlayError", callback); } runOnPlayErrorCallbacks(player, err) { var _a, _b; (_b = (_a = this._callbacksByPlayer.get(player)) == null ? void 0 : _a.onPlayError) == null ? void 0 : _b.forEach((callback) => callback(err)); } // onStop onStop(player, callback) { this._on(player, "onStop", callback); } removeOnStop(player, callback) { this._removeCallback(player, "onStop", callback); } runOnStopCallbacks(player) { var _a, _b; (_b = (_a = this._callbacksByPlayer.get(player)) == null ? void 0 : _a.onStop) == null ? void 0 : _b.forEach((callback) => callback()); } // generic _on(player, eventName, callback) { var _a; let map = this._callbacksByPlayer.get(player); if (!map) { this.registerPlayer(player); map = this._callbacksByPlayer.get(player); } if (!map) { return; } map[eventName] = map[eventName] || /* @__PURE__ */ new Set(); (_a = map[eventName]) == null ? void 0 : _a.add(callback); } _removeCallback(player, eventName, callback) { var _a; let map = this._callbacksByPlayer.get(player); if (!map) { this.registerPlayer(player); map = this._callbacksByPlayer.get(player); } if (!map) { return; } (_a = map[eventName]) == null ? void 0 : _a.delete(callback); } } export const AudioPlayerCallbacksManager = AudioPlayerCallbacksManagerClass.instance();