react-native-audio-api 0.8.3-nightly-ea268f4-20251006 → 0.8.3

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 (282) hide show
  1. package/README.md +39 -40
  2. package/RNAudioAPI.podspec +12 -17
  3. package/android/build.gradle +4 -44
  4. package/android/src/main/cpp/audioapi/CMakeLists.txt +0 -65
  5. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +1 -29
  6. package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +0 -14
  7. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +1 -7
  8. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +1 -6
  9. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +1 -1
  10. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +1 -11
  11. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +2 -15
  12. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +18 -53
  13. package/common/cpp/audioapi/HostObjects/AnalyserNodeHostObject.h +149 -0
  14. package/common/cpp/audioapi/HostObjects/AudioBufferBaseSourceNodeHostObject.h +76 -0
  15. package/common/cpp/audioapi/HostObjects/AudioBufferHostObject.h +120 -0
  16. package/common/cpp/audioapi/HostObjects/AudioBufferQueueSourceNodeHostObject.h +67 -0
  17. package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +142 -0
  18. package/common/cpp/audioapi/HostObjects/AudioContextHostObject.h +46 -6
  19. package/common/cpp/audioapi/HostObjects/AudioNodeHostObject.cpp +6 -70
  20. package/common/cpp/audioapi/HostObjects/AudioNodeHostObject.h +66 -10
  21. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +91 -17
  22. package/common/cpp/audioapi/HostObjects/AudioRecorderHostObject.h +86 -0
  23. package/common/cpp/audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h +56 -0
  24. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +6 -362
  25. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +241 -29
  26. package/common/cpp/audioapi/HostObjects/BiquadFilterNodeHostObject.h +89 -0
  27. package/common/cpp/audioapi/HostObjects/GainNodeHostObject.h +27 -0
  28. package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.h +50 -6
  29. package/common/cpp/audioapi/HostObjects/OscillatorNodeHostObject.h +65 -0
  30. package/common/cpp/audioapi/HostObjects/{sources/RecorderAdapterNodeHostObject.h → RecorderAdapterNodeHostObject.h} +2 -1
  31. package/common/cpp/audioapi/HostObjects/StereoPannerNodeHostObject.h +29 -0
  32. package/common/cpp/audioapi/HostObjects/StreamerNodeHostObject.h +30 -0
  33. package/common/cpp/audioapi/core/AudioContext.cpp +2 -3
  34. package/common/cpp/audioapi/core/AudioContext.h +1 -2
  35. package/common/cpp/audioapi/core/AudioNode.h +1 -1
  36. package/common/cpp/audioapi/core/AudioParam.cpp +2 -2
  37. package/common/cpp/audioapi/core/AudioParam.h +1 -1
  38. package/common/cpp/audioapi/core/{utils/AudioParamEventQueue.cpp → AudioParamEventQueue.cpp} +7 -13
  39. package/common/cpp/audioapi/core/BaseAudioContext.cpp +3 -47
  40. package/common/cpp/audioapi/core/BaseAudioContext.h +4 -13
  41. package/common/cpp/audioapi/core/{utils/Constants.h → Constants.h} +0 -5
  42. package/common/cpp/audioapi/core/OfflineAudioContext.cpp +3 -4
  43. package/common/cpp/audioapi/core/OfflineAudioContext.h +1 -2
  44. package/common/cpp/audioapi/core/effects/PeriodicWave.cpp +1 -1
  45. package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +1 -1
  46. package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +1 -1
  47. package/common/cpp/audioapi/core/inputs/AudioRecorder.h +2 -2
  48. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +10 -47
  49. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +3 -18
  50. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +12 -94
  51. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +2 -8
  52. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +42 -33
  53. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +8 -6
  54. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +6 -1
  55. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +1 -1
  56. package/common/cpp/audioapi/core/sources/StreamerNode.h +8 -0
  57. package/common/cpp/audioapi/dsp/Windows.cpp +1 -1
  58. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +1 -1
  59. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +1 -2
  60. package/common/cpp/audioapi/events/AudioEventHandlerRegistryHostObject.h +48 -0
  61. package/common/cpp/audioapi/jsi/AudioArrayBuffer.h +1 -14
  62. package/common/cpp/audioapi/jsi/JsiHostObject.h +12 -6
  63. package/common/cpp/audioapi/jsi/JsiPromise.cpp +0 -49
  64. package/common/cpp/audioapi/jsi/JsiPromise.h +1 -29
  65. package/common/cpp/audioapi/utils/AudioBus.cpp +1 -1
  66. package/common/cpp/test/CMakeLists.txt +3 -11
  67. package/common/cpp/test/GainTest.cpp +1 -2
  68. package/common/cpp/test/OscillatorTest.cpp +1 -2
  69. package/ios/audioapi/ios/AudioAPIModule.mm +5 -32
  70. package/ios/audioapi/ios/core/IOSAudioPlayer.mm +1 -1
  71. package/ios/audioapi/ios/core/IOSAudioRecorder.h +1 -2
  72. package/ios/audioapi/ios/core/IOSAudioRecorder.mm +1 -1
  73. package/ios/audioapi/ios/events/IOSAudioEventHandlerRegistry.h +7 -0
  74. package/ios/audioapi/ios/events/IOSAudioEventHandlerRegistry.mm +12 -0
  75. package/lib/commonjs/api.js +2 -36
  76. package/lib/commonjs/api.js.map +1 -1
  77. package/lib/commonjs/api.web.js +0 -8
  78. package/lib/commonjs/api.web.js.map +1 -1
  79. package/lib/commonjs/core/AudioBufferBaseSourceNode.js +7 -7
  80. package/lib/commonjs/core/AudioBufferBaseSourceNode.js.map +1 -1
  81. package/lib/commonjs/core/AudioBufferQueueSourceNode.js +6 -1
  82. package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
  83. package/lib/commonjs/core/AudioBufferSourceNode.js +0 -15
  84. package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
  85. package/lib/commonjs/core/AudioContext.js +1 -10
  86. package/lib/commonjs/core/AudioContext.js.map +1 -1
  87. package/lib/commonjs/core/AudioScheduledSourceNode.js +4 -4
  88. package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
  89. package/lib/commonjs/core/BaseAudioContext.js +11 -66
  90. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  91. package/lib/commonjs/core/OfflineAudioContext.js +2 -11
  92. package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
  93. package/lib/commonjs/core/OscillatorNode.js +0 -6
  94. package/lib/commonjs/core/OscillatorNode.js.map +1 -1
  95. package/lib/commonjs/hooks/{useSystemVolume.js → useSytemVolume.js} +1 -1
  96. package/lib/commonjs/hooks/useSytemVolume.js.map +1 -0
  97. package/lib/commonjs/utils/index.js +0 -9
  98. package/lib/commonjs/utils/index.js.map +1 -1
  99. package/lib/commonjs/web-core/AudioContext.js +0 -4
  100. package/lib/commonjs/web-core/AudioContext.js.map +1 -1
  101. package/lib/commonjs/web-core/AudioScheduledSourceNode.js +1 -1
  102. package/lib/commonjs/web-core/AudioScheduledSourceNode.js.map +1 -1
  103. package/lib/commonjs/web-core/OfflineAudioContext.js +0 -4
  104. package/lib/commonjs/web-core/OfflineAudioContext.js.map +1 -1
  105. package/lib/module/api.js +2 -6
  106. package/lib/module/api.js.map +1 -1
  107. package/lib/module/api.web.js +0 -1
  108. package/lib/module/api.web.js.map +1 -1
  109. package/lib/module/core/AudioBufferBaseSourceNode.js +7 -7
  110. package/lib/module/core/AudioBufferBaseSourceNode.js.map +1 -1
  111. package/lib/module/core/AudioBufferQueueSourceNode.js +6 -1
  112. package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
  113. package/lib/module/core/AudioBufferSourceNode.js +0 -15
  114. package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
  115. package/lib/module/core/AudioContext.js +1 -10
  116. package/lib/module/core/AudioContext.js.map +1 -1
  117. package/lib/module/core/AudioScheduledSourceNode.js +4 -4
  118. package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
  119. package/lib/module/core/BaseAudioContext.js +11 -66
  120. package/lib/module/core/BaseAudioContext.js.map +1 -1
  121. package/lib/module/core/OfflineAudioContext.js +2 -11
  122. package/lib/module/core/OfflineAudioContext.js.map +1 -1
  123. package/lib/module/core/OscillatorNode.js +0 -6
  124. package/lib/module/core/OscillatorNode.js.map +1 -1
  125. package/lib/module/hooks/{useSystemVolume.js → useSytemVolume.js} +1 -1
  126. package/lib/module/hooks/useSytemVolume.js.map +1 -0
  127. package/lib/module/utils/index.js +0 -8
  128. package/lib/module/utils/index.js.map +1 -1
  129. package/lib/module/web-core/AudioContext.js +0 -4
  130. package/lib/module/web-core/AudioContext.js.map +1 -1
  131. package/lib/module/web-core/AudioScheduledSourceNode.js +1 -1
  132. package/lib/module/web-core/AudioScheduledSourceNode.js.map +1 -1
  133. package/lib/module/web-core/OfflineAudioContext.js +0 -4
  134. package/lib/module/web-core/OfflineAudioContext.js.map +1 -1
  135. package/lib/typescript/api.d.ts +4 -8
  136. package/lib/typescript/api.d.ts.map +1 -1
  137. package/lib/typescript/api.web.d.ts +0 -1
  138. package/lib/typescript/api.web.d.ts.map +1 -1
  139. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts +2 -2
  140. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts.map +1 -1
  141. package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +1 -1
  142. package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
  143. package/lib/typescript/core/AudioBufferSourceNode.d.ts +0 -4
  144. package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
  145. package/lib/typescript/core/AudioContext.d.ts +0 -1
  146. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  147. package/lib/typescript/core/AudioScheduledSourceNode.d.ts +1 -1
  148. package/lib/typescript/core/BaseAudioContext.d.ts +11 -19
  149. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  150. package/lib/typescript/core/OfflineAudioContext.d.ts +0 -1
  151. package/lib/typescript/core/OfflineAudioContext.d.ts.map +1 -1
  152. package/lib/typescript/core/OscillatorNode.d.ts +0 -3
  153. package/lib/typescript/core/OscillatorNode.d.ts.map +1 -1
  154. package/lib/typescript/events/types.d.ts +0 -2
  155. package/lib/typescript/events/types.d.ts.map +1 -1
  156. package/lib/typescript/hooks/{useSystemVolume.d.ts → useSytemVolume.d.ts} +1 -1
  157. package/lib/typescript/hooks/useSytemVolume.d.ts.map +1 -0
  158. package/lib/typescript/interfaces.d.ts +3 -21
  159. package/lib/typescript/interfaces.d.ts.map +1 -1
  160. package/lib/typescript/types.d.ts +1 -2
  161. package/lib/typescript/types.d.ts.map +1 -1
  162. package/lib/typescript/utils/index.d.ts +0 -8
  163. package/lib/typescript/utils/index.d.ts.map +1 -1
  164. package/lib/typescript/web-core/AudioBufferSourceNode.d.ts +1 -1
  165. package/lib/typescript/web-core/AudioContext.d.ts +2 -4
  166. package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
  167. package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts +1 -1
  168. package/lib/typescript/web-core/BaseAudioContext.d.ts +0 -2
  169. package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
  170. package/lib/typescript/web-core/OfflineAudioContext.d.ts +2 -4
  171. package/lib/typescript/web-core/OfflineAudioContext.d.ts.map +1 -1
  172. package/package.json +2 -3
  173. package/src/api.ts +3 -12
  174. package/src/api.web.ts +0 -1
  175. package/src/core/AudioBufferBaseSourceNode.ts +9 -9
  176. package/src/core/AudioBufferQueueSourceNode.ts +9 -1
  177. package/src/core/AudioBufferSourceNode.ts +0 -28
  178. package/src/core/AudioContext.ts +1 -12
  179. package/src/core/AudioScheduledSourceNode.ts +5 -5
  180. package/src/core/BaseAudioContext.ts +13 -149
  181. package/src/core/OfflineAudioContext.ts +2 -18
  182. package/src/core/OscillatorNode.ts +0 -11
  183. package/src/events/types.ts +0 -2
  184. package/src/interfaces.ts +5 -59
  185. package/src/types.ts +1 -3
  186. package/src/utils/index.ts +0 -21
  187. package/src/web-core/AudioBufferSourceNode.tsx +1 -1
  188. package/src/web-core/AudioContext.tsx +2 -7
  189. package/src/web-core/AudioScheduledSourceNode.tsx +1 -1
  190. package/src/web-core/BaseAudioContext.tsx +0 -2
  191. package/src/web-core/OfflineAudioContext.tsx +2 -7
  192. package/android/src/main/cpp/audioapi/android/core/NativeAudioRecorder.hpp +0 -36
  193. package/android/src/main/java/com/swmansion/audioapi/core/NativeAudioRecorder.kt +0 -24
  194. package/common/cpp/audioapi/HostObjects/AudioContextHostObject.cpp +0 -57
  195. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.cpp +0 -105
  196. package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.cpp +0 -70
  197. package/common/cpp/audioapi/HostObjects/WorkletNodeHostObject.h +0 -18
  198. package/common/cpp/audioapi/HostObjects/WorkletProcessingNodeHostObject.h +0 -18
  199. package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.cpp +0 -148
  200. package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.h +0 -37
  201. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +0 -92
  202. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h +0 -29
  203. package/common/cpp/audioapi/HostObjects/effects/GainNodeHostObject.cpp +0 -20
  204. package/common/cpp/audioapi/HostObjects/effects/GainNodeHostObject.h +0 -19
  205. package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.cpp +0 -21
  206. package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.h +0 -21
  207. package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.cpp +0 -41
  208. package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.h +0 -28
  209. package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.cpp +0 -69
  210. package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.h +0 -33
  211. package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.cpp +0 -73
  212. package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.h +0 -29
  213. package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.cpp +0 -94
  214. package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.h +0 -46
  215. package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.cpp +0 -60
  216. package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.h +0 -25
  217. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +0 -152
  218. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.h +0 -37
  219. package/common/cpp/audioapi/HostObjects/sources/AudioScheduledSourceNodeHostObject.cpp +0 -52
  220. package/common/cpp/audioapi/HostObjects/sources/AudioScheduledSourceNodeHostObject.h +0 -25
  221. package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.cpp +0 -19
  222. package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.h +0 -21
  223. package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.cpp +0 -55
  224. package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.h +0 -27
  225. package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.cpp +0 -22
  226. package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.h +0 -28
  227. package/common/cpp/audioapi/HostObjects/sources/WorkletSourceNodeHostObject.h +0 -18
  228. package/common/cpp/audioapi/core/effects/WorkletNode.cpp +0 -87
  229. package/common/cpp/audioapi/core/effects/WorkletNode.h +0 -65
  230. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.cpp +0 -89
  231. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.h +0 -52
  232. package/common/cpp/audioapi/core/sources/ConstantSourceNode.cpp +0 -51
  233. package/common/cpp/audioapi/core/sources/ConstantSourceNode.h +0 -26
  234. package/common/cpp/audioapi/core/sources/WorkletSourceNode.cpp +0 -82
  235. package/common/cpp/audioapi/core/sources/WorkletSourceNode.h +0 -47
  236. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +0 -52
  237. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +0 -9
  238. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.h +0 -73
  239. package/common/cpp/audioapi/utils/ThreadPool.hpp +0 -104
  240. package/common/cpp/test/AudioParamTest.cpp +0 -204
  241. package/lib/commonjs/core/ConstantSourceNode.js +0 -17
  242. package/lib/commonjs/core/ConstantSourceNode.js.map +0 -1
  243. package/lib/commonjs/core/WorkletNode.js +0 -11
  244. package/lib/commonjs/core/WorkletNode.js.map +0 -1
  245. package/lib/commonjs/core/WorkletProcessingNode.js +0 -11
  246. package/lib/commonjs/core/WorkletProcessingNode.js.map +0 -1
  247. package/lib/commonjs/core/WorkletSourceNode.js +0 -11
  248. package/lib/commonjs/core/WorkletSourceNode.js.map +0 -1
  249. package/lib/commonjs/hooks/useSystemVolume.js.map +0 -1
  250. package/lib/commonjs/web-core/ConstantSourceNode.js +0 -17
  251. package/lib/commonjs/web-core/ConstantSourceNode.js.map +0 -1
  252. package/lib/module/core/ConstantSourceNode.js +0 -11
  253. package/lib/module/core/ConstantSourceNode.js.map +0 -1
  254. package/lib/module/core/WorkletNode.js +0 -5
  255. package/lib/module/core/WorkletNode.js.map +0 -1
  256. package/lib/module/core/WorkletProcessingNode.js +0 -5
  257. package/lib/module/core/WorkletProcessingNode.js.map +0 -1
  258. package/lib/module/core/WorkletSourceNode.js +0 -5
  259. package/lib/module/core/WorkletSourceNode.js.map +0 -1
  260. package/lib/module/hooks/useSystemVolume.js.map +0 -1
  261. package/lib/module/web-core/ConstantSourceNode.js +0 -11
  262. package/lib/module/web-core/ConstantSourceNode.js.map +0 -1
  263. package/lib/typescript/core/ConstantSourceNode.d.ts +0 -9
  264. package/lib/typescript/core/ConstantSourceNode.d.ts.map +0 -1
  265. package/lib/typescript/core/WorkletNode.d.ts +0 -4
  266. package/lib/typescript/core/WorkletNode.d.ts.map +0 -1
  267. package/lib/typescript/core/WorkletProcessingNode.d.ts +0 -4
  268. package/lib/typescript/core/WorkletProcessingNode.d.ts.map +0 -1
  269. package/lib/typescript/core/WorkletSourceNode.d.ts +0 -4
  270. package/lib/typescript/core/WorkletSourceNode.d.ts.map +0 -1
  271. package/lib/typescript/hooks/useSystemVolume.d.ts.map +0 -1
  272. package/lib/typescript/web-core/ConstantSourceNode.d.ts +0 -8
  273. package/lib/typescript/web-core/ConstantSourceNode.d.ts.map +0 -1
  274. package/src/core/ConstantSourceNode.ts +0 -13
  275. package/src/core/WorkletNode.ts +0 -3
  276. package/src/core/WorkletProcessingNode.ts +0 -3
  277. package/src/core/WorkletSourceNode.ts +0 -3
  278. package/src/web-core/ConstantSourceNode.tsx +0 -12
  279. /package/common/cpp/audioapi/HostObjects/{destinations/AudioDestinationNodeHostObject.h → AudioDestinationNodeHostObject.h} +0 -0
  280. /package/common/cpp/audioapi/HostObjects/{effects/PeriodicWaveHostObject.h → PeriodicWaveHostObject.h} +0 -0
  281. /package/common/cpp/audioapi/core/{utils/AudioParamEventQueue.h → AudioParamEventQueue.h} +0 -0
  282. /package/src/hooks/{useSystemVolume.ts → useSytemVolume.ts} +0 -0
@@ -0,0 +1,89 @@
1
+ #pragma once
2
+
3
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/core/effects/BiquadFilterNode.h>
6
+
7
+ #include <memory>
8
+ #include <string>
9
+ #include <vector>
10
+
11
+ namespace audioapi {
12
+ using namespace facebook;
13
+
14
+ class BiquadFilterNodeHostObject : public AudioNodeHostObject {
15
+ public:
16
+ explicit BiquadFilterNodeHostObject(
17
+ const std::shared_ptr<BiquadFilterNode> &node)
18
+ : AudioNodeHostObject(node) {
19
+ addGetters(
20
+ JSI_EXPORT_PROPERTY_GETTER(BiquadFilterNodeHostObject, frequency),
21
+ JSI_EXPORT_PROPERTY_GETTER(BiquadFilterNodeHostObject, detune),
22
+ JSI_EXPORT_PROPERTY_GETTER(BiquadFilterNodeHostObject, Q),
23
+ JSI_EXPORT_PROPERTY_GETTER(BiquadFilterNodeHostObject, gain),
24
+ JSI_EXPORT_PROPERTY_GETTER(BiquadFilterNodeHostObject, type));
25
+
26
+ addFunctions(
27
+ JSI_EXPORT_FUNCTION(BiquadFilterNodeHostObject, getFrequencyResponse));
28
+
29
+ addSetters(JSI_EXPORT_PROPERTY_SETTER(BiquadFilterNodeHostObject, type));
30
+ }
31
+
32
+ JSI_PROPERTY_GETTER(frequency) {
33
+ auto biquadFilterNode = std::static_pointer_cast<BiquadFilterNode>(node_);
34
+ auto frequencyParam_ = std::make_shared<AudioParamHostObject>(
35
+ biquadFilterNode->getFrequencyParam());
36
+ return jsi::Object::createFromHostObject(runtime, frequencyParam_);
37
+ }
38
+
39
+ JSI_PROPERTY_GETTER(detune) {
40
+ auto biquadFilterNode = std::static_pointer_cast<BiquadFilterNode>(node_);
41
+ auto detuneParam_ = std::make_shared<AudioParamHostObject>(
42
+ biquadFilterNode->getDetuneParam());
43
+ return jsi::Object::createFromHostObject(runtime, detuneParam_);
44
+ }
45
+
46
+ JSI_PROPERTY_GETTER(Q) {
47
+ auto biquadFilterNode = std::static_pointer_cast<BiquadFilterNode>(node_);
48
+ auto QParam_ =
49
+ std::make_shared<AudioParamHostObject>(biquadFilterNode->getQParam());
50
+ return jsi::Object::createFromHostObject(runtime, QParam_);
51
+ }
52
+
53
+ JSI_PROPERTY_GETTER(gain) {
54
+ auto biquadFilterNode = std::static_pointer_cast<BiquadFilterNode>(node_);
55
+ auto gainParam_ = std::make_shared<AudioParamHostObject>(
56
+ biquadFilterNode->getGainParam());
57
+ return jsi::Object::createFromHostObject(runtime, gainParam_);
58
+ }
59
+
60
+ JSI_PROPERTY_GETTER(type) {
61
+ auto biquadFilterNode = std::static_pointer_cast<BiquadFilterNode>(node_);
62
+ auto type = biquadFilterNode->getType();
63
+ return jsi::String::createFromUtf8(runtime, type);
64
+ }
65
+
66
+ JSI_HOST_FUNCTION(getFrequencyResponse) {
67
+ auto arrayBufferFrequency = args[0].getObject(runtime).getPropertyAsObject(runtime, "buffer").getArrayBuffer(runtime);
68
+ auto frequencyArray = reinterpret_cast<float *>(arrayBufferFrequency.data(runtime));
69
+ auto length = static_cast<int>(arrayBufferFrequency.size(runtime));
70
+
71
+ auto arrayBufferMag = args[1].getObject(runtime).getPropertyAsObject(runtime, "buffer").getArrayBuffer(runtime);
72
+ auto magResponseOut = reinterpret_cast<float *>(arrayBufferMag.data(runtime));
73
+
74
+ auto arrayBufferPhase = args[2].getObject(runtime).getPropertyAsObject(runtime, "buffer").getArrayBuffer(runtime);
75
+ auto phaseResponseOut = reinterpret_cast<float *>(arrayBufferPhase.data(runtime));
76
+
77
+ auto biquadFilterNode = std::static_pointer_cast<BiquadFilterNode>(node_);
78
+ biquadFilterNode->getFrequencyResponse(
79
+ frequencyArray, magResponseOut, phaseResponseOut, length);
80
+
81
+ return jsi::Value::undefined();
82
+ }
83
+
84
+ JSI_PROPERTY_SETTER(type) {
85
+ auto biquadFilterNode = std::static_pointer_cast<BiquadFilterNode>(node_);
86
+ biquadFilterNode->setType(value.getString(runtime).utf8(runtime));
87
+ }
88
+ };
89
+ } // namespace audioapi
@@ -0,0 +1,27 @@
1
+ #pragma once
2
+
3
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/core/effects/GainNode.h>
6
+
7
+ #include <memory>
8
+ #include <vector>
9
+
10
+ namespace audioapi {
11
+ using namespace facebook;
12
+
13
+ class GainNodeHostObject : public AudioNodeHostObject {
14
+ public:
15
+ explicit GainNodeHostObject(const std::shared_ptr<GainNode> &node)
16
+ : AudioNodeHostObject(node) {
17
+ addGetters(JSI_EXPORT_PROPERTY_GETTER(GainNodeHostObject, gain));
18
+ }
19
+
20
+ JSI_PROPERTY_GETTER(gain) {
21
+ auto gainNode = std::static_pointer_cast<GainNode>(node_);
22
+ auto gainParam =
23
+ std::make_shared<AudioParamHostObject>(gainNode->getGainParam());
24
+ return jsi::Object::createFromHostObject(runtime, gainParam);
25
+ }
26
+ };
27
+ } // namespace audioapi
@@ -1,5 +1,6 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/core/OfflineAudioContext.h>
3
4
  #include <audioapi/HostObjects/BaseAudioContextHostObject.h>
4
5
 
5
6
  #include <jsi/jsi.h>
@@ -10,17 +11,60 @@
10
11
  namespace audioapi {
11
12
  using namespace facebook;
12
13
 
13
- class OfflineAudioContext;
14
-
15
14
  class OfflineAudioContextHostObject : public BaseAudioContextHostObject {
16
15
  public:
17
16
  explicit OfflineAudioContextHostObject(
18
17
  const std::shared_ptr<OfflineAudioContext> &offlineAudioContext,
19
18
  jsi::Runtime *runtime,
20
- const std::shared_ptr<react::CallInvoker> &callInvoker);
19
+ const std::shared_ptr<react::CallInvoker> &callInvoker)
20
+ : BaseAudioContextHostObject(offlineAudioContext, runtime, callInvoker) {
21
+ addFunctions(
22
+ JSI_EXPORT_FUNCTION(OfflineAudioContextHostObject, resume),
23
+ JSI_EXPORT_FUNCTION(OfflineAudioContextHostObject, suspend),
24
+ JSI_EXPORT_FUNCTION(OfflineAudioContextHostObject, startRendering));
25
+ }
26
+
27
+ JSI_HOST_FUNCTION(resume) {
28
+ auto promise = promiseVendor_->createPromise([this](const std::shared_ptr<Promise>& promise) {
29
+ auto audioContext = std::static_pointer_cast<OfflineAudioContext>(context_);
30
+ audioContext->resume();
31
+ });
32
+
33
+ return promise;
34
+ }
35
+
36
+ JSI_HOST_FUNCTION(suspend) {
37
+ double when = args[0].getNumber();
38
+
39
+ auto promise = promiseVendor_->createPromise([this, when](const std::shared_ptr<Promise>& promise) {
40
+ auto audioContext = std::static_pointer_cast<OfflineAudioContext>(context_);
41
+ OfflineAudioContextSuspendCallback callback = [promise]() {
42
+ promise->resolve([](jsi::Runtime &runtime) {
43
+ return jsi::Value::undefined();
44
+ });
45
+ };
46
+ audioContext->suspend(when, callback);
47
+ });
48
+
49
+ return promise;
50
+ }
51
+
52
+ JSI_HOST_FUNCTION(startRendering) {
53
+ auto promise = promiseVendor_->createPromise([this](const std::shared_ptr<Promise>& promise) {
54
+ auto audioContext = std::static_pointer_cast<OfflineAudioContext>(context_);
55
+
56
+ OfflineAudioContextResultCallback callback =
57
+ [promise](const std::shared_ptr<AudioBuffer>& audioBuffer) -> void {
58
+ auto audioBufferHostObject = std::make_shared<AudioBufferHostObject>(audioBuffer);
59
+ promise->resolve([audioBufferHostObject = std::move(audioBufferHostObject)](jsi::Runtime &runtime) {
60
+ return jsi::Object::createFromHostObject(runtime, audioBufferHostObject);
61
+ });
62
+ };
63
+
64
+ audioContext->startRendering(callback);
65
+ });
21
66
 
22
- JSI_HOST_FUNCTION_DECL(resume);
23
- JSI_HOST_FUNCTION_DECL(suspend);
24
- JSI_HOST_FUNCTION_DECL(startRendering);
67
+ return promise;
68
+ }
25
69
  };
26
70
  } // namespace audioapi
@@ -0,0 +1,65 @@
1
+ #pragma once
2
+
3
+ #include <audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/HostObjects/PeriodicWaveHostObject.h>
6
+ #include <audioapi/core/sources/OscillatorNode.h>
7
+
8
+ #include <memory>
9
+ #include <string>
10
+ #include <vector>
11
+
12
+ namespace audioapi {
13
+ using namespace facebook;
14
+
15
+ class OscillatorNodeHostObject : public AudioScheduledSourceNodeHostObject {
16
+ public:
17
+ explicit OscillatorNodeHostObject(
18
+ const std::shared_ptr<OscillatorNode> &node)
19
+ : AudioScheduledSourceNodeHostObject(node) {
20
+ addGetters(
21
+ JSI_EXPORT_PROPERTY_GETTER(OscillatorNodeHostObject, frequency),
22
+ JSI_EXPORT_PROPERTY_GETTER(OscillatorNodeHostObject, detune),
23
+ JSI_EXPORT_PROPERTY_GETTER(OscillatorNodeHostObject, type));
24
+
25
+ addFunctions(
26
+ JSI_EXPORT_FUNCTION(OscillatorNodeHostObject, setPeriodicWave));
27
+
28
+ addSetters(JSI_EXPORT_PROPERTY_SETTER(OscillatorNodeHostObject, type));
29
+ }
30
+
31
+ JSI_PROPERTY_GETTER(frequency) {
32
+ auto oscillatorNode = std::static_pointer_cast<OscillatorNode>(node_);
33
+ auto frequencyParam_ = std::make_shared<AudioParamHostObject>(
34
+ oscillatorNode->getFrequencyParam());
35
+ return jsi::Object::createFromHostObject(runtime, frequencyParam_);
36
+ }
37
+
38
+ JSI_PROPERTY_GETTER(detune) {
39
+ auto oscillatorNode = std::static_pointer_cast<OscillatorNode>(node_);
40
+ auto detuneParam_ = std::make_shared<AudioParamHostObject>(
41
+ oscillatorNode->getDetuneParam());
42
+ return jsi::Object::createFromHostObject(runtime, detuneParam_);
43
+ }
44
+
45
+ JSI_PROPERTY_GETTER(type) {
46
+ auto oscillatorNode = std::static_pointer_cast<OscillatorNode>(node_);
47
+ auto waveType = oscillatorNode->getType();
48
+ return jsi::String::createFromUtf8(runtime, waveType);
49
+ }
50
+
51
+ JSI_HOST_FUNCTION(setPeriodicWave) {
52
+ auto oscillatorNode = std::static_pointer_cast<OscillatorNode>(node_);
53
+ auto periodicWave =
54
+ args[0].getObject(runtime).getHostObject<PeriodicWaveHostObject>(
55
+ runtime);
56
+ oscillatorNode->setPeriodicWave(periodicWave->periodicWave_);
57
+ return jsi::Value::undefined();
58
+ }
59
+
60
+ JSI_PROPERTY_SETTER(type) {
61
+ auto oscillatorNode = std::static_pointer_cast<OscillatorNode>(node_);
62
+ oscillatorNode->setType(value.getString(runtime).utf8(runtime));
63
+ }
64
+ };
65
+ } // namespace audioapi
@@ -16,7 +16,8 @@ class RecorderAdapterNodeHostObject : public AudioNodeHostObject {
16
16
  public:
17
17
  explicit RecorderAdapterNodeHostObject(
18
18
  const std::shared_ptr<RecorderAdapterNode> &node)
19
- : AudioNodeHostObject(node) {}
19
+ : AudioNodeHostObject(node) {
20
+ }
20
21
 
21
22
  private:
22
23
  friend class AudioRecorderHostObject;
@@ -0,0 +1,29 @@
1
+ #pragma once
2
+
3
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/core/effects/StereoPannerNode.h>
6
+
7
+ #include <memory>
8
+ #include <string>
9
+ #include <vector>
10
+
11
+ namespace audioapi {
12
+ using namespace facebook;
13
+
14
+ class StereoPannerNodeHostObject : public AudioNodeHostObject {
15
+ public:
16
+ explicit StereoPannerNodeHostObject(
17
+ const std::shared_ptr<StereoPannerNode> &node)
18
+ : AudioNodeHostObject(node) {
19
+ addGetters(JSI_EXPORT_PROPERTY_GETTER(StereoPannerNodeHostObject, pan));
20
+ }
21
+
22
+ JSI_PROPERTY_GETTER(pan) {
23
+ auto stereoPannerNode = std::static_pointer_cast<StereoPannerNode>(node_);
24
+ auto panParam_ =
25
+ std::make_shared<AudioParamHostObject>(stereoPannerNode->getPanParam());
26
+ return jsi::Object::createFromHostObject(runtime, panParam_);
27
+ }
28
+ };
29
+ } // namespace audioapi
@@ -0,0 +1,30 @@
1
+ #pragma once
2
+
3
+ #include <audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/HostObjects/PeriodicWaveHostObject.h>
6
+ #include <audioapi/core/sources/StreamerNode.h>
7
+
8
+ #include <memory>
9
+ #include <string>
10
+ #include <vector>
11
+
12
+ namespace audioapi {
13
+ using namespace facebook;
14
+
15
+ class StreamerNodeHostObject : public AudioScheduledSourceNodeHostObject {
16
+ public:
17
+ explicit StreamerNodeHostObject(
18
+ const std::shared_ptr<StreamerNode> &node)
19
+ : AudioScheduledSourceNodeHostObject(node) {
20
+ addFunctions(JSI_EXPORT_FUNCTION(StreamerNodeHostObject, initialize));
21
+ }
22
+
23
+ JSI_HOST_FUNCTION(initialize) {
24
+ auto streamerNode = std::static_pointer_cast<StreamerNode>(node_);
25
+ auto path = args[0].getString(runtime).utf8(runtime);
26
+ auto result = streamerNode->initialize(path);
27
+ return jsi::Value(result);
28
+ }
29
+ };
30
+ } // namespace audioapi
@@ -14,9 +14,8 @@ AudioContext::AudioContext(
14
14
  float sampleRate,
15
15
  bool initSuspended,
16
16
  const std::shared_ptr<IAudioEventHandlerRegistry>
17
- &audioEventHandlerRegistry,
18
- const RuntimeRegistry &runtimeRegistry)
19
- : BaseAudioContext(audioEventHandlerRegistry, runtimeRegistry) {
17
+ &audioEventHandlerRegistry)
18
+ : BaseAudioContext(audioEventHandlerRegistry) {
20
19
  #ifdef ANDROID
21
20
  audioPlayer_ = std::make_shared<AudioPlayer>(
22
21
  this->renderAudio(), sampleRate, destination_->getChannelCount());
@@ -1,7 +1,6 @@
1
1
  #pragma once
2
2
 
3
3
  #include <audioapi/core/BaseAudioContext.h>
4
- #include <audioapi/core/utils/worklets/SafeIncludes.h>
5
4
 
6
5
  #include <memory>
7
6
  #include <functional>
@@ -15,7 +14,7 @@ class IOSAudioPlayer;
15
14
 
16
15
  class AudioContext : public BaseAudioContext {
17
16
  public:
18
- explicit AudioContext(float sampleRate, bool initSuspended, const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry, const RuntimeRegistry &runtimeRegistry);
17
+ explicit AudioContext(float sampleRate, bool initSuspended, const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry);
19
18
  ~AudioContext() override;
20
19
 
21
20
  void close();
@@ -2,7 +2,7 @@
2
2
 
3
3
  #include <audioapi/core/types/ChannelCountMode.h>
4
4
  #include <audioapi/core/types/ChannelInterpretation.h>
5
- #include <audioapi/core/utils/Constants.h>
5
+ #include <audioapi/core/Constants.h>
6
6
 
7
7
  #include <memory>
8
8
  #include <string>
@@ -219,9 +219,9 @@ void AudioParam::setValueCurveAtTime(
219
219
  (time - startTime)));
220
220
  // Calculate interpolation factor between adjacent array elements
221
221
  auto factor = static_cast<float>(
222
+ k -
222
223
  (time - startTime) * static_cast<double>(length - 1) /
223
- (endTime - startTime) -
224
- k);
224
+ (endTime - startTime));
225
225
  return dsp::linearInterpolate(values->data(), k, k + 1, factor);
226
226
  }
227
227
 
@@ -4,7 +4,7 @@
4
4
  #include <audioapi/core/utils/ParamChangeEvent.h>
5
5
  #include <audioapi/utils/AudioBus.h>
6
6
  #include <audioapi/core/AudioNode.h>
7
- #include <audioapi/core/utils/AudioParamEventQueue.h>
7
+ #include <audioapi/core/AudioParamEventQueue.h>
8
8
 
9
9
  #include <cstddef>
10
10
  #include <utility>
@@ -1,4 +1,4 @@
1
- #include <audioapi/core/utils/AudioParamEventQueue.h>
1
+ #include <audioapi/core/AudioParamEventQueue.h>
2
2
 
3
3
  namespace audioapi {
4
4
 
@@ -31,12 +31,12 @@ bool AudioParamEventQueue::popFront(ParamChangeEvent &event) {
31
31
 
32
32
  void AudioParamEventQueue::cancelScheduledValues(double cancelTime) {
33
33
  while (!eventQueue_.isEmpty()) {
34
- auto &back = eventQueue_.peekBack();
35
- if (back.getEndTime() < cancelTime) {
34
+ auto &front = eventQueue_.peekBack();
35
+ if (front.getEndTime() < cancelTime) {
36
36
  break;
37
37
  }
38
- if (back.getStartTime() >= cancelTime ||
39
- back.getType() == ParamChangeEventType::SET_VALUE_CURVE) {
38
+ if (front.getStartTime() >= cancelTime ||
39
+ front.getType() == ParamChangeEventType::SET_VALUE_CURVE) {
40
40
  eventQueue_.popBack();
41
41
  }
42
42
  }
@@ -46,8 +46,8 @@ void AudioParamEventQueue::cancelAndHoldAtTime(
46
46
  double cancelTime,
47
47
  double &endTimeCache) {
48
48
  while (!eventQueue_.isEmpty()) {
49
- auto &back = eventQueue_.peekBack();
50
- if (back.getEndTime() < cancelTime || back.getStartTime() <= cancelTime) {
49
+ auto &front = eventQueue_.peekBack();
50
+ if (front.getEndTime() < cancelTime || front.getStartTime() <= cancelTime) {
51
51
  break;
52
52
  }
53
53
  eventQueue_.popBack();
@@ -59,12 +59,6 @@ void AudioParamEventQueue::cancelAndHoldAtTime(
59
59
  }
60
60
 
61
61
  auto &back = eventQueue_.peekBackMut();
62
- back.setEndValue(back.getCalculateValue()(
63
- back.getStartTime(),
64
- back.getEndTime(),
65
- back.getStartValue(),
66
- back.getEndValue(),
67
- cancelTime));
68
62
  back.setEndTime(std::min(cancelTime, back.getEndTime()));
69
63
  }
70
64
 
@@ -4,19 +4,14 @@
4
4
  #include <audioapi/core/effects/BiquadFilterNode.h>
5
5
  #include <audioapi/core/effects/GainNode.h>
6
6
  #include <audioapi/core/effects/StereoPannerNode.h>
7
- #include <audioapi/core/effects/WorkletNode.h>
8
- #include <audioapi/core/effects/WorkletProcessingNode.h>
9
7
  #include <audioapi/core/sources/AudioBuffer.h>
10
8
  #include <audioapi/core/sources/AudioBufferQueueSourceNode.h>
11
9
  #include <audioapi/core/sources/AudioBufferSourceNode.h>
12
- #include <audioapi/core/sources/ConstantSourceNode.h>
13
10
  #include <audioapi/core/sources/OscillatorNode.h>
14
11
  #include <audioapi/core/sources/RecorderAdapterNode.h>
15
12
  #include <audioapi/core/sources/StreamerNode.h>
16
- #include <audioapi/core/sources/WorkletSourceNode.h>
17
13
  #include <audioapi/core/utils/AudioDecoder.h>
18
14
  #include <audioapi/core/utils/AudioNodeManager.h>
19
- #include <audioapi/core/utils/worklets/SafeIncludes.h>
20
15
  #include <audioapi/events/AudioEventHandlerRegistry.h>
21
16
  #include <audioapi/utils/AudioArray.h>
22
17
  #include <audioapi/utils/AudioBus.h>
@@ -26,13 +21,11 @@ namespace audioapi {
26
21
 
27
22
  BaseAudioContext::BaseAudioContext(
28
23
  const std::shared_ptr<IAudioEventHandlerRegistry>
29
- &audioEventHandlerRegistry,
30
- const RuntimeRegistry &runtimeRegistry) {
24
+ &audioEventHandlerRegistry) {
31
25
  nodeManager_ = std::make_shared<AudioNodeManager>();
32
26
  destination_ = std::make_shared<AudioDestinationNode>(this);
33
27
 
34
28
  audioEventHandlerRegistry_ = audioEventHandlerRegistry;
35
- runtimeRegistry_ = runtimeRegistry;
36
29
  }
37
30
 
38
31
  std::string BaseAudioContext::getState() {
@@ -65,36 +58,6 @@ std::shared_ptr<AudioDestinationNode> BaseAudioContext::getDestination() {
65
58
  return destination_;
66
59
  }
67
60
 
68
- std::shared_ptr<WorkletSourceNode> BaseAudioContext::createWorkletSourceNode(
69
- std::shared_ptr<worklets::SerializableWorklet> &shareableWorklet,
70
- std::weak_ptr<worklets::WorkletRuntime> runtime) {
71
- auto workletSourceNode =
72
- std::make_shared<WorkletSourceNode>(this, shareableWorklet, runtime);
73
- nodeManager_->addSourceNode(workletSourceNode);
74
- return workletSourceNode;
75
- }
76
-
77
- std::shared_ptr<WorkletNode> BaseAudioContext::createWorkletNode(
78
- std::shared_ptr<worklets::SerializableWorklet> &shareableWorklet,
79
- std::weak_ptr<worklets::WorkletRuntime> runtime,
80
- size_t bufferLength,
81
- size_t inputChannelCount) {
82
- auto workletNode = std::make_shared<WorkletNode>(
83
- this, shareableWorklet, runtime, bufferLength, inputChannelCount);
84
- nodeManager_->addProcessingNode(workletNode);
85
- return workletNode;
86
- }
87
-
88
- std::shared_ptr<WorkletProcessingNode>
89
- BaseAudioContext::createWorkletProcessingNode(
90
- std::shared_ptr<worklets::SerializableWorklet> &shareableWorklet,
91
- std::weak_ptr<worklets::WorkletRuntime> runtime) {
92
- auto workletProcessingNode =
93
- std::make_shared<WorkletProcessingNode>(this, shareableWorklet, runtime);
94
- nodeManager_->addProcessingNode(workletProcessingNode);
95
- return workletProcessingNode;
96
- }
97
-
98
61
  std::shared_ptr<RecorderAdapterNode> BaseAudioContext::createRecorderAdapter() {
99
62
  auto recorderAdapter = std::make_shared<RecorderAdapterNode>(this);
100
63
  nodeManager_->addProcessingNode(recorderAdapter);
@@ -107,12 +70,6 @@ std::shared_ptr<OscillatorNode> BaseAudioContext::createOscillator() {
107
70
  return oscillator;
108
71
  }
109
72
 
110
- std::shared_ptr<ConstantSourceNode> BaseAudioContext::createConstantSource() {
111
- auto constantSource = std::make_shared<ConstantSourceNode>(this);
112
- nodeManager_->addSourceNode(constantSource);
113
- return constantSource;
114
- }
115
-
116
73
  #ifndef AUDIO_API_TEST_SUITE
117
74
  std::shared_ptr<StreamerNode> BaseAudioContext::createStreamer() {
118
75
  auto streamer = std::make_shared<StreamerNode>(this);
@@ -148,9 +105,8 @@ std::shared_ptr<AudioBufferSourceNode> BaseAudioContext::createBufferSource(
148
105
  }
149
106
 
150
107
  std::shared_ptr<AudioBufferQueueSourceNode>
151
- BaseAudioContext::createBufferQueueSource(bool pitchCorrection) {
152
- auto bufferSource =
153
- std::make_shared<AudioBufferQueueSourceNode>(this, pitchCorrection);
108
+ BaseAudioContext::createBufferQueueSource() {
109
+ auto bufferSource = std::make_shared<AudioBufferQueueSourceNode>(this);
154
110
  nodeManager_->addSourceNode(bufferSource);
155
111
  return bufferSource;
156
112
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  #include <audioapi/core/types/ContextState.h>
4
4
  #include <audioapi/core/types/OscillatorType.h>
5
- #include <audioapi/core/utils/worklets/SafeIncludes.h>
5
+
6
6
 
7
7
  #include <functional>
8
8
  #include <memory>
@@ -20,7 +20,6 @@ class GainNode;
20
20
  class AudioBuffer;
21
21
  class PeriodicWave;
22
22
  class OscillatorNode;
23
- class ConstantSourceNode;
24
23
  class StereoPannerNode;
25
24
  class AudioNodeManager;
26
25
  class BiquadFilterNode;
@@ -32,14 +31,11 @@ class AnalyserNode;
32
31
  class AudioEventHandlerRegistry;
33
32
  class IAudioEventHandlerRegistry;
34
33
  class RecorderAdapterNode;
35
- class WorkletSourceNode;
36
- class WorkletNode;
37
- class WorkletProcessingNode;
38
34
  class StreamerNode;
39
35
 
40
36
  class BaseAudioContext {
41
37
  public:
42
- explicit BaseAudioContext(const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry, const RuntimeRegistry &runtimeRegistry);
38
+ explicit BaseAudioContext(const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry);
43
39
  virtual ~BaseAudioContext() = default;
44
40
 
45
41
  std::string getState();
@@ -49,17 +45,13 @@ class BaseAudioContext {
49
45
  std::shared_ptr<AudioDestinationNode> getDestination();
50
46
 
51
47
  std::shared_ptr<RecorderAdapterNode> createRecorderAdapter();
52
- std::shared_ptr<WorkletSourceNode> createWorkletSourceNode(std::shared_ptr<worklets::SerializableWorklet> &shareableWorklet, std::weak_ptr<worklets::WorkletRuntime> runtime);
53
- std::shared_ptr<WorkletNode> createWorkletNode(std::shared_ptr<worklets::SerializableWorklet> &shareableWorklet, std::weak_ptr<worklets::WorkletRuntime> runtime, size_t bufferLength, size_t inputChannelCount);
54
- std::shared_ptr<WorkletProcessingNode> createWorkletProcessingNode(std::shared_ptr<worklets::SerializableWorklet> &shareableWorklet, std::weak_ptr<worklets::WorkletRuntime> runtime);
55
48
  std::shared_ptr<OscillatorNode> createOscillator();
56
- std::shared_ptr<ConstantSourceNode> createConstantSource();
57
49
  std::shared_ptr<StreamerNode> createStreamer();
58
50
  std::shared_ptr<GainNode> createGain();
59
51
  std::shared_ptr<StereoPannerNode> createStereoPanner();
60
52
  std::shared_ptr<BiquadFilterNode> createBiquadFilter();
61
53
  std::shared_ptr<AudioBufferSourceNode> createBufferSource(bool pitchCorrection);
62
- std::shared_ptr<AudioBufferQueueSourceNode> createBufferQueueSource(bool pitchCorrection);
54
+ std::shared_ptr<AudioBufferQueueSourceNode> createBufferQueueSource();
63
55
  static std::shared_ptr<AudioBuffer>
64
56
  createBuffer(int numberOfChannels, size_t length, float sampleRate);
65
57
  std::shared_ptr<PeriodicWave> createPeriodicWave(
@@ -97,11 +89,10 @@ class BaseAudioContext {
97
89
  std::shared_ptr<PeriodicWave> cachedSawtoothWave_ = nullptr;
98
90
  std::shared_ptr<PeriodicWave> cachedTriangleWave_ = nullptr;
99
91
 
100
- [[nodiscard]] virtual bool isDriverRunning() const = 0;
92
+ virtual bool isDriverRunning() const = 0;
101
93
 
102
94
  public:
103
95
  std::shared_ptr<IAudioEventHandlerRegistry> audioEventHandlerRegistry_;
104
- RuntimeRegistry runtimeRegistry_;
105
96
  };
106
97
 
107
98
  } // namespace audioapi
@@ -16,9 +16,4 @@ static constexpr float MOST_NEGATIVE_SINGLE_FLOAT = static_cast<float>(std::nume
16
16
  static float LOG2_MOST_POSITIVE_SINGLE_FLOAT = std::log2(MOST_POSITIVE_SINGLE_FLOAT);
17
17
  static float LOG10_MOST_POSITIVE_SINGLE_FLOAT = std::log10(MOST_POSITIVE_SINGLE_FLOAT);
18
18
  static constexpr float PI = static_cast<float>(M_PI);
19
-
20
- // buffer sizes
21
- static constexpr size_t PROMISE_VENDOR_THREAD_POOL_WORKER_COUNT = 4;
22
- static constexpr size_t PROMISE_VENDOR_THREAD_POOL_LOAD_BALANCER_QUEUE_SIZE = 32;
23
- static constexpr size_t PROMISE_VENDOR_THREAD_POOL_WORKER_QUEUE_SIZE = 32;
24
19
  } // namespace audioapi
@@ -1,11 +1,11 @@
1
1
  #include "OfflineAudioContext.h"
2
2
 
3
3
  #include <audioapi/core/AudioContext.h>
4
+ #include <audioapi/core/Constants.h>
4
5
  #include <audioapi/core/destinations/AudioDestinationNode.h>
5
6
  #include <audioapi/core/sources/AudioBuffer.h>
6
7
  #include <audioapi/core/utils/AudioDecoder.h>
7
8
  #include <audioapi/core/utils/AudioNodeManager.h>
8
- #include <audioapi/core/utils/Constants.h>
9
9
  #include <audioapi/core/utils/Locker.h>
10
10
  #include <audioapi/utils/AudioArray.h>
11
11
  #include <audioapi/utils/AudioBus.h>
@@ -23,9 +23,8 @@ OfflineAudioContext::OfflineAudioContext(
23
23
  size_t length,
24
24
  float sampleRate,
25
25
  const std::shared_ptr<IAudioEventHandlerRegistry>
26
- &audioEventHandlerRegistry,
27
- const RuntimeRegistry &runtimeRegistry)
28
- : BaseAudioContext(audioEventHandlerRegistry, runtimeRegistry),
26
+ &audioEventHandlerRegistry)
27
+ : BaseAudioContext(audioEventHandlerRegistry),
29
28
  length_(length),
30
29
  numberOfChannels_(numberOfChannels),
31
30
  currentSampleFrame_(0) {
@@ -1,7 +1,6 @@
1
1
  #pragma once
2
2
 
3
3
  #include "BaseAudioContext.h"
4
- #include <audioapi/core/utils/worklets/SafeIncludes.h>
5
4
 
6
5
  #include <mutex>
7
6
  #include <map>
@@ -15,7 +14,7 @@ using OfflineAudioContextResultCallback = std::function<void(std::shared_ptr<Aud
15
14
 
16
15
  class OfflineAudioContext : public BaseAudioContext {
17
16
  public:
18
- explicit OfflineAudioContext(int numberOfChannels, size_t length, float sampleRate, const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry, const RuntimeRegistry &runtimeRegistry);
17
+ explicit OfflineAudioContext(int numberOfChannels, size_t length, float sampleRate, const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry);
19
18
  ~OfflineAudioContext() override;
20
19
 
21
20
  void resume();
@@ -26,8 +26,8 @@
26
26
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
27
  */
28
28
 
29
+ #include <audioapi/core/Constants.h>
29
30
  #include <audioapi/core/effects/PeriodicWave.h>
30
- #include <audioapi/core/utils/Constants.h>
31
31
  #include <audioapi/dsp/VectorMath.h>
32
32
 
33
33
  constexpr unsigned NumberOfOctaveBands = 3;