|
5 | 5 | #include <audioapi/HostObjects/analysis/AnalyserNodeHostObject.h> |
6 | 6 | #include <audioapi/HostObjects/destinations/AudioDestinationNodeHostObject.h> |
7 | 7 | #include <audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h> |
| 8 | +#include <audioapi/HostObjects/effects/ConvolverNodeHostObject.h> |
8 | 9 | #include <audioapi/HostObjects/effects/GainNodeHostObject.h> |
9 | 10 | #include <audioapi/HostObjects/effects/PeriodicWaveHostObject.h> |
10 | 11 | #include <audioapi/HostObjects/effects/StereoPannerNodeHostObject.h> |
@@ -49,6 +50,7 @@ BaseAudioContextHostObject::BaseAudioContextHostObject( |
49 | 50 | JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createBufferQueueSource), |
50 | 51 | JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createBuffer), |
51 | 52 | JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createPeriodicWave), |
| 53 | + JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createConvolver), |
52 | 54 | JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createAnalyser)); |
53 | 55 | } |
54 | 56 |
|
@@ -269,4 +271,20 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createAnalyser) { |
269 | 271 | auto analyserHostObject = std::make_shared<AnalyserNodeHostObject>(analyser); |
270 | 272 | return jsi::Object::createFromHostObject(runtime, analyserHostObject); |
271 | 273 | } |
| 274 | + |
| 275 | +JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createConvolver) { |
| 276 | + auto disableNormalization = args[1].getBool(); |
| 277 | + std::shared_ptr<ConvolverNode> convolver; |
| 278 | + if (args[0].isUndefined()) { |
| 279 | + convolver = context_->createConvolver(nullptr, disableNormalization); |
| 280 | + } else { |
| 281 | + auto bufferHostObject = |
| 282 | + args[0].getObject(runtime).asHostObject<AudioBufferHostObject>(runtime); |
| 283 | + convolver = context_->createConvolver( |
| 284 | + bufferHostObject->audioBuffer_, disableNormalization); |
| 285 | + } |
| 286 | + auto convolverHostObject = |
| 287 | + std::make_shared<ConvolverNodeHostObject>(convolver); |
| 288 | + return jsi::Object::createFromHostObject(runtime, convolverHostObject); |
| 289 | +} |
272 | 290 | } // namespace audioapi |
0 commit comments