react-native-audio-api 0.6.0-rc.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +35 -2
  2. package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +4 -0
  3. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +31 -17
  4. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +1 -3
  5. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +56 -2
  6. package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +0 -12
  7. package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +35 -12
  8. package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +30 -29
  9. package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +20 -22
  10. package/android/src/main/java/com/swmansion/audioapi/system/MediaReceiver.kt +19 -9
  11. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +30 -11
  12. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +34 -27
  13. package/android/src/main/java/com/swmansion/audioapi/system/VolumeChangeListener.kt +10 -5
  14. package/android/src/oldarch/NativeAudioAPIModuleSpec.java +39 -0
  15. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +20 -14
  16. package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +2 -3
  17. package/common/cpp/audioapi/HostObjects/AudioNodeHostObject.h +24 -11
  18. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +1 -0
  19. package/common/cpp/audioapi/HostObjects/AudioRecorderHostObject.h +10 -89
  20. package/common/cpp/audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h +3 -24
  21. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +2 -2
  22. package/common/cpp/audioapi/HostObjects/OscillatorNodeHostObject.h +2 -3
  23. package/common/cpp/audioapi/core/AudioContext.cpp +4 -1
  24. package/common/cpp/audioapi/core/AudioContext.h +1 -1
  25. package/common/cpp/audioapi/core/AudioNode.cpp +31 -2
  26. package/common/cpp/audioapi/core/AudioNode.h +7 -1
  27. package/common/cpp/audioapi/core/AudioParam.cpp +84 -2
  28. package/common/cpp/audioapi/core/AudioParam.h +14 -1
  29. package/common/cpp/audioapi/core/BaseAudioContext.cpp +6 -1
  30. package/common/cpp/audioapi/core/BaseAudioContext.h +7 -1
  31. package/common/cpp/audioapi/core/OfflineAudioContext.cpp +3 -2
  32. package/common/cpp/audioapi/core/OfflineAudioContext.h +1 -1
  33. package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +28 -26
  34. package/common/cpp/audioapi/core/effects/GainNode.cpp +9 -9
  35. package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +5 -2
  36. package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +56 -0
  37. package/common/cpp/audioapi/core/inputs/AudioRecorder.h +13 -13
  38. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +14 -10
  39. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +1 -1
  40. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +7 -6
  41. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +5 -3
  42. package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +15 -10
  43. package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +35 -1
  44. package/common/cpp/audioapi/core/utils/AudioNodeManager.h +15 -1
  45. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +108 -0
  46. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +62 -0
  47. package/common/cpp/audioapi/events/AudioEventHandlerRegistryHostObject.h +48 -0
  48. package/common/cpp/audioapi/jsi/JsiPromise.cpp +3 -4
  49. package/ios/audioapi/ios/AudioAPIModule.h +13 -0
  50. package/ios/audioapi/ios/AudioAPIModule.mm +115 -6
  51. package/ios/audioapi/ios/core/IOSAudioRecorder.h +2 -10
  52. package/ios/audioapi/ios/core/IOSAudioRecorder.mm +6 -17
  53. package/ios/audioapi/ios/core/NativeAudioPlayer.m +2 -0
  54. package/ios/audioapi/ios/core/NativeAudioRecorder.m +7 -3
  55. package/ios/audioapi/ios/events/IOSAudioEventHandlerRegistry.h +7 -0
  56. package/ios/audioapi/ios/events/IOSAudioEventHandlerRegistry.mm +12 -0
  57. package/ios/audioapi/ios/system/AudioEngine.h +5 -0
  58. package/ios/audioapi/ios/system/AudioEngine.mm +7 -15
  59. package/ios/audioapi/ios/system/AudioSessionManager.h +1 -1
  60. package/ios/audioapi/ios/system/AudioSessionManager.mm +2 -18
  61. package/ios/audioapi/ios/system/LockScreenManager.h +3 -3
  62. package/ios/audioapi/ios/system/LockScreenManager.mm +36 -48
  63. package/ios/audioapi/ios/system/NotificationManager.h +3 -3
  64. package/ios/audioapi/ios/system/NotificationManager.mm +21 -29
  65. package/lib/commonjs/api.js +4 -4
  66. package/lib/commonjs/api.js.map +1 -1
  67. package/lib/commonjs/core/AudioBufferSourceNode.js +2 -2
  68. package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
  69. package/lib/commonjs/core/AudioNode.js +8 -2
  70. package/lib/commonjs/core/AudioNode.js.map +1 -1
  71. package/lib/commonjs/core/AudioParam.js +2 -1
  72. package/lib/commonjs/core/AudioParam.js.map +1 -1
  73. package/lib/commonjs/core/AudioRecorder.js +11 -28
  74. package/lib/commonjs/core/AudioRecorder.js.map +1 -1
  75. package/lib/commonjs/core/AudioScheduledSourceNode.js +4 -1
  76. package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
  77. package/lib/commonjs/core/BiquadFilterNode.js +4 -4
  78. package/lib/commonjs/core/BiquadFilterNode.js.map +1 -1
  79. package/lib/commonjs/core/GainNode.js +1 -1
  80. package/lib/commonjs/core/GainNode.js.map +1 -1
  81. package/lib/commonjs/core/OscillatorNode.js +2 -2
  82. package/lib/commonjs/core/OscillatorNode.js.map +1 -1
  83. package/lib/commonjs/core/StereoPannerNode.js +1 -1
  84. package/lib/commonjs/core/StereoPannerNode.js.map +1 -1
  85. package/lib/commonjs/events/AudioEventEmitter.js +22 -0
  86. package/lib/commonjs/events/AudioEventEmitter.js.map +1 -0
  87. package/lib/commonjs/events/AudioEventSubscription.js +20 -0
  88. package/lib/commonjs/events/AudioEventSubscription.js.map +1 -0
  89. package/lib/commonjs/events/index.js +21 -0
  90. package/lib/commonjs/events/index.js.map +1 -0
  91. package/lib/commonjs/events/types.js +6 -0
  92. package/lib/commonjs/events/types.js.map +1 -0
  93. package/lib/commonjs/hooks/useSytemVolume.js +1 -1
  94. package/lib/commonjs/hooks/useSytemVolume.js.map +1 -1
  95. package/lib/commonjs/specs/NativeAudioAPIModule.js +3 -3
  96. package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
  97. package/lib/commonjs/specs/index.js +2 -16
  98. package/lib/commonjs/specs/index.js.map +1 -1
  99. package/lib/commonjs/system/AudioManager.js +22 -28
  100. package/lib/commonjs/system/AudioManager.js.map +1 -1
  101. package/lib/module/api.js +2 -2
  102. package/lib/module/api.js.map +1 -1
  103. package/lib/module/core/AudioBufferSourceNode.js +2 -2
  104. package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
  105. package/lib/module/core/AudioNode.js +7 -2
  106. package/lib/module/core/AudioNode.js.map +1 -1
  107. package/lib/module/core/AudioParam.js +2 -1
  108. package/lib/module/core/AudioParam.js.map +1 -1
  109. package/lib/module/core/AudioRecorder.js +11 -28
  110. package/lib/module/core/AudioRecorder.js.map +1 -1
  111. package/lib/module/core/AudioScheduledSourceNode.js +4 -1
  112. package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
  113. package/lib/module/core/BiquadFilterNode.js +4 -4
  114. package/lib/module/core/BiquadFilterNode.js.map +1 -1
  115. package/lib/module/core/GainNode.js +1 -1
  116. package/lib/module/core/GainNode.js.map +1 -1
  117. package/lib/module/core/OscillatorNode.js +2 -2
  118. package/lib/module/core/OscillatorNode.js.map +1 -1
  119. package/lib/module/core/StereoPannerNode.js +1 -1
  120. package/lib/module/core/StereoPannerNode.js.map +1 -1
  121. package/lib/module/events/AudioEventEmitter.js +16 -0
  122. package/lib/module/events/AudioEventEmitter.js.map +1 -0
  123. package/lib/module/events/AudioEventSubscription.js +15 -0
  124. package/lib/module/events/AudioEventSubscription.js.map +1 -0
  125. package/lib/module/events/index.js +6 -0
  126. package/lib/module/events/index.js.map +1 -0
  127. package/lib/module/events/types.js +4 -0
  128. package/lib/module/events/types.js.map +1 -0
  129. package/lib/module/hooks/useSytemVolume.js +1 -1
  130. package/lib/module/hooks/useSytemVolume.js.map +1 -1
  131. package/lib/module/specs/NativeAudioAPIModule.js +3 -2
  132. package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
  133. package/lib/module/specs/index.js +2 -3
  134. package/lib/module/specs/index.js.map +1 -1
  135. package/lib/module/system/AudioManager.js +23 -29
  136. package/lib/module/system/AudioManager.js.map +1 -1
  137. package/lib/typescript/api.d.ts +2 -1
  138. package/lib/typescript/api.d.ts.map +1 -1
  139. package/lib/typescript/core/AudioNode.d.ts +2 -1
  140. package/lib/typescript/core/AudioNode.d.ts.map +1 -1
  141. package/lib/typescript/core/AudioParam.d.ts +4 -2
  142. package/lib/typescript/core/AudioParam.d.ts.map +1 -1
  143. package/lib/typescript/core/AudioRecorder.d.ts +4 -14
  144. package/lib/typescript/core/AudioRecorder.d.ts.map +1 -1
  145. package/lib/typescript/core/AudioScheduledSourceNode.d.ts +3 -1
  146. package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
  147. package/lib/typescript/events/AudioEventEmitter.d.ts +10 -0
  148. package/lib/typescript/events/AudioEventEmitter.d.ts.map +1 -0
  149. package/lib/typescript/events/AudioEventSubscription.d.ts +11 -0
  150. package/lib/typescript/events/AudioEventSubscription.d.ts.map +1 -0
  151. package/lib/typescript/events/index.d.ts +4 -0
  152. package/lib/typescript/events/index.d.ts.map +1 -0
  153. package/lib/typescript/events/types.d.ts +50 -0
  154. package/lib/typescript/events/types.d.ts.map +1 -0
  155. package/lib/typescript/hooks/useSytemVolume.d.ts.map +1 -1
  156. package/lib/typescript/interfaces.d.ts +10 -10
  157. package/lib/typescript/interfaces.d.ts.map +1 -1
  158. package/lib/typescript/specs/NativeAudioAPIModule.d.ts +15 -3
  159. package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
  160. package/lib/typescript/specs/index.d.ts +2 -3
  161. package/lib/typescript/specs/index.d.ts.map +1 -1
  162. package/lib/typescript/system/AudioManager.d.ts +6 -4
  163. package/lib/typescript/system/AudioManager.d.ts.map +1 -1
  164. package/lib/typescript/system/types.d.ts +0 -34
  165. package/lib/typescript/system/types.d.ts.map +1 -1
  166. package/lib/typescript/types.d.ts +0 -1
  167. package/lib/typescript/types.d.ts.map +1 -1
  168. package/package.json +3 -3
  169. package/src/api.ts +6 -3
  170. package/src/core/AudioBufferSourceNode.ts +2 -2
  171. package/src/core/AudioNode.ts +8 -3
  172. package/src/core/AudioParam.ts +5 -2
  173. package/src/core/AudioRecorder.ts +22 -62
  174. package/src/core/AudioScheduledSourceNode.ts +13 -2
  175. package/src/core/BiquadFilterNode.ts +4 -4
  176. package/src/core/GainNode.ts +1 -1
  177. package/src/core/OscillatorNode.ts +2 -2
  178. package/src/core/StereoPannerNode.ts +1 -1
  179. package/src/events/AudioEventEmitter.ts +29 -0
  180. package/src/events/AudioEventSubscription.ts +26 -0
  181. package/src/events/index.ts +4 -0
  182. package/src/events/types.ts +64 -0
  183. package/src/hooks/useSytemVolume.ts +2 -1
  184. package/src/interfaces.ts +19 -20
  185. package/src/specs/NativeAudioAPIModule.ts +23 -2
  186. package/src/specs/index.ts +2 -4
  187. package/src/system/AudioManager.ts +35 -43
  188. package/src/system/types.ts +0 -42
  189. package/src/types.ts +0 -8
  190. package/android/src/main/java/com/swmansion/audioapi/AudioManagerModule.kt +0 -77
  191. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionEventEmitter.kt +0 -88
  192. package/android/src/oldarch/NativeAudioManagerModuleSpec.java +0 -99
  193. package/ios/audioapi/ios/AudioManagerModule.h +0 -18
  194. package/ios/audioapi/ios/AudioManagerModule.mm +0 -108
  195. package/lib/commonjs/specs/NativeAudioManagerModule.js +0 -42
  196. package/lib/commonjs/specs/NativeAudioManagerModule.js.map +0 -1
  197. package/lib/module/specs/NativeAudioManagerModule.js +0 -39
  198. package/lib/module/specs/NativeAudioManagerModule.js.map +0 -1
  199. package/lib/typescript/specs/NativeAudioManagerModule.d.ts +0 -18
  200. package/lib/typescript/specs/NativeAudioManagerModule.d.ts.map +0 -1
  201. package/src/specs/NativeAudioManagerModule.ts +0 -53
@@ -5,53 +5,47 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _specs = require("../specs");
8
+ var _events = require("../events");
9
+ if (global.AudioEventEmitter == null) {
10
+ if (!_specs.NativeAudioAPIModule) {
11
+ throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
12
+ }
13
+ _specs.NativeAudioAPIModule.install();
14
+ }
8
15
  class AudioManager {
16
+ constructor() {
17
+ this.audioEventEmitter = new _events.AudioEventEmitter(global.AudioEventEmitter);
18
+ }
9
19
  setLockScreenInfo(info) {
10
- _specs.AudioManagerModule.setLockScreenInfo(info);
20
+ _specs.NativeAudioAPIModule.setLockScreenInfo(info);
11
21
  }
12
22
  resetLockScreenInfo() {
13
- _specs.AudioManagerModule.resetLockScreenInfo();
23
+ _specs.NativeAudioAPIModule.resetLockScreenInfo();
14
24
  }
15
25
  setAudioSessionOptions(options) {
16
- _specs.AudioManagerModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []);
26
+ _specs.NativeAudioAPIModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []);
17
27
  }
18
28
  getDevicePreferredSampleRate() {
19
- return _specs.AudioManagerModule.getDevicePreferredSampleRate();
29
+ return _specs.NativeAudioAPIModule.getDevicePreferredSampleRate();
20
30
  }
21
31
  observeAudioInterruptions(enabled) {
22
- _specs.AudioManagerModule.observeAudioInterruptions(enabled);
32
+ _specs.NativeAudioAPIModule.observeAudioInterruptions(enabled);
23
33
  }
24
34
  observeVolumeChanges(enabled) {
25
- _specs.AudioManagerModule.observeVolumeChanges(enabled);
35
+ _specs.NativeAudioAPIModule.observeVolumeChanges(enabled);
26
36
  }
27
- enableRemoteCommand(name) {
28
- _specs.AudioManagerModule.enableRemoteCommand(name, true);
29
- }
30
- enableRemoteEvent(name, callback) {
31
- let subscription = null;
32
- if (!callback) {
37
+ enableSystemEvent(name, callback, enabled = true) {
38
+ _specs.NativeAudioAPIModule.enableRemoteCommand(name, enabled);
39
+ if (!enabled || !callback) {
33
40
  return null;
34
41
  }
35
- switch (name) {
36
- case 'interruption':
37
- subscription = _specs.eventEmitter.addListener('onInterruption', callback);
38
- break;
39
- case 'routeChange':
40
- subscription = _specs.eventEmitter.addListener('onRouteChange', callback);
41
- break;
42
- case 'volumeChange':
43
- subscription = _specs.eventEmitter.addListener('onVolumeChange', callback);
44
- break;
45
- default:
46
- console.error('Unsupported RemoteControl action:', name);
47
- }
48
- return subscription;
42
+ return this.audioEventEmitter.addAudioEventListener(name, callback);
49
43
  }
50
44
  async requestRecordingPermissions() {
51
- return _specs.AudioManagerModule.requestRecordingPermissions();
45
+ return _specs.NativeAudioAPIModule.requestRecordingPermissions();
52
46
  }
53
47
  async checkRecordingPermissions() {
54
- return _specs.AudioManagerModule.checkRecordingPermissions();
48
+ return _specs.NativeAudioAPIModule.checkRecordingPermissions();
55
49
  }
56
50
  }
57
51
  var _default = exports.default = new AudioManager();
@@ -1 +1 @@
1
- {"version":3,"names":["_specs","require","AudioManager","setLockScreenInfo","info","AudioManagerModule","resetLockScreenInfo","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","getDevicePreferredSampleRate","observeAudioInterruptions","enabled","observeVolumeChanges","enableRemoteCommand","name","enableRemoteEvent","callback","subscription","eventEmitter","addListener","console","error","requestRecordingPermissions","checkRecordingPermissions","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAQA,IAAAA,MAAA,GAAAC,OAAA;AAGA,MAAMC,YAAY,CAAC;EACjBC,iBAAiBA,CAACC,IAAoB,EAAE;IACtCC,yBAAkB,CAACF,iBAAiB,CAACC,IAAI,CAAC;EAC5C;EAEAE,mBAAmBA,CAAA,EAAG;IACpBD,yBAAkB,CAACC,mBAAmB,CAAC,CAAC;EAC1C;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CH,yBAAkB,CAACE,sBAAsB,CACvCC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EACxB,CAAC;EACH;EAEAC,4BAA4BA,CAAA,EAAW;IACrC,OAAOP,yBAAkB,CAACO,4BAA4B,CAAC,CAAC;EAC1D;EAEAC,yBAAyBA,CAACC,OAAgB,EAAE;IAC1CT,yBAAkB,CAACQ,yBAAyB,CAACC,OAAO,CAAC;EACvD;EAEAC,oBAAoBA,CAACD,OAAgB,EAAE;IACrCT,yBAAkB,CAACU,oBAAoB,CAACD,OAAO,CAAC;EAClD;EAEAE,mBAAmBA,CAAiCC,IAAU,EAAQ;IACpEZ,yBAAkB,CAACW,mBAAmB,CAACC,IAAI,EAAE,IAAI,CAAC;EACpD;EAEAC,iBAAiBA,CACfD,IAAU,EACVE,QAAoC,EACR;IAC5B,IAAIC,YAAY,GAAG,IAAI;IACvB,IAAI,CAACD,QAAQ,EAAE;MACb,OAAO,IAAI;IACb;IACA,QAAQF,IAAI;MACV,KAAK,cAAc;QACjBG,YAAY,GAAGC,mBAAY,CAACC,WAAW,CAAC,gBAAgB,EAAEH,QAAQ,CAAC;QACnE;MAEF,KAAK,aAAa;QAChBC,YAAY,GAAGC,mBAAY,CAACC,WAAW,CAAC,eAAe,EAAEH,QAAQ,CAAC;QAClE;MAEF,KAAK,cAAc;QACjBC,YAAY,GAAGC,mBAAY,CAACC,WAAW,CAAC,gBAAgB,EAAEH,QAAQ,CAAC;QACnE;MAEF;QACEI,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEP,IAAI,CAAC;IAC5D;IACA,OAAOG,YAAY;EACrB;EAEA,MAAMK,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOpB,yBAAkB,CAACoB,2BAA2B,CAAC,CAAC;EACzD;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOrB,yBAAkB,CAACqB,yBAAyB,CAAC,CAAC;EACvD;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAI3B,YAAY,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_specs","require","_events","global","AudioEventEmitter","NativeAudioAPIModule","Error","install","AudioManager","constructor","audioEventEmitter","setLockScreenInfo","info","resetLockScreenInfo","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","getDevicePreferredSampleRate","observeAudioInterruptions","enabled","observeVolumeChanges","enableSystemEvent","name","callback","enableRemoteCommand","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAIE,MAAM,CAACC,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,yBAAiB,CAACD,MAAM,CAACC,iBAAiB,CAAC;EAC1E;EAEAO,iBAAiBA,CAACC,IAAoB,EAAE;IACtCP,2BAAoB,CAAEM,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBR,2BAAoB,CAAEQ,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CV,2BAAoB,CAAES,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EACxB,CAAC;EACH;EAEAC,4BAA4BA,CAAA,EAAW;IACrC,OAAOd,2BAAoB,CAAEc,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,yBAAyBA,CAACC,OAAgB,EAAE;IAC1ChB,2BAAoB,CAAEe,yBAAyB,CAACC,OAAO,CAAC;EAC1D;EAEAC,oBAAoBA,CAACD,OAAgB,EAAE;IACrChB,2BAAoB,CAAEiB,oBAAoB,CAACD,OAAO,CAAC;EACrD;EAEAE,iBAAiBA,CACfC,IAAU,EACVC,QAAoC,EACpCJ,OAAO,GAAG,IAAI,EACiB;IAC/BhB,2BAAoB,CAAEqB,mBAAmB,CAACF,IAAI,EAAEH,OAAO,CAAC;IAExD,IAAI,CAACA,OAAO,IAAI,CAACI,QAAQ,EAAE;MACzB,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAACf,iBAAiB,CAACiB,qBAAqB,CAACH,IAAI,EAAEC,QAAQ,CAAC;EACrE;EAEA,MAAMG,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOvB,2BAAoB,CAAEuB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOxB,2BAAoB,CAAEwB,yBAAyB,CAAC,CAAC;EAC1D;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAIxB,YAAY,CAAC,CAAC","ignoreList":[]}
package/lib/module/api.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import NativeAudioAPIModule from "./specs/NativeAudioAPIModule.js";
3
+ import { NativeAudioAPIModule } from "./specs/index.js";
4
4
 
5
5
  /* eslint-disable no-var */
6
6
 
7
7
  /* eslint-disable no-var */
8
8
 
9
- if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null) {
9
+ if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null || global.AudioEventEmitter == null) {
10
10
  if (!NativeAudioAPIModule) {
11
11
  throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","Error","install","default","AudioBuffer","AudioBufferSourceNode","AudioContext","OfflineAudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","AudioRecorder","AudioManager","useSystemVolume","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;;AAQ/D;;AAYA;;AAEA,IACEC,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,EAClC;EACA,IAAI,CAACJ,oBAAoB,EAAE;IACzB,MAAM,IAAIK,KAAK,CACb,iFACF,CAAC;EACH;EAEAL,oBAAoB,CAACM,OAAO,CAAC,CAAC;AAChC;AAEA,SAASC,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASF,OAAO,IAAIG,YAAY,QAAQ,wBAAqB;AAC7D,SAASH,OAAO,IAAII,mBAAmB,QAAQ,+BAA4B;AAC3E,SAASJ,OAAO,IAAIK,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASL,OAAO,IAAIM,SAAS,QAAQ,qBAAkB;AACvD,SAASN,OAAO,IAAIO,YAAY,QAAQ,wBAAqB;AAC7D,SAASP,OAAO,IAAIQ,UAAU,QAAQ,sBAAmB;AACzD,SAASR,OAAO,IAAIS,wBAAwB,QAAQ,oCAAiC;AACrF,SAAST,OAAO,IAAIU,gBAAgB,QAAQ,4BAAyB;AACrE,SAASV,OAAO,IAAIW,gBAAgB,QAAQ,4BAAyB;AACrE,SAASX,OAAO,IAAIY,QAAQ,QAAQ,oBAAiB;AACrD,SAASZ,OAAO,IAAIa,cAAc,QAAQ,0BAAuB;AACjE,SAASb,OAAO,IAAIc,gBAAgB,QAAQ,4BAAyB;AACrE,SAASd,OAAO,IAAIe,aAAa,QAAQ,yBAAsB;AAC/D,SAASf,OAAO,IAAIgB,YAAY,QAAQ,mBAAU;AAClD,SAAShB,OAAO,IAAIiB,eAAe,QAAQ,2BAAwB;AAEnE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,QACZ,mBAAU","ignoreList":[]}
1
+ {"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","Error","install","default","AudioBuffer","AudioBufferSourceNode","AudioContext","OfflineAudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","AudioRecorder","AudioManager","useSystemVolume","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,kBAAS;;AAS9C;;AAaA;;AAEA,IACEC,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACL,oBAAoB,EAAE;IACzB,MAAM,IAAIM,KAAK,CACb,iFACF,CAAC;EACH;EAEAN,oBAAoB,CAACO,OAAO,CAAC,CAAC;AAChC;AAEA,SAASC,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASF,OAAO,IAAIG,YAAY,QAAQ,wBAAqB;AAC7D,SAASH,OAAO,IAAII,mBAAmB,QAAQ,+BAA4B;AAC3E,SAASJ,OAAO,IAAIK,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASL,OAAO,IAAIM,SAAS,QAAQ,qBAAkB;AACvD,SAASN,OAAO,IAAIO,YAAY,QAAQ,wBAAqB;AAC7D,SAASP,OAAO,IAAIQ,UAAU,QAAQ,sBAAmB;AACzD,SAASR,OAAO,IAAIS,wBAAwB,QAAQ,oCAAiC;AACrF,SAAST,OAAO,IAAIU,gBAAgB,QAAQ,4BAAyB;AACrE,SAASV,OAAO,IAAIW,gBAAgB,QAAQ,4BAAyB;AACrE,SAASX,OAAO,IAAIY,QAAQ,QAAQ,oBAAiB;AACrD,SAASZ,OAAO,IAAIa,cAAc,QAAQ,0BAAuB;AACjE,SAASb,OAAO,IAAIc,gBAAgB,QAAQ,4BAAyB;AACrE,SAASd,OAAO,IAAIe,aAAa,QAAQ,yBAAsB;AAC/D,SAASf,OAAO,IAAIgB,YAAY,QAAQ,mBAAU;AAClD,SAAShB,OAAO,IAAIiB,eAAe,QAAQ,2BAAwB;AAEnE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,QACZ,mBAAU","ignoreList":[]}
@@ -7,8 +7,8 @@ import { InvalidStateError, RangeError } from "../errors/index.js";
7
7
  export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
8
8
  constructor(context, node) {
9
9
  super(context, node);
10
- this.detune = new AudioParam(node.detune);
11
- this.playbackRate = new AudioParam(node.playbackRate);
10
+ this.detune = new AudioParam(node.detune, context);
11
+ this.playbackRate = new AudioParam(node.playbackRate, context);
12
12
  }
13
13
  get buffer() {
14
14
  const buffer = this.node.buffer;
@@ -1 +1 @@
1
- {"version":3,"names":["AudioScheduledSourceNode","AudioBuffer","AudioParam","InvalidStateError","RangeError","AudioBufferSourceNode","constructor","context","node","detune","playbackRate","buffer","loop","value","loopStart","loopEnd","start","when","offset","duration","hasBeenStarted"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;AACA,OAAOA,wBAAwB,MAAM,+BAA4B;AAEjE,OAAOC,WAAW,MAAM,kBAAe;AACvC,OAAOC,UAAU,MAAM,iBAAc;AACrC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,eAAe,MAAMC,qBAAqB,SAASL,wBAAwB,CAAC;EAI1EM,WAAWA,CAACC,OAAyB,EAAEC,IAA4B,EAAE;IACnE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIP,UAAU,CAACM,IAAI,CAACC,MAAM,CAAC;IACzC,IAAI,CAACC,YAAY,GAAG,IAAIR,UAAU,CAACM,IAAI,CAACE,YAAY,CAAC;EACvD;EAEA,IAAWC,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACH,IAAI,CAA4BG,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIV,WAAW,CAACU,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACH,IAAI,CAA4BG,MAAM,GAAG,IAAI;MACnD;IACF;IAEC,IAAI,CAACH,IAAI,CAA4BG,MAAM,GAAGA,MAAM,CAACA,MAAM;EAC9D;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACJ,IAAI,CAA4BI,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACC,KAAc,EAAE;IAC7B,IAAI,CAACL,IAAI,CAA4BI,IAAI,GAAGC,KAAK;EACpD;EAEA,IAAWC,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACD,KAAa,EAAE;IACjC,IAAI,CAACL,IAAI,CAA4BM,SAAS,GAAGD,KAAK;EACzD;EAEA,IAAWE,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACP,IAAI,CAA4BO,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACF,KAAa,EAAE;IAC/B,IAAI,CAACL,IAAI,CAA4BO,OAAO,GAAGF,KAAK;EACvD;EAEOG,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIb,UAAU,CAClB,8CAA8Ca,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAId,UAAU,CAClB,gDAAgDc,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIf,UAAU,CAClB,kDAAkDe,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACC,cAAc,EAAE;MACvB,MAAM,IAAIjB,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACiB,cAAc,GAAG,IAAI;IACzB,IAAI,CAACZ,IAAI,CAA4BQ,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioScheduledSourceNode","AudioBuffer","AudioParam","InvalidStateError","RangeError","AudioBufferSourceNode","constructor","context","node","detune","playbackRate","buffer","loop","value","loopStart","loopEnd","start","when","offset","duration","hasBeenStarted"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;AACA,OAAOA,wBAAwB,MAAM,+BAA4B;AAEjE,OAAOC,WAAW,MAAM,kBAAe;AACvC,OAAOC,UAAU,MAAM,iBAAc;AACrC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,eAAe,MAAMC,qBAAqB,SAASL,wBAAwB,CAAC;EAI1EM,WAAWA,CAACC,OAAyB,EAAEC,IAA4B,EAAE;IACnE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIP,UAAU,CAACM,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACG,YAAY,GAAG,IAAIR,UAAU,CAACM,IAAI,CAACE,YAAY,EAAEH,OAAO,CAAC;EAChE;EAEA,IAAWI,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACH,IAAI,CAA4BG,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIV,WAAW,CAACU,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACH,IAAI,CAA4BG,MAAM,GAAG,IAAI;MACnD;IACF;IAEC,IAAI,CAACH,IAAI,CAA4BG,MAAM,GAAGA,MAAM,CAACA,MAAM;EAC9D;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACJ,IAAI,CAA4BI,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACC,KAAc,EAAE;IAC7B,IAAI,CAACL,IAAI,CAA4BI,IAAI,GAAGC,KAAK;EACpD;EAEA,IAAWC,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACD,KAAa,EAAE;IACjC,IAAI,CAACL,IAAI,CAA4BM,SAAS,GAAGD,KAAK;EACzD;EAEA,IAAWE,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACP,IAAI,CAA4BO,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACF,KAAa,EAAE;IAC/B,IAAI,CAACL,IAAI,CAA4BO,OAAO,GAAGF,KAAK;EACvD;EAEOG,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIb,UAAU,CAClB,8CAA8Ca,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAId,UAAU,CAClB,gDAAgDc,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIf,UAAU,CAClB,kDAAkDe,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACC,cAAc,EAAE;MACvB,MAAM,IAAIjB,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACiB,cAAc,GAAG,IAAI;IACzB,IAAI,CAACZ,IAAI,CAA4BQ,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import AudioParam from "./AudioParam.js";
3
4
  import { InvalidAccessError } from "../errors/index.js";
4
5
  export default class AudioNode {
5
6
  constructor(context, node) {
@@ -13,9 +14,13 @@ export default class AudioNode {
13
14
  }
14
15
  connect(destination) {
15
16
  if (this.context !== destination.context) {
16
- throw new InvalidAccessError('The AudioNodes are from different BaseAudioContexts');
17
+ throw new InvalidAccessError('Source and destination are from different BaseAudioContexts');
18
+ }
19
+ if (destination instanceof AudioParam) {
20
+ this.node.connect(destination.audioParam);
21
+ } else {
22
+ this.node.connect(destination.node);
17
23
  }
18
- this.node.connect(destination.node);
19
24
  return destination;
20
25
  }
21
26
  disconnect(destination) {
@@ -1 +1 @@
1
- {"version":3,"names":["InvalidAccessError","AudioNode","constructor","context","node","numberOfInputs","numberOfOutputs","channelCount","channelCountMode","channelInterpretation","connect","destination","disconnect"],"sourceRoot":"../../../src","sources":["core/AudioNode.ts"],"mappings":";;AAGA,SAASA,kBAAkB,QAAQ,oBAAW;AAE9C,eAAe,MAAMC,SAAS,CAAC;EAS7BC,WAAWA,CAACC,OAAyB,EAAEC,IAAgB,EAAE;IACvD,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,cAAc,GAAG,IAAI,CAACD,IAAI,CAACC,cAAc;IAC9C,IAAI,CAACC,eAAe,GAAG,IAAI,CAACF,IAAI,CAACE,eAAe;IAChD,IAAI,CAACC,YAAY,GAAG,IAAI,CAACH,IAAI,CAACG,YAAY;IAC1C,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACJ,IAAI,CAACI,gBAAgB;IAClD,IAAI,CAACC,qBAAqB,GAAG,IAAI,CAACL,IAAI,CAACK,qBAAqB;EAC9D;EAEOC,OAAOA,CAACC,WAAsB,EAAa;IAChD,IAAI,IAAI,CAACR,OAAO,KAAKQ,WAAW,CAACR,OAAO,EAAE;MACxC,MAAM,IAAIH,kBAAkB,CAC1B,qDACF,CAAC;IACH;IAEA,IAAI,CAACI,IAAI,CAACM,OAAO,CAACC,WAAW,CAACP,IAAI,CAAC;IAEnC,OAAOO,WAAW;EACpB;EAEOC,UAAUA,CAACD,WAAuB,EAAQ;IAC/C,IAAI,CAACP,IAAI,CAACQ,UAAU,CAACD,WAAW,EAAEP,IAAI,CAAC;EACzC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioParam","InvalidAccessError","AudioNode","constructor","context","node","numberOfInputs","numberOfOutputs","channelCount","channelCountMode","channelInterpretation","connect","destination","audioParam","disconnect"],"sourceRoot":"../../../src","sources":["core/AudioNode.ts"],"mappings":";;AACA,OAAOA,UAAU,MAAM,iBAAc;AAGrC,SAASC,kBAAkB,QAAQ,oBAAW;AAE9C,eAAe,MAAMC,SAAS,CAAC;EAS7BC,WAAWA,CAACC,OAAyB,EAAEC,IAAgB,EAAE;IACvD,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,cAAc,GAAG,IAAI,CAACD,IAAI,CAACC,cAAc;IAC9C,IAAI,CAACC,eAAe,GAAG,IAAI,CAACF,IAAI,CAACE,eAAe;IAChD,IAAI,CAACC,YAAY,GAAG,IAAI,CAACH,IAAI,CAACG,YAAY;IAC1C,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACJ,IAAI,CAACI,gBAAgB;IAClD,IAAI,CAACC,qBAAqB,GAAG,IAAI,CAACL,IAAI,CAACK,qBAAqB;EAC9D;EAEOC,OAAOA,CAACC,WAAmC,EAA0B;IAC1E,IAAI,IAAI,CAACR,OAAO,KAAKQ,WAAW,CAACR,OAAO,EAAE;MACxC,MAAM,IAAIH,kBAAkB,CAC1B,6DACF,CAAC;IACH;IAEA,IAAIW,WAAW,YAAYZ,UAAU,EAAE;MACrC,IAAI,CAACK,IAAI,CAACM,OAAO,CAACC,WAAW,CAACC,UAAU,CAAC;IAC3C,CAAC,MAAM;MACL,IAAI,CAACR,IAAI,CAACM,OAAO,CAACC,WAAW,CAACP,IAAI,CAAC;IACrC;IAEA,OAAOO,WAAW;EACpB;EAEOE,UAAUA,CAACF,WAAuB,EAAQ;IAC/C,IAAI,CAACP,IAAI,CAACS,UAAU,CAACF,WAAW,EAAEP,IAAI,CAAC;EACzC;AACF","ignoreList":[]}
@@ -2,12 +2,13 @@
2
2
 
3
3
  import { RangeError, InvalidStateError } from "../errors/index.js";
4
4
  export default class AudioParam {
5
- constructor(audioParam) {
5
+ constructor(audioParam, context) {
6
6
  this.audioParam = audioParam;
7
7
  this.value = audioParam.value;
8
8
  this.defaultValue = audioParam.defaultValue;
9
9
  this.minValue = audioParam.minValue;
10
10
  this.maxValue = audioParam.maxValue;
11
+ this.context = context;
11
12
  }
12
13
  get value() {
13
14
  return this.audioParam.value;
@@ -1 +1 @@
1
- {"version":3,"names":["RangeError","InvalidStateError","AudioParam","constructor","audioParam","value","defaultValue","minValue","maxValue","setValueAtTime","startTime","linearRampToValueAtTime","endTime","exponentialRampToValueAtTime","setTargetAtTime","target","timeConstant","setValueCurveAtTime","values","duration","length","cancelScheduledValues","cancelTime","cancelAndHoldAtTime"],"sourceRoot":"../../../src","sources":["core/AudioParam.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RangeError","InvalidStateError","AudioParam","constructor","audioParam","context","value","defaultValue","minValue","maxValue","setValueAtTime","startTime","linearRampToValueAtTime","endTime","exponentialRampToValueAtTime","setTargetAtTime","target","timeConstant","setValueCurveAtTime","values","duration","length","cancelScheduledValues","cancelTime","cancelAndHoldAtTime"],"sourceRoot":"../../../src","sources":["core/AudioParam.ts"],"mappings":"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","ignoreList":[]}
@@ -1,25 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import AudioBuffer from "./AudioBuffer.js";
4
+ import { AudioEventEmitter } from "../events/index.js";
4
5
  export default class AudioRecorder {
5
- onAudioReadyCallback = null;
6
- onErrorCallback = null;
7
- onStatusChangeCallback = null;
8
- onAudioReadyInternal = (buffer, numFrames, when) => {
9
- if (this.onAudioReadyCallback) {
10
- this.onAudioReadyCallback(new AudioBuffer(buffer), numFrames, when);
11
- }
12
- };
13
- onErrorInternal = error => {
14
- if (this.onErrorCallback) {
15
- this.onErrorCallback(error);
16
- }
17
- };
18
- onStatusChangeInternal = (status, previousStatus) => {
19
- if (this.onStatusChangeCallback) {
20
- this.onStatusChangeCallback(status, previousStatus);
21
- }
22
- };
6
+ audioEventEmitter = new AudioEventEmitter(global.AudioEventEmitter);
23
7
  constructor(options) {
24
8
  this.recorder = global.createAudioRecorder(options);
25
9
  }
@@ -30,16 +14,15 @@ export default class AudioRecorder {
30
14
  this.recorder.stop();
31
15
  }
32
16
  onAudioReady(callback) {
33
- this.onAudioReadyCallback = callback;
34
- this.recorder.onAudioReady(this.onAudioReadyInternal);
35
- }
36
- onError(callback) {
37
- this.onErrorCallback = callback;
38
- this.recorder.onError(this.onErrorInternal);
39
- }
40
- onStatusChange(callback) {
41
- this.onStatusChangeCallback = callback;
42
- this.recorder.onStatusChange(this.onStatusChangeInternal);
17
+ const onAudioReadyCallback = event => {
18
+ callback({
19
+ buffer: new AudioBuffer(event.buffer),
20
+ numFrames: event.numFrames,
21
+ when: event.when
22
+ });
23
+ };
24
+ const subscription = this.audioEventEmitter.addAudioEventListener('audioReady', onAudioReadyCallback);
25
+ this.recorder.onAudioReady = subscription.subscriptionId;
43
26
  }
44
27
  }
45
28
  //# sourceMappingURL=AudioRecorder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AudioBuffer","AudioRecorder","onAudioReadyCallback","onErrorCallback","onStatusChangeCallback","onAudioReadyInternal","buffer","numFrames","when","onErrorInternal","error","onStatusChangeInternal","status","previousStatus","constructor","options","recorder","global","createAudioRecorder","start","stop","onAudioReady","callback","onError","onStatusChange"],"sourceRoot":"../../../src","sources":["core/AudioRecorder.ts"],"mappings":";;AAQA,OAAOA,WAAW,MAAM,kBAAe;AAevC,eAAe,MAAMC,aAAa,CAAC;EAEzBC,oBAAoB,GAA8B,IAAI;EACtDC,eAAe,GAAyB,IAAI;EAC5CC,sBAAsB,GAAgC,IAAI;EAE1DC,oBAAoB,GAAwBA,CAClDC,MAAoB,EACpBC,SAAiB,EACjBC,IAAY,KACT;IACH,IAAI,IAAI,CAACN,oBAAoB,EAAE;MAC7B,IAAI,CAACA,oBAAoB,CAAC,IAAIF,WAAW,CAACM,MAAM,CAAC,EAAEC,SAAS,EAAEC,IAAI,CAAC;IACrE;EACF,CAAC;EAEOC,eAAe,GAAoBC,KAAY,IAAK;IAC1D,IAAI,IAAI,CAACP,eAAe,EAAE;MACxB,IAAI,CAACA,eAAe,CAACO,KAAK,CAAC;IAC7B;EACF,CAAC;EAEOC,sBAAsB,GAA0BA,CACtDC,MAA2B,EAC3BC,cAAmC,KAChC;IACH,IAAI,IAAI,CAACT,sBAAsB,EAAE;MAC/B,IAAI,CAACA,sBAAsB,CAACQ,MAAM,EAAEC,cAAc,CAAC;IACrD;EACF,CAAC;EAEDC,WAAWA,CAACC,OAA6B,EAAE;IACzC,IAAI,CAACC,QAAQ,GAAGC,MAAM,CAACC,mBAAmB,CAACH,OAAO,CAAC;EACrD;EAEOI,KAAKA,CAAA,EAAS;IACnB,IAAI,CAACH,QAAQ,CAACG,KAAK,CAAC,CAAC;EACvB;EAEOC,IAAIA,CAAA,EAAS;IAClB,IAAI,CAACJ,QAAQ,CAACI,IAAI,CAAC,CAAC;EACtB;EAEOC,YAAYA,CAACC,QAA4B,EAAQ;IACtD,IAAI,CAACpB,oBAAoB,GAAGoB,QAAQ;IACpC,IAAI,CAACN,QAAQ,CAACK,YAAY,CAAC,IAAI,CAAChB,oBAAoB,CAAC;EACvD;EAEOkB,OAAOA,CAACD,QAAuB,EAAQ;IAC5C,IAAI,CAACnB,eAAe,GAAGmB,QAAQ;IAC/B,IAAI,CAACN,QAAQ,CAACO,OAAO,CAAC,IAAI,CAACd,eAAe,CAAC;EAC7C;EAEOe,cAAcA,CAACF,QAA8B,EAAQ;IAC1D,IAAI,CAAClB,sBAAsB,GAAGkB,QAAQ;IACtC,IAAI,CAACN,QAAQ,CAACQ,cAAc,CAAC,IAAI,CAACb,sBAAsB,CAAC;EAC3D;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioBuffer","AudioEventEmitter","AudioRecorder","audioEventEmitter","global","constructor","options","recorder","createAudioRecorder","start","stop","onAudioReady","callback","onAudioReadyCallback","event","buffer","numFrames","when","subscription","addAudioEventListener","subscriptionId"],"sourceRoot":"../../../src","sources":["core/AudioRecorder.ts"],"mappings":";;AAEA,OAAOA,WAAW,MAAM,kBAAe;AAEvC,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,aAAa,CAAC;EAEhBC,iBAAiB,GAAG,IAAIF,iBAAiB,CACxDG,MAAM,CAACH,iBACT,CAAC;EAEDI,WAAWA,CAACC,OAA6B,EAAE;IACzC,IAAI,CAACC,QAAQ,GAAGH,MAAM,CAACI,mBAAmB,CAACF,OAAO,CAAC;EACrD;EAEOG,KAAKA,CAAA,EAAS;IACnB,IAAI,CAACF,QAAQ,CAACE,KAAK,CAAC,CAAC;EACvB;EAEOC,IAAIA,CAAA,EAAS;IAClB,IAAI,CAACH,QAAQ,CAACG,IAAI,CAAC,CAAC;EACtB;EAEOC,YAAYA,CAACC,QAAgD,EAAQ;IAC1E,MAAMC,oBAAoB,GAAIC,KAA4B,IAAK;MAC7DF,QAAQ,CAAC;QACPG,MAAM,EAAE,IAAIf,WAAW,CAACc,KAAK,CAACC,MAAM,CAAC;QACrCC,SAAS,EAAEF,KAAK,CAACE,SAAS;QAC1BC,IAAI,EAAEH,KAAK,CAACG;MACd,CAAC,CAAC;IACJ,CAAC;IAED,MAAMC,YAAY,GAAG,IAAI,CAACf,iBAAiB,CAACgB,qBAAqB,CAC/D,YAAY,EACZN,oBACF,CAAC;IAED,IAAI,CAACN,QAAQ,CAACI,YAAY,GAAGO,YAAY,CAACE,cAAc;EAC1D;AACF","ignoreList":[]}
@@ -2,8 +2,10 @@
2
2
 
3
3
  import AudioNode from "./AudioNode.js";
4
4
  import { InvalidStateError, RangeError } from "../errors/index.js";
5
+ import { AudioEventEmitter } from "../events/index.js";
5
6
  export default class AudioScheduledSourceNode extends AudioNode {
6
7
  hasBeenStarted = false;
8
+ audioEventEmitter = new AudioEventEmitter(global.AudioEventEmitter);
7
9
  start(when = 0) {
8
10
  if (when < 0) {
9
11
  throw new RangeError(`when must be a finite non-negative number: ${when}`);
@@ -26,7 +28,8 @@ export default class AudioScheduledSourceNode extends AudioNode {
26
28
 
27
29
  // eslint-disable-next-line accessor-pairs
28
30
  set onended(callback) {
29
- this.node.onended = callback;
31
+ const subscription = this.audioEventEmitter.addAudioEventListener('ended', callback);
32
+ this.node.onended = subscription.subscriptionId;
30
33
  }
31
34
  }
32
35
  //# sourceMappingURL=AudioScheduledSourceNode.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AudioNode","InvalidStateError","RangeError","AudioScheduledSourceNode","hasBeenStarted","start","when","node","stop","onended","callback"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,eAAe,MAAMC,wBAAwB,SAASH,SAAS,CAAC;EACpDI,cAAc,GAAY,KAAK;EAElCC,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIJ,UAAU,CAClB,8CAA8CI,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACF,cAAc,EAAE;MACvB,MAAM,IAAIH,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACG,cAAc,GAAG,IAAI;IACzB,IAAI,CAACG,IAAI,CAA+BF,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOE,IAAIA,CAACF,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIJ,UAAU,CAClB,8CAA8CI,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACF,cAAc,EAAE;MACxB,MAAM,IAAIH,iBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACM,IAAI,CAA+BC,IAAI,CAACF,IAAI,CAAC;EACrD;;EAEA;EACA,IAAWG,OAAOA,CAACC,QAAgC,EAAE;IAClD,IAAI,CAACH,IAAI,CAA+BE,OAAO,GAAGC,QAAQ;EAC7D;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioNode","InvalidStateError","RangeError","AudioEventEmitter","AudioScheduledSourceNode","hasBeenStarted","audioEventEmitter","global","start","when","node","stop","onended","callback","subscription","addAudioEventListener","subscriptionId"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAEzD,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,wBAAwB,SAASJ,SAAS,CAAC;EACpDK,cAAc,GAAY,KAAK;EACxBC,iBAAiB,GAAG,IAAIH,iBAAiB,CACxDI,MAAM,CAACJ,iBACT,CAAC;EAEMK,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIP,UAAU,CAClB,8CAA8CO,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACJ,cAAc,EAAE;MACvB,MAAM,IAAIJ,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACI,cAAc,GAAG,IAAI;IACzB,IAAI,CAACK,IAAI,CAA+BF,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOE,IAAIA,CAACF,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIP,UAAU,CAClB,8CAA8CO,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACJ,cAAc,EAAE;MACxB,MAAM,IAAIJ,iBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACS,IAAI,CAA+BC,IAAI,CAACF,IAAI,CAAC;EACrD;;EAEA;EACA,IAAWG,OAAOA,CAACC,QAA6C,EAAE;IAChE,MAAMC,YAAY,GAAG,IAAI,CAACR,iBAAiB,CAACS,qBAAqB,CAC/D,OAAO,EACPF,QACF,CAAC;IAEA,IAAI,CAACH,IAAI,CAA+BE,OAAO,GAC9CE,YAAY,CAACE,cAAc;EAC/B;AACF","ignoreList":[]}
@@ -6,10 +6,10 @@ import AudioParam from "./AudioParam.js";
6
6
  export default class BiquadFilterNode extends AudioNode {
7
7
  constructor(context, biquadFilter) {
8
8
  super(context, biquadFilter);
9
- this.frequency = new AudioParam(biquadFilter.frequency);
10
- this.detune = new AudioParam(biquadFilter.detune);
11
- this.Q = new AudioParam(biquadFilter.Q);
12
- this.gain = new AudioParam(biquadFilter.gain);
9
+ this.frequency = new AudioParam(biquadFilter.frequency, context);
10
+ this.detune = new AudioParam(biquadFilter.detune, context);
11
+ this.Q = new AudioParam(biquadFilter.Q, context);
12
+ this.gain = new AudioParam(biquadFilter.gain, context);
13
13
  }
14
14
  get type() {
15
15
  return this.node.type;
@@ -1 +1 @@
1
- {"version":3,"names":["InvalidAccessError","AudioNode","AudioParam","BiquadFilterNode","constructor","context","biquadFilter","frequency","detune","Q","gain","type","node","value","getFrequencyResponse","frequencyArray","magResponseOutput","phaseResponseOutput","length"],"sourceRoot":"../../../src","sources":["core/BiquadFilterNode.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,oBAAW;AAE9C,OAAOC,SAAS,MAAM,gBAAa;AACnC,OAAOC,UAAU,MAAM,iBAAc;AAIrC,eAAe,MAAMC,gBAAgB,SAASF,SAAS,CAAC;EAMtDG,WAAWA,CAACC,OAAyB,EAAEC,YAA+B,EAAE;IACtE,KAAK,CAACD,OAAO,EAAEC,YAAY,CAAC;IAC5B,IAAI,CAACC,SAAS,GAAG,IAAIL,UAAU,CAACI,YAAY,CAACC,SAAS,CAAC;IACvD,IAAI,CAACC,MAAM,GAAG,IAAIN,UAAU,CAACI,YAAY,CAACE,MAAM,CAAC;IACjD,IAAI,CAACC,CAAC,GAAG,IAAIP,UAAU,CAACI,YAAY,CAACG,CAAC,CAAC;IACvC,IAAI,CAACC,IAAI,GAAG,IAAIR,UAAU,CAACI,YAAY,CAACI,IAAI,CAAC;EAC/C;EAEA,IAAWC,IAAIA,CAAA,EAAqB;IAClC,OAAQ,IAAI,CAACC,IAAI,CAAuBD,IAAI;EAC9C;EAEA,IAAWA,IAAIA,CAACE,KAAuB,EAAE;IACtC,IAAI,CAACD,IAAI,CAAuBD,IAAI,GAAGE,KAAK;EAC/C;EAEOC,oBAAoBA,CACzBC,cAA4B,EAC5BC,iBAA+B,EAC/BC,mBAAiC,EACjC;IACA,IACEF,cAAc,CAACG,MAAM,KAAKF,iBAAiB,CAACE,MAAM,IAClDH,cAAc,CAACG,MAAM,KAAKD,mBAAmB,CAACC,MAAM,EACpD;MACA,MAAM,IAAIlB,kBAAkB,CAC1B,8DAA8De,cAAc,CAACG,MAAM,wBAAwBF,iBAAiB,CAACE,MAAM,0BAA0BD,mBAAmB,CAACC,MAAM,EACzL,CAAC;IACH;IACC,IAAI,CAACN,IAAI,CAAuBE,oBAAoB,CACnDC,cAAc,EACdC,iBAAiB,EACjBC,mBACF,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"names":["InvalidAccessError","AudioNode","AudioParam","BiquadFilterNode","constructor","context","biquadFilter","frequency","detune","Q","gain","type","node","value","getFrequencyResponse","frequencyArray","magResponseOutput","phaseResponseOutput","length"],"sourceRoot":"../../../src","sources":["core/BiquadFilterNode.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,oBAAW;AAE9C,OAAOC,SAAS,MAAM,gBAAa;AACnC,OAAOC,UAAU,MAAM,iBAAc;AAIrC,eAAe,MAAMC,gBAAgB,SAASF,SAAS,CAAC;EAMtDG,WAAWA,CAACC,OAAyB,EAAEC,YAA+B,EAAE;IACtE,KAAK,CAACD,OAAO,EAAEC,YAAY,CAAC;IAC5B,IAAI,CAACC,SAAS,GAAG,IAAIL,UAAU,CAACI,YAAY,CAACC,SAAS,EAAEF,OAAO,CAAC;IAChE,IAAI,CAACG,MAAM,GAAG,IAAIN,UAAU,CAACI,YAAY,CAACE,MAAM,EAAEH,OAAO,CAAC;IAC1D,IAAI,CAACI,CAAC,GAAG,IAAIP,UAAU,CAACI,YAAY,CAACG,CAAC,EAAEJ,OAAO,CAAC;IAChD,IAAI,CAACK,IAAI,GAAG,IAAIR,UAAU,CAACI,YAAY,CAACI,IAAI,EAAEL,OAAO,CAAC;EACxD;EAEA,IAAWM,IAAIA,CAAA,EAAqB;IAClC,OAAQ,IAAI,CAACC,IAAI,CAAuBD,IAAI;EAC9C;EAEA,IAAWA,IAAIA,CAACE,KAAuB,EAAE;IACtC,IAAI,CAACD,IAAI,CAAuBD,IAAI,GAAGE,KAAK;EAC/C;EAEOC,oBAAoBA,CACzBC,cAA4B,EAC5BC,iBAA+B,EAC/BC,mBAAiC,EACjC;IACA,IACEF,cAAc,CAACG,MAAM,KAAKF,iBAAiB,CAACE,MAAM,IAClDH,cAAc,CAACG,MAAM,KAAKD,mBAAmB,CAACC,MAAM,EACpD;MACA,MAAM,IAAIlB,kBAAkB,CAC1B,8DAA8De,cAAc,CAACG,MAAM,wBAAwBF,iBAAiB,CAACE,MAAM,0BAA0BD,mBAAmB,CAACC,MAAM,EACzL,CAAC;IACH;IACC,IAAI,CAACN,IAAI,CAAuBE,oBAAoB,CACnDC,cAAc,EACdC,iBAAiB,EACjBC,mBACF,CAAC;EACH;AACF","ignoreList":[]}
@@ -5,7 +5,7 @@ import AudioParam from "./AudioParam.js";
5
5
  export default class GainNode extends AudioNode {
6
6
  constructor(context, gain) {
7
7
  super(context, gain);
8
- this.gain = new AudioParam(gain.gain);
8
+ this.gain = new AudioParam(gain.gain, context);
9
9
  }
10
10
  }
11
11
  //# sourceMappingURL=GainNode.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AudioNode","AudioParam","GainNode","constructor","context","gain"],"sourceRoot":"../../../src","sources":["core/GainNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,OAAOC,UAAU,MAAM,iBAAc;AAGrC,eAAe,MAAMC,QAAQ,SAASF,SAAS,CAAC;EAG9CG,WAAWA,CAACC,OAAyB,EAAEC,IAAe,EAAE;IACtD,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IACpB,IAAI,CAACA,IAAI,GAAG,IAAIJ,UAAU,CAACI,IAAI,CAACA,IAAI,CAAC;EACvC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioNode","AudioParam","GainNode","constructor","context","gain"],"sourceRoot":"../../../src","sources":["core/GainNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,OAAOC,UAAU,MAAM,iBAAc;AAGrC,eAAe,MAAMC,QAAQ,SAASF,SAAS,CAAC;EAG9CG,WAAWA,CAACC,OAAyB,EAAEC,IAAe,EAAE;IACtD,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IACpB,IAAI,CAACA,IAAI,GAAG,IAAIJ,UAAU,CAACI,IAAI,CAACA,IAAI,EAAED,OAAO,CAAC;EAChD;AACF","ignoreList":[]}
@@ -6,8 +6,8 @@ import { InvalidStateError } from "../errors/index.js";
6
6
  export default class OscillatorNode extends AudioScheduledSourceNode {
7
7
  constructor(context, node) {
8
8
  super(context, node);
9
- this.frequency = new AudioParam(node.frequency);
10
- this.detune = new AudioParam(node.detune);
9
+ this.frequency = new AudioParam(node.frequency, context);
10
+ this.detune = new AudioParam(node.detune, context);
11
11
  this.type = node.type;
12
12
  }
13
13
  get type() {
@@ -1 +1 @@
1
- {"version":3,"names":["AudioScheduledSourceNode","AudioParam","InvalidStateError","OscillatorNode","constructor","context","node","frequency","detune","type","value","setPeriodicWave","wave","periodicWave"],"sourceRoot":"../../../src","sources":["core/OscillatorNode.ts"],"mappings":";;AAEA,OAAOA,wBAAwB,MAAM,+BAA4B;AACjE,OAAOC,UAAU,MAAM,iBAAc;AAGrC,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,cAAc,SAASH,wBAAwB,CAAC;EAInEI,WAAWA,CAACC,OAAyB,EAAEC,IAAqB,EAAE;IAC5D,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IACpB,IAAI,CAACC,SAAS,GAAG,IAAIN,UAAU,CAACK,IAAI,CAACC,SAAS,CAAC;IAC/C,IAAI,CAACC,MAAM,GAAG,IAAIP,UAAU,CAACK,IAAI,CAACE,MAAM,CAAC;IACzC,IAAI,CAACC,IAAI,GAAGH,IAAI,CAACG,IAAI;EACvB;EAEA,IAAWA,IAAIA,CAAA,EAAmB;IAChC,OAAQ,IAAI,CAACH,IAAI,CAAqBG,IAAI;EAC5C;EAEA,IAAWA,IAAIA,CAACC,KAAqB,EAAE;IACrC,IAAIA,KAAK,KAAK,QAAQ,EAAE;MACtB,MAAM,IAAIR,iBAAiB,CACzB,uGACF,CAAC;IACH;IAEC,IAAI,CAACI,IAAI,CAAqBG,IAAI,GAAGC,KAAK;EAC7C;EAEOC,eAAeA,CAACC,IAAkB,EAAQ;IAC9C,IAAI,CAACN,IAAI,CAAqBK,eAAe,CAACC,IAAI,CAACC,YAAY,CAAC;EACnE;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioScheduledSourceNode","AudioParam","InvalidStateError","OscillatorNode","constructor","context","node","frequency","detune","type","value","setPeriodicWave","wave","periodicWave"],"sourceRoot":"../../../src","sources":["core/OscillatorNode.ts"],"mappings":";;AAEA,OAAOA,wBAAwB,MAAM,+BAA4B;AACjE,OAAOC,UAAU,MAAM,iBAAc;AAGrC,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,cAAc,SAASH,wBAAwB,CAAC;EAInEI,WAAWA,CAACC,OAAyB,EAAEC,IAAqB,EAAE;IAC5D,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IACpB,IAAI,CAACC,SAAS,GAAG,IAAIN,UAAU,CAACK,IAAI,CAACC,SAAS,EAAEF,OAAO,CAAC;IACxD,IAAI,CAACG,MAAM,GAAG,IAAIP,UAAU,CAACK,IAAI,CAACE,MAAM,EAAEH,OAAO,CAAC;IAClD,IAAI,CAACI,IAAI,GAAGH,IAAI,CAACG,IAAI;EACvB;EAEA,IAAWA,IAAIA,CAAA,EAAmB;IAChC,OAAQ,IAAI,CAACH,IAAI,CAAqBG,IAAI;EAC5C;EAEA,IAAWA,IAAIA,CAACC,KAAqB,EAAE;IACrC,IAAIA,KAAK,KAAK,QAAQ,EAAE;MACtB,MAAM,IAAIR,iBAAiB,CACzB,uGACF,CAAC;IACH;IAEC,IAAI,CAACI,IAAI,CAAqBG,IAAI,GAAGC,KAAK;EAC7C;EAEOC,eAAeA,CAACC,IAAkB,EAAQ;IAC9C,IAAI,CAACN,IAAI,CAAqBK,eAAe,CAACC,IAAI,CAACC,YAAY,CAAC;EACnE;AACF","ignoreList":[]}
@@ -5,7 +5,7 @@ import AudioParam from "./AudioParam.js";
5
5
  export default class StereoPannerNode extends AudioNode {
6
6
  constructor(context, pan) {
7
7
  super(context, pan);
8
- this.pan = new AudioParam(pan.pan);
8
+ this.pan = new AudioParam(pan.pan, context);
9
9
  }
10
10
  }
11
11
  //# sourceMappingURL=StereoPannerNode.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AudioNode","AudioParam","StereoPannerNode","constructor","context","pan"],"sourceRoot":"../../../src","sources":["core/StereoPannerNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,OAAOC,UAAU,MAAM,iBAAc;AAGrC,eAAe,MAAMC,gBAAgB,SAASF,SAAS,CAAC;EAGtDG,WAAWA,CAACC,OAAyB,EAAEC,GAAsB,EAAE;IAC7D,KAAK,CAACD,OAAO,EAAEC,GAAG,CAAC;IACnB,IAAI,CAACA,GAAG,GAAG,IAAIJ,UAAU,CAACI,GAAG,CAACA,GAAG,CAAC;EACpC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AudioNode","AudioParam","StereoPannerNode","constructor","context","pan"],"sourceRoot":"../../../src","sources":["core/StereoPannerNode.ts"],"mappings":";;AACA,OAAOA,SAAS,MAAM,gBAAa;AACnC,OAAOC,UAAU,MAAM,iBAAc;AAGrC,eAAe,MAAMC,gBAAgB,SAASF,SAAS,CAAC;EAGtDG,WAAWA,CAACC,OAAyB,EAAEC,GAAsB,EAAE;IAC7D,KAAK,CAACD,OAAO,EAAEC,GAAG,CAAC;IACnB,IAAI,CAACA,GAAG,GAAG,IAAIJ,UAAU,CAACI,GAAG,CAACA,GAAG,EAAED,OAAO,CAAC;EAC7C;AACF","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ import AudioEventSubscription from "./AudioEventSubscription.js";
4
+ export default class AudioEventEmitter {
5
+ constructor(audioEventEmitter) {
6
+ this.audioEventEmitter = audioEventEmitter;
7
+ }
8
+ addAudioEventListener(name, callback) {
9
+ const subscriptionId = this.audioEventEmitter.addAudioEventListener(name, callback);
10
+ return new AudioEventSubscription(subscriptionId, name, this);
11
+ }
12
+ removeAudioEventListener(name, subscriptionId) {
13
+ this.audioEventEmitter.removeAudioEventListener(name, subscriptionId);
14
+ }
15
+ }
16
+ //# sourceMappingURL=AudioEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AudioEventSubscription","AudioEventEmitter","constructor","audioEventEmitter","addAudioEventListener","name","callback","subscriptionId","removeAudioEventListener"],"sourceRoot":"../../../src","sources":["events/AudioEventEmitter.ts"],"mappings":";;AACA,OAAOA,sBAAsB,MAAM,6BAA0B;AAG7D,eAAe,MAAMC,iBAAiB,CAAC;EAGrCC,WAAWA,CAACC,iBAAqC,EAAE;IACjD,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB;EAC5C;EAEAC,qBAAqBA,CACnBC,IAAU,EACVC,QAAkC,EACV;IACxB,MAAMC,cAAc,GAAG,IAAI,CAACJ,iBAAiB,CAACC,qBAAqB,CACjEC,IAAI,EACJC,QACF,CAAC;IACD,OAAO,IAAIN,sBAAsB,CAACO,cAAc,EAAEF,IAAI,EAAE,IAAI,CAAC;EAC/D;EAEAG,wBAAwBA,CACtBH,IAAU,EACVE,cAAsB,EAChB;IACN,IAAI,CAACJ,iBAAiB,CAACK,wBAAwB,CAACH,IAAI,EAAEE,cAAc,CAAC;EACvE;AACF","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ export default class AudioEventSubscription {
4
+ /** @internal */
5
+
6
+ constructor(subscriptionId, eventName, audioEventEmitter) {
7
+ this.subscriptionId = subscriptionId;
8
+ this.eventName = eventName;
9
+ this.audioEventEmitter = audioEventEmitter;
10
+ }
11
+ remove() {
12
+ this.audioEventEmitter.removeAudioEventListener(this.eventName, this.subscriptionId);
13
+ }
14
+ }
15
+ //# sourceMappingURL=AudioEventSubscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AudioEventSubscription","constructor","subscriptionId","eventName","audioEventEmitter","remove","removeAudioEventListener"],"sourceRoot":"../../../src","sources":["events/AudioEventSubscription.ts"],"mappings":";;AAGA,eAAe,MAAMA,sBAAsB,CAAC;EAG1C;;EAGAC,WAAWA,CACTC,cAAsB,EACtBC,SAAyB,EACzBC,iBAAoC,EACpC;IACA,IAAI,CAACF,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;EAC5C;EAEOC,MAAMA,CAAA,EAAS;IACpB,IAAI,CAACD,iBAAiB,CAACE,wBAAwB,CAC7C,IAAI,CAACH,SAAS,EACd,IAAI,CAACD,cACP,CAAC;EACH;AACF","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ import AudioEventEmitter from "./AudioEventEmitter.js";
4
+ import AudioEventSubscription from "./AudioEventSubscription.js";
5
+ export { AudioEventEmitter, AudioEventSubscription };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AudioEventEmitter","AudioEventSubscription"],"sourceRoot":"../../../src","sources":["events/index.ts"],"mappings":";;AAAA,OAAOA,iBAAiB,MAAM,wBAAqB;AACnD,OAAOC,sBAAsB,MAAM,6BAA0B;AAE7D,SAASD,iBAAiB,EAAEC,sBAAsB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["events/types.ts"],"mappings":"","ignoreList":[]}
@@ -6,7 +6,7 @@ export default function useSystemVolume() {
6
6
  const [volume, setVolume] = useState(0);
7
7
  useEffect(() => {
8
8
  AudioManager.observeVolumeChanges(true);
9
- const listener = AudioManager.enableRemoteEvent('volumeChange', e => {
9
+ const listener = AudioManager.enableSystemEvent('volumeChange', e => {
10
10
  setVolume(parseFloat(e.value.toFixed(2)));
11
11
  });
12
12
  return () => {
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","AudioManager","useSystemVolume","volume","setVolume","observeVolumeChanges","listener","enableRemoteEvent","e","parseFloat","value","toFixed","remove"],"sourceRoot":"../../../src","sources":["hooks/useSytemVolume.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,OAAOC,YAAY,MAAM,2BAAwB;AAEjD,eAAe,SAASC,eAAeA,CAAA,EAAG;EACxC,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGJ,QAAQ,CAAC,CAAC,CAAC;EAEvCD,SAAS,CAAC,MAAM;IACdE,YAAY,CAACI,oBAAoB,CAAC,IAAI,CAAC;IACvC,MAAMC,QAAQ,GAAGL,YAAY,CAACM,iBAAiB,CAAC,cAAc,EAAGC,CAAC,IAAK;MACrEJ,SAAS,CAACK,UAAU,CAACD,CAAC,CAACE,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAO,MAAM;MACXL,QAAQ,EAAEM,MAAM,CAAC,CAAC;MAClBX,YAAY,CAACI,oBAAoB,CAAC,KAAK,CAAC;IAC1C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOF,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","AudioManager","useSystemVolume","volume","setVolume","observeVolumeChanges","listener","enableSystemEvent","e","parseFloat","value","toFixed","remove"],"sourceRoot":"../../../src","sources":["hooks/useSytemVolume.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,OAAOC,YAAY,MAAM,2BAAwB;AAEjD,eAAe,SAASC,eAAeA,CAAA,EAAG;EACxC,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGJ,QAAQ,CAAC,CAAC,CAAC;EAEvCD,SAAS,CAAC,MAAM;IACdE,YAAY,CAACI,oBAAoB,CAAC,IAAI,CAAC;IACvC,MAAMC,QAAQ,GAAGL,YAAY,CAACM,iBAAiB,CAAC,cAAc,EAAGC,CAAC,IAAK;MACrEJ,SAAS,CAACK,UAAU,CAACD,CAAC,CAACE,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAO,MAAM;MACXL,QAAQ,EAAEM,MAAM,CAAC,CAAC;MAElBX,YAAY,CAACI,oBAAoB,CAAC,KAAK,CAAC;IAC1C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOF,MAAM;AACf","ignoreList":[]}
@@ -1,5 +1,6 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
3
  import { TurboModuleRegistry } from 'react-native';
4
- export default TurboModuleRegistry.get('AudioAPIModule');
4
+ const NativeAudioAPIModule = TurboModuleRegistry.get('AudioAPIModule');
5
+ export { NativeAudioAPIModule };
5
6
  //# sourceMappingURL=NativeAudioAPIModule.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAqB,cAAc;AAM/D,eAAeA,mBAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","NativeAudioAPIModule","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,mBAAmB,QAAQ,cAAc;AAwBlD,MAAMC,oBAAoB,GAAGD,mBAAmB,CAACE,GAAG,CAAO,gBAAgB,CAAC;AAE5E,SAASD,oBAAoB","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- import NativeAudioAPIModule from "./NativeAudioAPIModule.js";
4
- import { AudioManagerModule, eventEmitter } from "./NativeAudioManagerModule.js";
5
- export { NativeAudioAPIModule, AudioManagerModule, eventEmitter };
3
+ import { NativeAudioAPIModule } from "./NativeAudioAPIModule.js";
4
+ export { NativeAudioAPIModule };
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeAudioAPIModule","AudioManagerModule","eventEmitter"],"sourceRoot":"../../../src","sources":["specs/index.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,oBAAoB,MAAM,2BAAwB;AACzD,SAASC,kBAAkB,EAAEC,YAAY,QAAQ,+BAA4B;AAE7E,SAASF,oBAAoB,EAAEC,kBAAkB,EAAEC,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["NativeAudioAPIModule"],"sourceRoot":"../../../src","sources":["specs/index.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,oBAAoB,QAAQ,2BAAwB;AAE7D,SAASA,oBAAoB","ignoreList":[]}
@@ -1,53 +1,47 @@
1
1
  "use strict";
2
2
 
3
- import { AudioManagerModule, eventEmitter } from "../specs/index.js";
3
+ import { NativeAudioAPIModule } from "../specs/index.js";
4
+ import { AudioEventEmitter } from "../events/index.js";
5
+ if (global.AudioEventEmitter == null) {
6
+ if (!NativeAudioAPIModule) {
7
+ throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
8
+ }
9
+ NativeAudioAPIModule.install();
10
+ }
4
11
  class AudioManager {
12
+ constructor() {
13
+ this.audioEventEmitter = new AudioEventEmitter(global.AudioEventEmitter);
14
+ }
5
15
  setLockScreenInfo(info) {
6
- AudioManagerModule.setLockScreenInfo(info);
16
+ NativeAudioAPIModule.setLockScreenInfo(info);
7
17
  }
8
18
  resetLockScreenInfo() {
9
- AudioManagerModule.resetLockScreenInfo();
19
+ NativeAudioAPIModule.resetLockScreenInfo();
10
20
  }
11
21
  setAudioSessionOptions(options) {
12
- AudioManagerModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []);
22
+ NativeAudioAPIModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? []);
13
23
  }
14
24
  getDevicePreferredSampleRate() {
15
- return AudioManagerModule.getDevicePreferredSampleRate();
25
+ return NativeAudioAPIModule.getDevicePreferredSampleRate();
16
26
  }
17
27
  observeAudioInterruptions(enabled) {
18
- AudioManagerModule.observeAudioInterruptions(enabled);
28
+ NativeAudioAPIModule.observeAudioInterruptions(enabled);
19
29
  }
20
30
  observeVolumeChanges(enabled) {
21
- AudioManagerModule.observeVolumeChanges(enabled);
31
+ NativeAudioAPIModule.observeVolumeChanges(enabled);
22
32
  }
23
- enableRemoteCommand(name) {
24
- AudioManagerModule.enableRemoteCommand(name, true);
25
- }
26
- enableRemoteEvent(name, callback) {
27
- let subscription = null;
28
- if (!callback) {
33
+ enableSystemEvent(name, callback, enabled = true) {
34
+ NativeAudioAPIModule.enableRemoteCommand(name, enabled);
35
+ if (!enabled || !callback) {
29
36
  return null;
30
37
  }
31
- switch (name) {
32
- case 'interruption':
33
- subscription = eventEmitter.addListener('onInterruption', callback);
34
- break;
35
- case 'routeChange':
36
- subscription = eventEmitter.addListener('onRouteChange', callback);
37
- break;
38
- case 'volumeChange':
39
- subscription = eventEmitter.addListener('onVolumeChange', callback);
40
- break;
41
- default:
42
- console.error('Unsupported RemoteControl action:', name);
43
- }
44
- return subscription;
38
+ return this.audioEventEmitter.addAudioEventListener(name, callback);
45
39
  }
46
40
  async requestRecordingPermissions() {
47
- return AudioManagerModule.requestRecordingPermissions();
41
+ return NativeAudioAPIModule.requestRecordingPermissions();
48
42
  }
49
43
  async checkRecordingPermissions() {
50
- return AudioManagerModule.checkRecordingPermissions();
44
+ return NativeAudioAPIModule.checkRecordingPermissions();
51
45
  }
52
46
  }
53
47
  export default new AudioManager();
@@ -1 +1 @@
1
- {"version":3,"names":["AudioManagerModule","eventEmitter","AudioManager","setLockScreenInfo","info","resetLockScreenInfo","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","getDevicePreferredSampleRate","observeAudioInterruptions","enabled","observeVolumeChanges","enableRemoteCommand","name","enableRemoteEvent","callback","subscription","addListener","console","error","requestRecordingPermissions","checkRecordingPermissions"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAQA,SAASA,kBAAkB,EAAEC,YAAY,QAAQ,mBAAU;AAG3D,MAAMC,YAAY,CAAC;EACjBC,iBAAiBA,CAACC,IAAoB,EAAE;IACtCJ,kBAAkB,CAACG,iBAAiB,CAACC,IAAI,CAAC;EAC5C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBL,kBAAkB,CAACK,mBAAmB,CAAC,CAAC;EAC1C;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CP,kBAAkB,CAACM,sBAAsB,CACvCC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EACxB,CAAC;EACH;EAEAC,4BAA4BA,CAAA,EAAW;IACrC,OAAOX,kBAAkB,CAACW,4BAA4B,CAAC,CAAC;EAC1D;EAEAC,yBAAyBA,CAACC,OAAgB,EAAE;IAC1Cb,kBAAkB,CAACY,yBAAyB,CAACC,OAAO,CAAC;EACvD;EAEAC,oBAAoBA,CAACD,OAAgB,EAAE;IACrCb,kBAAkB,CAACc,oBAAoB,CAACD,OAAO,CAAC;EAClD;EAEAE,mBAAmBA,CAAiCC,IAAU,EAAQ;IACpEhB,kBAAkB,CAACe,mBAAmB,CAACC,IAAI,EAAE,IAAI,CAAC;EACpD;EAEAC,iBAAiBA,CACfD,IAAU,EACVE,QAAoC,EACR;IAC5B,IAAIC,YAAY,GAAG,IAAI;IACvB,IAAI,CAACD,QAAQ,EAAE;MACb,OAAO,IAAI;IACb;IACA,QAAQF,IAAI;MACV,KAAK,cAAc;QACjBG,YAAY,GAAGlB,YAAY,CAACmB,WAAW,CAAC,gBAAgB,EAAEF,QAAQ,CAAC;QACnE;MAEF,KAAK,aAAa;QAChBC,YAAY,GAAGlB,YAAY,CAACmB,WAAW,CAAC,eAAe,EAAEF,QAAQ,CAAC;QAClE;MAEF,KAAK,cAAc;QACjBC,YAAY,GAAGlB,YAAY,CAACmB,WAAW,CAAC,gBAAgB,EAAEF,QAAQ,CAAC;QACnE;MAEF;QACEG,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEN,IAAI,CAAC;IAC5D;IACA,OAAOG,YAAY;EACrB;EAEA,MAAMI,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOvB,kBAAkB,CAACuB,2BAA2B,CAAC,CAAC;EACzD;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOxB,kBAAkB,CAACwB,yBAAyB,CAAC,CAAC;EACvD;AACF;AAEA,eAAe,IAAItB,YAAY,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NativeAudioAPIModule","AudioEventEmitter","global","Error","install","AudioManager","constructor","audioEventEmitter","setLockScreenInfo","info","resetLockScreenInfo","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","getDevicePreferredSampleRate","observeAudioInterruptions","enabled","observeVolumeChanges","enableSystemEvent","name","callback","enableRemoteCommand","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;AAEA,SAASA,oBAAoB,QAAQ,mBAAU;AAC/C,SAASC,iBAAiB,QAAgC,oBAAW;AAErE,IAAIC,MAAM,CAACD,iBAAiB,IAAI,IAAI,EAAE;EACpC,IAAI,CAACD,oBAAoB,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,iFACF,CAAC;EACH;EAEAH,oBAAoB,CAACI,OAAO,CAAC,CAAC;AAChC;AAEA,MAAMC,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIN,iBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAO,iBAAiBA,CAACC,IAAoB,EAAE;IACtCT,oBAAoB,CAAEQ,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBV,oBAAoB,CAAEU,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CZ,oBAAoB,CAAEW,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EACxB,CAAC;EACH;EAEAC,4BAA4BA,CAAA,EAAW;IACrC,OAAOhB,oBAAoB,CAAEgB,4BAA4B,CAAC,CAAC;EAC7D;EAEAC,yBAAyBA,CAACC,OAAgB,EAAE;IAC1ClB,oBAAoB,CAAEiB,yBAAyB,CAACC,OAAO,CAAC;EAC1D;EAEAC,oBAAoBA,CAACD,OAAgB,EAAE;IACrClB,oBAAoB,CAAEmB,oBAAoB,CAACD,OAAO,CAAC;EACrD;EAEAE,iBAAiBA,CACfC,IAAU,EACVC,QAAoC,EACpCJ,OAAO,GAAG,IAAI,EACiB;IAC/BlB,oBAAoB,CAAEuB,mBAAmB,CAACF,IAAI,EAAEH,OAAO,CAAC;IAExD,IAAI,CAACA,OAAO,IAAI,CAACI,QAAQ,EAAE;MACzB,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAACf,iBAAiB,CAACiB,qBAAqB,CAACH,IAAI,EAAEC,QAAQ,CAAC;EACrE;EAEA,MAAMG,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOzB,oBAAoB,CAAEyB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAO1B,oBAAoB,CAAE0B,yBAAyB,CAAC,CAAC;EAC1D;AACF;AAEA,eAAe,IAAIrB,YAAY,CAAC,CAAC","ignoreList":[]}