react-native-audio-api 0.12.0-nightly-6a44b58-20260126 → 0.12.0-nightly-1a3c43b-20260128
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.
- package/RNAudioAPI.podspec +8 -0
- package/android/src/main/cpp/audioapi/CMakeLists.txt +0 -13
- package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +3 -2
- package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +1 -1
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +12 -1
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +5 -1
- package/android/src/main/java/com/swmansion/audioapi/system/AudioEvent.kt +28 -0
- package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +4 -4
- package/android/src/main/java/com/swmansion/audioapi/system/VolumeChangeListener.kt +1 -1
- package/android/src/main/java/com/swmansion/audioapi/system/notification/PlaybackNotification.kt +27 -18
- package/android/src/main/java/com/swmansion/audioapi/system/notification/PlaybackNotificationReceiver.kt +13 -8
- package/android/src/main/java/com/swmansion/audioapi/system/notification/RecordingNotificationReceiver.kt +3 -2
- package/android/src/oldarch/NativeAudioAPIModuleSpec.java +2 -2
- package/common/cpp/audioapi/AudioAPIModuleInstaller.h +9 -12
- package/common/cpp/audioapi/HostObjects/AudioContextHostObject.cpp +4 -2
- package/common/cpp/audioapi/HostObjects/AudioContextHostObject.h +5 -1
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +38 -38
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +4 -2
- package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.cpp +8 -4
- package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.h +7 -1
- package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.cpp +6 -4
- package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.h +6 -2
- package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +8 -5
- package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h +5 -3
- package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.cpp +5 -3
- package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/effects/DelayNodeHostObject.cpp +4 -3
- package/common/cpp/audioapi/HostObjects/effects/DelayNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/effects/GainNodeHostObject.cpp +6 -2
- package/common/cpp/audioapi/HostObjects/effects/GainNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/effects/IIRFilterNodeHostObject.cpp +6 -2
- package/common/cpp/audioapi/HostObjects/effects/IIRFilterNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.cpp +5 -2
- package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/effects/WaveShaperNodeHostObject.cpp +9 -4
- package/common/cpp/audioapi/HostObjects/effects/WaveShaperNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.cpp +3 -2
- package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.cpp +2 -1
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.cpp +9 -6
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.h +4 -2
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +5 -2
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.cpp +5 -2
- package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.cpp +7 -3
- package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.cpp +6 -2
- package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/utils/JsEnumParser.cpp +63 -0
- package/common/cpp/audioapi/HostObjects/utils/JsEnumParser.h +5 -0
- package/common/cpp/audioapi/core/AudioContext.cpp +2 -4
- package/common/cpp/audioapi/core/AudioNode.cpp +4 -4
- package/common/cpp/audioapi/core/AudioNode.h +6 -6
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +7 -22
- package/common/cpp/audioapi/core/BaseAudioContext.h +20 -22
- package/common/cpp/audioapi/core/OfflineAudioContext.cpp +3 -6
- package/common/cpp/audioapi/core/analysis/AnalyserNode.cpp +5 -2
- package/common/cpp/audioapi/core/analysis/AnalyserNode.h +4 -2
- package/common/cpp/audioapi/core/destinations/AudioDestinationNode.cpp +1 -1
- package/common/cpp/audioapi/core/destinations/AudioDestinationNode.h +1 -1
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +6 -6
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +2 -2
- package/common/cpp/audioapi/core/effects/ConvolverNode.cpp +1 -1
- package/common/cpp/audioapi/core/effects/ConvolverNode.h +2 -2
- package/common/cpp/audioapi/core/effects/DelayNode.cpp +1 -1
- package/common/cpp/audioapi/core/effects/DelayNode.h +2 -2
- package/common/cpp/audioapi/core/effects/GainNode.cpp +1 -1
- package/common/cpp/audioapi/core/effects/GainNode.h +2 -2
- package/common/cpp/audioapi/core/effects/IIRFilterNode.cpp +5 -3
- package/common/cpp/audioapi/core/effects/IIRFilterNode.h +2 -2
- package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +5 -2
- package/common/cpp/audioapi/core/effects/StereoPannerNode.h +2 -2
- package/common/cpp/audioapi/core/effects/WaveShaperNode.cpp +4 -2
- package/common/cpp/audioapi/core/effects/WaveShaperNode.h +2 -2
- package/common/cpp/audioapi/core/sources/AudioBuffer.h +1 -1
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +10 -4
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +2 -2
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +13 -13
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +2 -2
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +6 -5
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +2 -2
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +2 -2
- package/common/cpp/audioapi/core/sources/ConstantSourceNode.cpp +10 -2
- package/common/cpp/audioapi/core/sources/ConstantSourceNode.h +2 -2
- package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +11 -6
- package/common/cpp/audioapi/core/sources/OscillatorNode.h +2 -2
- package/common/cpp/audioapi/core/sources/StreamerNode.cpp +17 -4
- package/common/cpp/audioapi/core/sources/StreamerNode.h +4 -2
- package/common/cpp/audioapi/core/utils/AudioFileWriter.cpp +2 -3
- package/common/cpp/audioapi/core/utils/AudioRecorderCallback.cpp +3 -4
- package/common/cpp/audioapi/events/AudioEvent.h +30 -0
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +9 -20
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +7 -34
- package/common/cpp/audioapi/events/IAudioEventHandlerRegistry.h +5 -4
- package/common/cpp/audioapi/jsi/JsiUtils.cpp +21 -0
- package/common/cpp/audioapi/jsi/JsiUtils.h +17 -0
- package/{android/src/main/cpp/audioapi/android/core → common/cpp/audioapi}/utils/MiniaudioImplementation.cpp +1 -2
- package/common/cpp/test/src/MockAudioEventHandlerRegistry.h +5 -10
- package/ios/audioapi/ios/AudioAPIModule.h +3 -1
- package/ios/audioapi/ios/AudioAPIModule.mm +7 -6
- package/ios/audioapi/ios/core/utils/AudioDecoder.mm +1 -3
- package/ios/audioapi/ios/system/AudioSessionManager.h +3 -1
- package/ios/audioapi/ios/system/AudioSessionManager.mm +8 -1
- package/ios/audioapi/ios/system/SystemNotificationManager.mm +17 -8
- package/ios/audioapi/ios/system/notification/PlaybackNotification.mm +36 -33
- package/lib/commonjs/core/AudioDecoder.js +2 -2
- package/lib/commonjs/core/AudioDecoder.js.map +1 -1
- package/lib/commonjs/core/AudioRecorder.js +1 -1
- package/lib/commonjs/core/AudioRecorder.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.web.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +1 -1
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/module/core/AudioDecoder.js +2 -2
- package/lib/module/core/AudioDecoder.js.map +1 -1
- package/lib/module/core/AudioRecorder.js +1 -1
- package/lib/module/core/AudioRecorder.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.web.js.map +1 -1
- package/lib/module/system/AudioManager.js +1 -1
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/typescript/core/AudioDecoder.d.ts.map +1 -1
- package/lib/typescript/events/types.d.ts +1 -17
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.web.d.ts +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.web.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/notification/types.d.ts +4 -3
- package/lib/typescript/system/notification/types.d.ts.map +1 -1
- package/lib/typescript/system/types.d.ts +8 -0
- package/lib/typescript/system/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/AudioDecoder.ts +2 -2
- package/src/core/AudioRecorder.ts +1 -1
- package/src/events/types.ts +1 -18
- package/src/specs/NativeAudioAPIModule.ts +3 -2
- package/src/specs/NativeAudioAPIModule.web.ts +2 -1
- package/src/system/AudioManager.ts +2 -1
- package/src/system/notification/types.ts +6 -4
- package/src/system/types.ts +8 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/BaseAudioContextHostObject.h>
|
|
2
|
-
|
|
3
2
|
#include <audioapi/HostObjects/WorkletNodeHostObject.h>
|
|
4
3
|
#include <audioapi/HostObjects/WorkletProcessingNodeHostObject.h>
|
|
5
4
|
#include <audioapi/HostObjects/analysis/AnalyserNodeHostObject.h>
|
|
@@ -20,9 +19,10 @@
|
|
|
20
19
|
#include <audioapi/HostObjects/sources/RecorderAdapterNodeHostObject.h>
|
|
21
20
|
#include <audioapi/HostObjects/sources/StreamerNodeHostObject.h>
|
|
22
21
|
#include <audioapi/HostObjects/sources/WorkletSourceNodeHostObject.h>
|
|
22
|
+
#include <audioapi/HostObjects/utils/JsEnumParser.h>
|
|
23
|
+
#include <audioapi/HostObjects/utils/NodeOptionsParser.h>
|
|
23
24
|
#include <audioapi/core/BaseAudioContext.h>
|
|
24
25
|
|
|
25
|
-
#include <audioapi/HostObjects/utils/NodeOptionsParser.h>
|
|
26
26
|
#include <memory>
|
|
27
27
|
#include <utility>
|
|
28
28
|
#include <vector>
|
|
@@ -33,8 +33,11 @@ BaseAudioContextHostObject::BaseAudioContextHostObject(
|
|
|
33
33
|
const std::shared_ptr<BaseAudioContext> &context,
|
|
34
34
|
jsi::Runtime *runtime,
|
|
35
35
|
const std::shared_ptr<react::CallInvoker> &callInvoker)
|
|
36
|
-
: context_(context),
|
|
37
|
-
|
|
36
|
+
: context_(context),
|
|
37
|
+
promiseVendor_(std::make_shared<PromiseVendor>(runtime, callInvoker)),
|
|
38
|
+
callInvoker_(callInvoker) {
|
|
39
|
+
context_->initialize();
|
|
40
|
+
destination_ = std::make_shared<AudioDestinationNodeHostObject>(context_->getDestination());
|
|
38
41
|
|
|
39
42
|
addGetters(
|
|
40
43
|
JSI_EXPORT_PROPERTY_GETTER(BaseAudioContextHostObject, destination),
|
|
@@ -71,12 +74,11 @@ BaseAudioContextHostObject::BaseAudioContextHostObject(
|
|
|
71
74
|
BaseAudioContextHostObject::~BaseAudioContextHostObject() = default;
|
|
72
75
|
|
|
73
76
|
JSI_PROPERTY_GETTER_IMPL(BaseAudioContextHostObject, destination) {
|
|
74
|
-
|
|
75
|
-
return jsi::Object::createFromHostObject(runtime, destination);
|
|
77
|
+
return jsi::Object::createFromHostObject(runtime, destination_);
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
JSI_PROPERTY_GETTER_IMPL(BaseAudioContextHostObject, state) {
|
|
79
|
-
|
|
81
|
+
return jsi::String::createFromUtf8(runtime, js_enum_parser::contextStateToString(context_->getState()));
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
JSI_PROPERTY_GETTER_IMPL(BaseAudioContextHostObject, sampleRate) {
|
|
@@ -169,8 +171,8 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createRecorderAdapter) {
|
|
|
169
171
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createOscillator) {
|
|
170
172
|
const auto options = args[0].asObject(runtime);
|
|
171
173
|
const auto oscillatorOptions = audioapi::option_parser::parseOscillatorOptions(runtime, options);
|
|
172
|
-
auto
|
|
173
|
-
|
|
174
|
+
auto oscillatorHostObject =
|
|
175
|
+
std::make_shared<OscillatorNodeHostObject>(context_, oscillatorOptions);
|
|
174
176
|
return jsi::Object::createFromHostObject(runtime, oscillatorHostObject);
|
|
175
177
|
}
|
|
176
178
|
|
|
@@ -181,8 +183,7 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createStreamer) {
|
|
|
181
183
|
const auto options = args[0].asObject(runtime);
|
|
182
184
|
streamerOptions = audioapi::option_parser::parseStreamerOptions(runtime, options);
|
|
183
185
|
}
|
|
184
|
-
auto
|
|
185
|
-
auto streamerHostObject = std::make_shared<StreamerNodeHostObject>(streamer);
|
|
186
|
+
auto streamerHostObject = std::make_shared<StreamerNodeHostObject>(context_, streamerOptions);
|
|
186
187
|
auto object = jsi::Object::createFromHostObject(runtime, streamerHostObject);
|
|
187
188
|
object.setExternalMemoryPressure(runtime, StreamerNodeHostObject::getSizeInBytes());
|
|
188
189
|
return object;
|
|
@@ -195,24 +196,22 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createConstantSource) {
|
|
|
195
196
|
const auto options = args[0].asObject(runtime);
|
|
196
197
|
const auto constantSourceOptions =
|
|
197
198
|
audioapi::option_parser::parseConstantSourceOptions(runtime, options);
|
|
198
|
-
auto
|
|
199
|
-
|
|
199
|
+
auto constantSourceHostObject =
|
|
200
|
+
std::make_shared<ConstantSourceNodeHostObject>(context_, constantSourceOptions);
|
|
200
201
|
return jsi::Object::createFromHostObject(runtime, constantSourceHostObject);
|
|
201
202
|
}
|
|
202
203
|
|
|
203
204
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createGain) {
|
|
204
205
|
const auto options = args[0].asObject(runtime);
|
|
205
206
|
const auto gainOptions = audioapi::option_parser::parseGainOptions(runtime, options);
|
|
206
|
-
auto
|
|
207
|
-
auto gainHostObject = std::make_shared<GainNodeHostObject>(gain);
|
|
207
|
+
auto gainHostObject = std::make_shared<GainNodeHostObject>(context_, gainOptions);
|
|
208
208
|
return jsi::Object::createFromHostObject(runtime, gainHostObject);
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createDelay) {
|
|
212
212
|
const auto options = args[0].asObject(runtime);
|
|
213
213
|
const auto delayOptions = audioapi::option_parser::parseDelayOptions(runtime, options);
|
|
214
|
-
auto
|
|
215
|
-
auto delayNodeHostObject = std::make_shared<DelayNodeHostObject>(delayNode);
|
|
214
|
+
auto delayNodeHostObject = std::make_shared<DelayNodeHostObject>(context_, delayOptions);
|
|
216
215
|
auto jsiObject = jsi::Object::createFromHostObject(runtime, delayNodeHostObject);
|
|
217
216
|
jsiObject.setExternalMemoryPressure(runtime, delayNodeHostObject->getSizeInBytes());
|
|
218
217
|
return jsiObject;
|
|
@@ -220,25 +219,26 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createDelay) {
|
|
|
220
219
|
|
|
221
220
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createStereoPanner) {
|
|
222
221
|
const auto options = args[0].asObject(runtime);
|
|
223
|
-
const auto stereoPannerOptions =
|
|
224
|
-
|
|
225
|
-
auto stereoPannerHostObject =
|
|
222
|
+
const auto stereoPannerOptions =
|
|
223
|
+
audioapi::option_parser::parseStereoPannerOptions(runtime, options);
|
|
224
|
+
auto stereoPannerHostObject =
|
|
225
|
+
std::make_shared<StereoPannerNodeHostObject>(context_, stereoPannerOptions);
|
|
226
226
|
return jsi::Object::createFromHostObject(runtime, stereoPannerHostObject);
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBiquadFilter) {
|
|
230
230
|
const auto options = args[0].asObject(runtime);
|
|
231
|
-
const auto biquadFilterOptions =
|
|
232
|
-
|
|
233
|
-
auto biquadFilterHostObject =
|
|
231
|
+
const auto biquadFilterOptions =
|
|
232
|
+
audioapi::option_parser::parseBiquadFilterOptions(runtime, options);
|
|
233
|
+
auto biquadFilterHostObject =
|
|
234
|
+
std::make_shared<BiquadFilterNodeHostObject>(context_, biquadFilterOptions);
|
|
234
235
|
return jsi::Object::createFromHostObject(runtime, biquadFilterHostObject);
|
|
235
236
|
}
|
|
236
237
|
|
|
237
238
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createIIRFilter) {
|
|
238
239
|
const auto options = args[0].asObject(runtime);
|
|
239
240
|
const auto iirFilterOptions = audioapi::option_parser::parseIIRFilterOptions(runtime, options);
|
|
240
|
-
auto
|
|
241
|
-
auto iirFilterHostObject = std::make_shared<IIRFilterNodeHostObject>(iirFilter);
|
|
241
|
+
auto iirFilterHostObject = std::make_shared<IIRFilterNodeHostObject>(context_, iirFilterOptions);
|
|
242
242
|
return jsi::Object::createFromHostObject(runtime, iirFilterHostObject);
|
|
243
243
|
}
|
|
244
244
|
|
|
@@ -246,8 +246,8 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBufferSource) {
|
|
|
246
246
|
const auto options = args[0].asObject(runtime);
|
|
247
247
|
const auto audioBufferSourceOptions =
|
|
248
248
|
audioapi::option_parser::parseAudioBufferSourceOptions(runtime, options);
|
|
249
|
-
auto
|
|
250
|
-
|
|
249
|
+
auto bufferSourceHostObject =
|
|
250
|
+
std::make_shared<AudioBufferSourceNodeHostObject>(context_, audioBufferSourceOptions);
|
|
251
251
|
return jsi::Object::createFromHostObject(runtime, bufferSourceHostObject);
|
|
252
252
|
}
|
|
253
253
|
|
|
@@ -255,15 +255,15 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBufferQueueSource) {
|
|
|
255
255
|
const auto options = args[0].asObject(runtime);
|
|
256
256
|
const auto baseAudioBufferSourceOptions =
|
|
257
257
|
audioapi::option_parser::parseBaseAudioBufferSourceOptions(runtime, options);
|
|
258
|
-
auto
|
|
259
|
-
|
|
260
|
-
std::make_shared<AudioBufferQueueSourceNodeHostObject>(bufferSource);
|
|
258
|
+
auto bufferStreamSourceHostObject = std::make_shared<AudioBufferQueueSourceNodeHostObject>(
|
|
259
|
+
context_, baseAudioBufferSourceOptions);
|
|
261
260
|
return jsi::Object::createFromHostObject(runtime, bufferStreamSourceHostObject);
|
|
262
261
|
}
|
|
263
262
|
|
|
264
263
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBuffer) {
|
|
265
264
|
const auto options = args[0].asObject(runtime);
|
|
266
|
-
const auto audioBufferOptions =
|
|
265
|
+
const auto audioBufferOptions =
|
|
266
|
+
audioapi::option_parser::parseAudioBufferOptions(runtime, options);
|
|
267
267
|
auto buffer = BaseAudioContext::createBuffer(audioBufferOptions);
|
|
268
268
|
auto bufferHostObject = std::make_shared<AudioBufferHostObject>(buffer);
|
|
269
269
|
|
|
@@ -300,19 +300,19 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createPeriodicWave) {
|
|
|
300
300
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createAnalyser) {
|
|
301
301
|
const auto options = args[0].asObject(runtime);
|
|
302
302
|
const auto analyserOptions = audioapi::option_parser::parseAnalyserOptions(runtime, options);
|
|
303
|
-
auto
|
|
304
|
-
auto analyserHostObject = std::make_shared<AnalyserNodeHostObject>(analyser);
|
|
303
|
+
auto analyserHostObject = std::make_shared<AnalyserNodeHostObject>(context_, analyserOptions);
|
|
305
304
|
return jsi::Object::createFromHostObject(runtime, analyserHostObject);
|
|
306
305
|
}
|
|
307
306
|
|
|
308
307
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createConvolver) {
|
|
309
308
|
const auto options = args[0].asObject(runtime);
|
|
310
309
|
const auto convolverOptions = audioapi::option_parser::parseConvolverOptions(runtime, options);
|
|
311
|
-
auto
|
|
312
|
-
auto convolverHostObject = std::make_shared<ConvolverNodeHostObject>(convolver);
|
|
310
|
+
auto convolverHostObject = std::make_shared<ConvolverNodeHostObject>(context_, convolverOptions);
|
|
313
311
|
auto jsiObject = jsi::Object::createFromHostObject(runtime, convolverHostObject);
|
|
314
312
|
if (convolverOptions.bus != nullptr) {
|
|
315
|
-
auto bufferHostObject = options.getProperty(runtime, "buffer")
|
|
313
|
+
auto bufferHostObject = options.getProperty(runtime, "buffer")
|
|
314
|
+
.getObject(runtime)
|
|
315
|
+
.asHostObject<AudioBufferHostObject>(runtime);
|
|
316
316
|
jsiObject.setExternalMemoryPressure(runtime, bufferHostObject->getSizeInBytes());
|
|
317
317
|
}
|
|
318
318
|
return jsiObject;
|
|
@@ -321,8 +321,8 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createConvolver) {
|
|
|
321
321
|
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createWaveShaper) {
|
|
322
322
|
const auto options = args[0].asObject(runtime);
|
|
323
323
|
const auto waveShaperOptions = audioapi::option_parser::parseWaveShaperOptions(runtime, options);
|
|
324
|
-
auto
|
|
325
|
-
|
|
324
|
+
auto waveShaperHostObject =
|
|
325
|
+
std::make_shared<WaveShaperNodeHostObject>(context_, waveShaperOptions);
|
|
326
326
|
return jsi::Object::createFromHostObject(runtime, waveShaperHostObject);
|
|
327
327
|
}
|
|
328
328
|
} // namespace audioapi
|
|
@@ -13,6 +13,7 @@ namespace audioapi {
|
|
|
13
13
|
using namespace facebook;
|
|
14
14
|
|
|
15
15
|
class BaseAudioContext;
|
|
16
|
+
class AudioDestinationNodeHostObject;
|
|
16
17
|
|
|
17
18
|
class BaseAudioContextHostObject : public JsiHostObject {
|
|
18
19
|
public:
|
|
@@ -48,10 +49,11 @@ class BaseAudioContextHostObject : public JsiHostObject {
|
|
|
48
49
|
JSI_HOST_FUNCTION_DECL(createWaveShaper);
|
|
49
50
|
JSI_HOST_FUNCTION_DECL(createDelay);
|
|
50
51
|
|
|
51
|
-
std::shared_ptr<BaseAudioContext> context_;
|
|
52
|
-
|
|
53
52
|
protected:
|
|
53
|
+
std::shared_ptr<BaseAudioContext> context_;
|
|
54
54
|
std::shared_ptr<PromiseVendor> promiseVendor_;
|
|
55
55
|
std::shared_ptr<react::CallInvoker> callInvoker_;
|
|
56
|
+
|
|
57
|
+
std::shared_ptr<AudioDestinationNodeHostObject> destination_;
|
|
56
58
|
};
|
|
57
59
|
} // namespace audioapi
|
|
@@ -8,10 +8,14 @@
|
|
|
8
8
|
namespace audioapi {
|
|
9
9
|
|
|
10
10
|
OfflineAudioContextHostObject::OfflineAudioContextHostObject(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
int numberOfChannels,
|
|
12
|
+
size_t length,
|
|
13
|
+
float sampleRate,
|
|
14
|
+
const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry,
|
|
15
|
+
const RuntimeRegistry &runtimeRegistry,
|
|
16
|
+
jsi::Runtime *runtime,
|
|
17
|
+
const std::shared_ptr<react::CallInvoker> &callInvoker)
|
|
18
|
+
: BaseAudioContextHostObject(std::make_shared<OfflineAudioContext>(numberOfChannels, length, sampleRate, audioEventHandlerRegistry, runtimeRegistry), runtime, callInvoker) {
|
|
15
19
|
addFunctions(
|
|
16
20
|
JSI_EXPORT_FUNCTION(OfflineAudioContextHostObject, resume),
|
|
17
21
|
JSI_EXPORT_FUNCTION(OfflineAudioContextHostObject, suspend),
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/BaseAudioContextHostObject.h>
|
|
4
|
+
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
5
|
+
#include <audioapi/events/IAudioEventHandlerRegistry.h>
|
|
4
6
|
|
|
5
7
|
#include <jsi/jsi.h>
|
|
6
8
|
#include <memory>
|
|
@@ -15,7 +17,11 @@ class OfflineAudioContext;
|
|
|
15
17
|
class OfflineAudioContextHostObject : public BaseAudioContextHostObject {
|
|
16
18
|
public:
|
|
17
19
|
explicit OfflineAudioContextHostObject(
|
|
18
|
-
|
|
20
|
+
int numberOfChannels,
|
|
21
|
+
size_t length,
|
|
22
|
+
float sampleRate,
|
|
23
|
+
const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry,
|
|
24
|
+
const RuntimeRegistry &runtimeRegistry,
|
|
19
25
|
jsi::Runtime *runtime,
|
|
20
26
|
const std::shared_ptr<react::CallInvoker> &callInvoker);
|
|
21
27
|
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/analysis/AnalyserNodeHostObject.h>
|
|
2
|
-
|
|
3
|
-
#include <audioapi/core/analysis/AnalyserNode.h>
|
|
2
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
4
3
|
#include <audioapi/HostObjects/utils/JsEnumParser.h>
|
|
4
|
+
#include <audioapi/core/BaseAudioContext.h>
|
|
5
|
+
#include <audioapi/core/analysis/AnalyserNode.h>
|
|
6
|
+
|
|
5
7
|
#include <memory>
|
|
6
8
|
|
|
7
9
|
namespace audioapi {
|
|
8
10
|
|
|
9
|
-
AnalyserNodeHostObject::AnalyserNodeHostObject(const std::shared_ptr<
|
|
10
|
-
: AudioNodeHostObject(
|
|
11
|
+
AnalyserNodeHostObject::AnalyserNodeHostObject(const std::shared_ptr<BaseAudioContext>& context, const AnalyserOptions &options)
|
|
12
|
+
: AudioNodeHostObject(context->createAnalyser(options)) {
|
|
11
13
|
addGetters(
|
|
12
14
|
JSI_EXPORT_PROPERTY_GETTER(AnalyserNodeHostObject, fftSize),
|
|
13
15
|
JSI_EXPORT_PROPERTY_GETTER(AnalyserNodeHostObject, frequencyBinCount),
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/AudioNodeHostObject.h>
|
|
4
|
-
#include <audioapi/core/analysis/AnalyserNode.h>
|
|
5
4
|
|
|
6
5
|
#include <memory>
|
|
7
6
|
#include <string>
|
|
@@ -10,9 +9,14 @@
|
|
|
10
9
|
namespace audioapi {
|
|
11
10
|
using namespace facebook;
|
|
12
11
|
|
|
12
|
+
struct AnalyserOptions;
|
|
13
|
+
class BaseAudioContext;
|
|
14
|
+
|
|
13
15
|
class AnalyserNodeHostObject : public AudioNodeHostObject {
|
|
14
16
|
public:
|
|
15
|
-
explicit AnalyserNodeHostObject(
|
|
17
|
+
explicit AnalyserNodeHostObject(
|
|
18
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
19
|
+
const AnalyserOptions &options);
|
|
16
20
|
|
|
17
21
|
JSI_PROPERTY_GETTER_DECL(fftSize);
|
|
18
22
|
JSI_PROPERTY_GETTER_DECL(frequencyBinCount);
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h>
|
|
2
|
-
|
|
3
2
|
#include <audioapi/HostObjects/AudioParamHostObject.h>
|
|
4
|
-
#include <audioapi/core/effects/BiquadFilterNode.h>
|
|
5
3
|
#include <audioapi/HostObjects/utils/JsEnumParser.h>
|
|
4
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
5
|
+
#include <audioapi/core/BaseAudioContext.h>
|
|
6
|
+
#include <audioapi/core/effects/BiquadFilterNode.h>
|
|
7
|
+
#include <audioapi/core/types/BiquadFilterType.h>
|
|
8
|
+
|
|
6
9
|
#include <memory>
|
|
7
10
|
|
|
8
11
|
namespace audioapi {
|
|
9
12
|
|
|
10
|
-
BiquadFilterNodeHostObject::BiquadFilterNodeHostObject(
|
|
11
|
-
|
|
12
|
-
: AudioNodeHostObject(
|
|
13
|
+
BiquadFilterNodeHostObject::BiquadFilterNodeHostObject(const std::shared_ptr<BaseAudioContext>& context,
|
|
14
|
+
const BiquadFilterOptions &options)
|
|
15
|
+
: AudioNodeHostObject(context->createBiquadFilter(options)) {
|
|
13
16
|
addGetters(
|
|
14
17
|
JSI_EXPORT_PROPERTY_GETTER(BiquadFilterNodeHostObject, frequency),
|
|
15
18
|
JSI_EXPORT_PROPERTY_GETTER(BiquadFilterNodeHostObject, detune),
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/AudioNodeHostObject.h>
|
|
4
|
-
#include <audioapi/core/types/BiquadFilterType.h>
|
|
5
4
|
|
|
6
5
|
#include <memory>
|
|
7
6
|
#include <string>
|
|
@@ -10,11 +9,14 @@
|
|
|
10
9
|
namespace audioapi {
|
|
11
10
|
using namespace facebook;
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
struct BiquadFilterOptions;
|
|
13
|
+
class BaseAudioContext;
|
|
14
14
|
|
|
15
15
|
class BiquadFilterNodeHostObject : public AudioNodeHostObject {
|
|
16
16
|
public:
|
|
17
|
-
explicit BiquadFilterNodeHostObject(
|
|
17
|
+
explicit BiquadFilterNodeHostObject(
|
|
18
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
19
|
+
const BiquadFilterOptions &options);
|
|
18
20
|
|
|
19
21
|
JSI_PROPERTY_GETTER_DECL(frequency);
|
|
20
22
|
JSI_PROPERTY_GETTER_DECL(detune);
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/effects/ConvolverNodeHostObject.h>
|
|
2
|
-
|
|
3
2
|
#include <audioapi/HostObjects/sources/AudioBufferHostObject.h>
|
|
3
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
4
|
+
#include <audioapi/core/BaseAudioContext.h>
|
|
4
5
|
#include <audioapi/core/effects/ConvolverNode.h>
|
|
6
|
+
|
|
5
7
|
#include <memory>
|
|
6
8
|
|
|
7
9
|
namespace audioapi {
|
|
8
10
|
|
|
9
|
-
ConvolverNodeHostObject::ConvolverNodeHostObject(const std::shared_ptr<
|
|
10
|
-
: AudioNodeHostObject(
|
|
11
|
+
ConvolverNodeHostObject::ConvolverNodeHostObject(const std::shared_ptr<BaseAudioContext>& context, const ConvolverOptions &options)
|
|
12
|
+
: AudioNodeHostObject(context->createConvolver(options)) {
|
|
11
13
|
addGetters(
|
|
12
14
|
JSI_EXPORT_PROPERTY_GETTER(ConvolverNodeHostObject, normalize),
|
|
13
15
|
JSI_EXPORT_PROPERTY_GETTER(ConvolverNodeHostObject, buffer));
|
|
@@ -7,11 +7,14 @@
|
|
|
7
7
|
namespace audioapi {
|
|
8
8
|
using namespace facebook;
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
struct ConvolverOptions;
|
|
11
|
+
class BaseAudioContext;
|
|
11
12
|
|
|
12
13
|
class ConvolverNodeHostObject : public AudioNodeHostObject {
|
|
13
14
|
public:
|
|
14
|
-
explicit ConvolverNodeHostObject(
|
|
15
|
+
explicit ConvolverNodeHostObject(
|
|
16
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
17
|
+
const ConvolverOptions &options);
|
|
15
18
|
JSI_PROPERTY_GETTER_DECL(normalize);
|
|
16
19
|
JSI_PROPERTY_GETTER_DECL(buffer);
|
|
17
20
|
JSI_PROPERTY_SETTER_DECL(normalize);
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/effects/DelayNodeHostObject.h>
|
|
2
|
-
|
|
3
2
|
#include <audioapi/HostObjects/AudioParamHostObject.h>
|
|
4
3
|
#include <audioapi/core/BaseAudioContext.h>
|
|
5
4
|
#include <audioapi/core/effects/DelayNode.h>
|
|
5
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
6
|
+
|
|
6
7
|
#include <memory>
|
|
7
8
|
|
|
8
9
|
namespace audioapi {
|
|
9
10
|
|
|
10
|
-
DelayNodeHostObject::DelayNodeHostObject(const std::shared_ptr<
|
|
11
|
-
: AudioNodeHostObject(
|
|
11
|
+
DelayNodeHostObject::DelayNodeHostObject(const std::shared_ptr<BaseAudioContext>& context, const DelayOptions &options)
|
|
12
|
+
: AudioNodeHostObject(context->createDelay(options)) {
|
|
12
13
|
addGetters(JSI_EXPORT_PROPERTY_GETTER(DelayNodeHostObject, delayTime));
|
|
13
14
|
}
|
|
14
15
|
|
|
@@ -8,11 +8,14 @@
|
|
|
8
8
|
namespace audioapi {
|
|
9
9
|
using namespace facebook;
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
struct DelayOptions;
|
|
12
|
+
class BaseAudioContext;
|
|
12
13
|
|
|
13
14
|
class DelayNodeHostObject : public AudioNodeHostObject {
|
|
14
15
|
public:
|
|
15
|
-
explicit DelayNodeHostObject(
|
|
16
|
+
explicit DelayNodeHostObject(
|
|
17
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
18
|
+
const DelayOptions &options);
|
|
16
19
|
|
|
17
20
|
[[nodiscard]] size_t getSizeInBytes() const;
|
|
18
21
|
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/effects/GainNodeHostObject.h>
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/AudioParamHostObject.h>
|
|
4
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
5
|
+
#include <audioapi/core/BaseAudioContext.h>
|
|
4
6
|
#include <audioapi/core/effects/GainNode.h>
|
|
5
7
|
#include <memory>
|
|
6
8
|
|
|
7
9
|
namespace audioapi {
|
|
8
10
|
|
|
9
|
-
GainNodeHostObject::GainNodeHostObject(
|
|
10
|
-
|
|
11
|
+
GainNodeHostObject::GainNodeHostObject(
|
|
12
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
13
|
+
const GainOptions &options)
|
|
14
|
+
: AudioNodeHostObject(context->createGain(options)) {
|
|
11
15
|
addGetters(JSI_EXPORT_PROPERTY_GETTER(GainNodeHostObject, gain));
|
|
12
16
|
}
|
|
13
17
|
|
|
@@ -8,11 +8,14 @@
|
|
|
8
8
|
namespace audioapi {
|
|
9
9
|
using namespace facebook;
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
struct GainOptions;
|
|
12
|
+
class BaseAudioContext;
|
|
12
13
|
|
|
13
14
|
class GainNodeHostObject : public AudioNodeHostObject {
|
|
14
15
|
public:
|
|
15
|
-
explicit GainNodeHostObject(
|
|
16
|
+
explicit GainNodeHostObject(
|
|
17
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
18
|
+
const GainOptions &options);
|
|
16
19
|
|
|
17
20
|
JSI_PROPERTY_GETTER_DECL(gain);
|
|
18
21
|
};
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/effects/IIRFilterNodeHostObject.h>
|
|
2
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
3
|
+
#include <audioapi/core/BaseAudioContext.h>
|
|
2
4
|
#include <audioapi/core/effects/IIRFilterNode.h>
|
|
3
5
|
#include <memory>
|
|
4
6
|
|
|
5
7
|
namespace audioapi {
|
|
6
8
|
|
|
7
|
-
IIRFilterNodeHostObject::IIRFilterNodeHostObject(
|
|
8
|
-
|
|
9
|
+
IIRFilterNodeHostObject::IIRFilterNodeHostObject(
|
|
10
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
11
|
+
const IIRFilterOptions &options)
|
|
12
|
+
: AudioNodeHostObject(context->createIIRFilter(options)) {
|
|
9
13
|
|
|
10
14
|
addFunctions(JSI_EXPORT_FUNCTION(IIRFilterNodeHostObject, getFrequencyResponse));
|
|
11
15
|
}
|
|
@@ -9,11 +9,14 @@
|
|
|
9
9
|
namespace audioapi {
|
|
10
10
|
using namespace facebook;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
struct IIRFilterOptions;
|
|
13
|
+
class BaseAudioContext;
|
|
13
14
|
|
|
14
15
|
class IIRFilterNodeHostObject : public AudioNodeHostObject {
|
|
15
16
|
public:
|
|
16
|
-
explicit IIRFilterNodeHostObject(
|
|
17
|
+
explicit IIRFilterNodeHostObject(
|
|
18
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
19
|
+
const IIRFilterOptions &options);
|
|
17
20
|
|
|
18
21
|
JSI_HOST_FUNCTION_DECL(getFrequencyResponse);
|
|
19
22
|
};
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/effects/StereoPannerNodeHostObject.h>
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/AudioParamHostObject.h>
|
|
4
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
5
|
+
#include <audioapi/core/BaseAudioContext.h>
|
|
4
6
|
#include <audioapi/core/effects/StereoPannerNode.h>
|
|
5
7
|
#include <memory>
|
|
6
8
|
|
|
7
9
|
namespace audioapi {
|
|
8
10
|
|
|
9
11
|
StereoPannerNodeHostObject::StereoPannerNodeHostObject(
|
|
10
|
-
const std::shared_ptr<
|
|
11
|
-
|
|
12
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
13
|
+
const StereoPannerOptions &options)
|
|
14
|
+
: AudioNodeHostObject(context->createStereoPanner(options)) {
|
|
12
15
|
addGetters(JSI_EXPORT_PROPERTY_GETTER(StereoPannerNodeHostObject, pan));
|
|
13
16
|
}
|
|
14
17
|
|
|
@@ -9,11 +9,14 @@
|
|
|
9
9
|
namespace audioapi {
|
|
10
10
|
using namespace facebook;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
struct StereoPannerOptions;
|
|
13
|
+
class BaseAudioContext;
|
|
13
14
|
|
|
14
15
|
class StereoPannerNodeHostObject : public AudioNodeHostObject {
|
|
15
16
|
public:
|
|
16
|
-
explicit StereoPannerNodeHostObject(
|
|
17
|
+
explicit StereoPannerNodeHostObject(
|
|
18
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
19
|
+
const StereoPannerOptions &options);
|
|
17
20
|
|
|
18
21
|
JSI_PROPERTY_GETTER_DECL(pan);
|
|
19
22
|
};
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/effects/WaveShaperNodeHostObject.h>
|
|
2
|
+
#include <audioapi/HostObjects/utils/JsEnumParser.h>
|
|
3
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
4
|
+
#include <audioapi/core/BaseAudioContext.h>
|
|
2
5
|
#include <audioapi/core/effects/WaveShaperNode.h>
|
|
3
6
|
#include <audioapi/jsi/AudioArrayBuffer.h>
|
|
4
|
-
#include <audioapi/HostObjects/utils/JsEnumParser.h>
|
|
5
7
|
|
|
6
8
|
#include <memory>
|
|
7
9
|
#include <string>
|
|
8
10
|
|
|
9
11
|
namespace audioapi {
|
|
10
12
|
|
|
11
|
-
WaveShaperNodeHostObject::WaveShaperNodeHostObject(
|
|
12
|
-
|
|
13
|
+
WaveShaperNodeHostObject::WaveShaperNodeHostObject(
|
|
14
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
15
|
+
const WaveShaperOptions &options)
|
|
16
|
+
: AudioNodeHostObject(context->createWaveShaper(options)) {
|
|
13
17
|
addGetters(
|
|
14
18
|
JSI_EXPORT_PROPERTY_GETTER(WaveShaperNodeHostObject, oversample),
|
|
15
19
|
JSI_EXPORT_PROPERTY_GETTER(WaveShaperNodeHostObject, curve));
|
|
@@ -20,7 +24,8 @@ WaveShaperNodeHostObject::WaveShaperNodeHostObject(const std::shared_ptr<WaveSha
|
|
|
20
24
|
|
|
21
25
|
JSI_PROPERTY_GETTER_IMPL(WaveShaperNodeHostObject, oversample) {
|
|
22
26
|
auto waveShaperNode = std::static_pointer_cast<WaveShaperNode>(node_);
|
|
23
|
-
return jsi::String::createFromUtf8(
|
|
27
|
+
return jsi::String::createFromUtf8(
|
|
28
|
+
runtime, js_enum_parser::overSampleTypeToString(waveShaperNode->getOversample()));
|
|
24
29
|
}
|
|
25
30
|
|
|
26
31
|
JSI_PROPERTY_GETTER_IMPL(WaveShaperNodeHostObject, curve) {
|
|
@@ -10,11 +10,14 @@
|
|
|
10
10
|
namespace audioapi {
|
|
11
11
|
using namespace facebook;
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
struct WaveShaperOptions;
|
|
14
|
+
class BaseAudioContext;
|
|
14
15
|
|
|
15
16
|
class WaveShaperNodeHostObject : public AudioNodeHostObject {
|
|
16
17
|
public:
|
|
17
|
-
explicit WaveShaperNodeHostObject(
|
|
18
|
+
explicit WaveShaperNodeHostObject(
|
|
19
|
+
const std::shared_ptr<BaseAudioContext> &context,
|
|
20
|
+
const WaveShaperOptions &options);
|
|
18
21
|
|
|
19
22
|
JSI_PROPERTY_GETTER_DECL(oversample);
|
|
20
23
|
JSI_PROPERTY_GETTER_DECL(curve);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.h>
|
|
2
2
|
|
|
3
3
|
#include <audioapi/events/AudioEventHandlerRegistry.h>
|
|
4
|
+
#include <audioapi/HostObjects/utils/JsEnumParser.h>
|
|
4
5
|
#include <memory>
|
|
5
6
|
|
|
6
7
|
namespace audioapi {
|
|
@@ -18,7 +19,7 @@ JSI_HOST_FUNCTION_IMPL(AudioEventHandlerRegistryHostObject, addAudioEventListene
|
|
|
18
19
|
auto eventName = args[0].getString(runtime).utf8(runtime);
|
|
19
20
|
auto callback = std::make_shared<jsi::Function>(args[1].getObject(runtime).getFunction(runtime));
|
|
20
21
|
|
|
21
|
-
auto listenerId = eventHandlerRegistry_->registerHandler(eventName, callback);
|
|
22
|
+
auto listenerId = eventHandlerRegistry_->registerHandler(js_enum_parser::audioEventFromString(eventName), callback);
|
|
22
23
|
|
|
23
24
|
return jsi::String::createFromUtf8(runtime, std::to_string(listenerId));
|
|
24
25
|
}
|
|
@@ -27,7 +28,7 @@ JSI_HOST_FUNCTION_IMPL(AudioEventHandlerRegistryHostObject, removeAudioEventList
|
|
|
27
28
|
auto eventName = args[0].getString(runtime).utf8(runtime);
|
|
28
29
|
uint64_t listenerId = std::stoull(args[1].getString(runtime).utf8(runtime));
|
|
29
30
|
|
|
30
|
-
eventHandlerRegistry_->unregisterHandler(eventName, listenerId);
|
|
31
|
+
eventHandlerRegistry_->unregisterHandler(js_enum_parser::audioEventFromString(eventName), listenerId);
|
|
31
32
|
|
|
32
33
|
return jsi::Value::undefined();
|
|
33
34
|
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
#include <audioapi/core/sources/AudioBuffer.h>
|
|
7
7
|
#include <audioapi/events/AudioEventHandlerRegistry.h>
|
|
8
8
|
#include <audioapi/utils/AudioFileProperties.h>
|
|
9
|
+
#include <audioapi/jsi/JsiUtils.h>
|
|
9
10
|
#ifdef ANDROID
|
|
10
11
|
#include <audioapi/android/core/AndroidAudioRecorder.h>
|
|
11
12
|
#else
|
|
@@ -41,7 +42,7 @@ AudioRecorderHostObject::AudioRecorderHostObject(
|
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
JSI_HOST_FUNCTION_IMPL(AudioRecorderHostObject, start) {
|
|
44
|
-
auto fileNameOverride =
|
|
45
|
+
auto fileNameOverride = jsiutils::argToString(runtime, args, count, 0, "");
|
|
45
46
|
auto result = audioRecorder_->start(fileNameOverride);
|
|
46
47
|
auto jsResult = jsi::Object(runtime);
|
|
47
48
|
|