UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

41 lines (39 loc) • 1.02 kB
function createPlayerEvents(read, updateIntervalMs) { const listeners = /* @__PURE__ */ new Set(); let timer = null; function emit() { const status = read(); listeners.forEach((listener) => listener(status)); } function stop() { if (timer !== null) { clearInterval(timer); timer = null; } } return { add(event, listener) { if (event !== "playbackStatusUpdate") { throw new Error("AudioPlayer.addListener: expected 'playbackStatusUpdate'"); } if (typeof listener !== "function") { throw new Error("AudioPlayer.addListener: expected a listener function"); } listeners.add(listener); if (timer === null) timer = setInterval(emit, updateIntervalMs); queueMicrotask(() => { if (listeners.has(listener)) listener(read()); }); return { remove: () => { listeners.delete(listener); if (listeners.size === 0) stop(); } }; }, removeAll() { listeners.clear(); stop(); } }; } export { createPlayerEvents }; //# sourceMappingURL=events.mjs.map