{"version":3,"file":"events.js","names":[],"sources":["esm/platform/audio/events.js"],"sourcesContent":["function createPlayerEvents(read, updateIntervalMs) {\n  const listeners = /* @__PURE__ */ new Set();\n  let timer = null;\n  function emit() {\n    const status = read();\n    listeners.forEach((listener) => listener(status));\n  }\n  function stop() {\n    if (timer !== null) {\n      clearInterval(timer);\n      timer = null;\n    }\n  }\n  return {\n    add(event, listener) {\n      if (event !== \"playbackStatusUpdate\") {\n        throw new Error(\"AudioPlayer.addListener: expected 'playbackStatusUpdate'\");\n      }\n      if (typeof listener !== \"function\") {\n        throw new Error(\"AudioPlayer.addListener: expected a listener function\");\n      }\n      listeners.add(listener);\n      if (timer === null) timer = setInterval(emit, updateIntervalMs);\n      queueMicrotask(() => {\n        if (listeners.has(listener)) listener(read());\n      });\n      return {\n        remove: () => {\n          listeners.delete(listener);\n          if (listeners.size === 0) stop();\n        }\n      };\n    },\n    removeAll() {\n      listeners.clear();\n      stop();\n    }\n  };\n}\nexport {\n  createPlayerEvents\n};\n//# sourceMappingURL=events.js.map\n"],"mappings":";AAAA,SAAS,mBAAmB,MAAM,kBAAkB;CAClD,MAAM,4BAA4B,IAAI,IAAI;CAC1C,IAAI,QAAQ;CACZ,SAAS,OAAO;EACd,MAAM,SAAS,KAAK;EACpB,UAAU,SAAS,aAAa,SAAS,MAAM,CAAC;CAClD;CACA,SAAS,OAAO;EACd,IAAI,UAAU,MAAM;GAClB,cAAc,KAAK;GACnB,QAAQ;EACV;CACF;CACA,OAAO;EACL,IAAI,OAAO,UAAU;GACnB,IAAI,UAAU,wBAAwB;IACpC,MAAM,IAAI,MAAM,0DAA0D;GAC5E;GACA,IAAI,OAAO,aAAa,YAAY;IAClC,MAAM,IAAI,MAAM,uDAAuD;GACzE;GACA,UAAU,IAAI,QAAQ;GACtB,IAAI,UAAU,MAAM,QAAQ,YAAY,MAAM,gBAAgB;GAC9D,qBAAqB;IACnB,IAAI,UAAU,IAAI,QAAQ,GAAG,SAAS,KAAK,CAAC;GAC9C,CAAC;GACD,OAAO,EACL,cAAc;IACZ,UAAU,OAAO,QAAQ;IACzB,IAAI,UAAU,SAAS,GAAG,KAAK;GACjC,EACF;EACF;EACA,YAAY;GACV,UAAU,MAAM;GAChB,KAAK;EACP;CACF;AACF"}