react-native-audio-api 0.11.0-alpha.1 → 0.11.0-alpha.2
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/README.md +13 -11
- package/RNAudioAPI.podspec +25 -18
- package/android/build.gradle +41 -5
- package/android/src/main/cpp/audioapi/CMakeLists.txt +6 -3
- package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +10 -16
- package/android/src/main/cpp/audioapi/android/OnLoad.cpp +1 -2
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +219 -84
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +24 -23
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +13 -20
- package/android/src/main/cpp/audioapi/android/core/utils/AndroidFileWriterBackend.h +14 -18
- package/android/src/main/cpp/audioapi/android/core/utils/AndroidRecorderCallback.cpp +72 -89
- package/android/src/main/cpp/audioapi/android/core/utils/AndroidRecorderCallback.h +12 -23
- package/android/src/main/cpp/audioapi/android/core/utils/AudioDecoder.cpp +47 -47
- package/android/src/main/cpp/audioapi/android/core/utils/FileOptions.cpp +83 -0
- package/android/src/main/cpp/audioapi/android/core/utils/FileOptions.h +22 -0
- package/android/src/main/cpp/audioapi/android/core/utils/MiniaudioImplementation.cpp +5 -0
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegFileWriter.cpp +379 -298
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegFileWriter.h +48 -91
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/ptrs.hpp +48 -0
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/utils.cpp +110 -0
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/utils.h +34 -0
- package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileWriter.cpp +132 -104
- package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileWriter.h +8 -16
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +28 -1
- package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +28 -6
- package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +11 -0
- package/android/src/main/jniLibs/arm64-v8a/libavcodec.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libavformat.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libavutil.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libswresample.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavcodec.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavformat.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavutil.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libswresample.so +0 -0
- package/android/src/main/jniLibs/x86/libavcodec.so +0 -0
- package/android/src/main/jniLibs/x86/libavformat.so +0 -0
- package/android/src/main/jniLibs/x86/libavutil.so +0 -0
- package/android/src/main/jniLibs/x86/libswresample.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavcodec.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavformat.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavutil.so +0 -0
- package/android/src/main/jniLibs/x86_64/libswresample.so +0 -0
- package/android/src/oldarch/NativeAudioAPIModuleSpec.java +4 -0
- package/common/cpp/audioapi/AudioAPIModuleInstaller.h +45 -70
- package/common/cpp/audioapi/HostObjects/AudioContextHostObject.cpp +20 -22
- package/common/cpp/audioapi/HostObjects/AudioNodeHostObject.cpp +3 -4
- package/common/cpp/audioapi/HostObjects/AudioParamHostObject.cpp +6 -8
- package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +2 -2
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +102 -63
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +4 -1
- package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.cpp +25 -31
- package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.h +3 -3
- package/common/cpp/audioapi/HostObjects/WorkletNodeHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/WorkletProcessingNodeHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.cpp +10 -18
- package/common/cpp/audioapi/HostObjects/destinations/AudioDestinationNodeHostObject.h +2 -3
- package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +18 -30
- package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.cpp +50 -0
- package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.h +20 -0
- package/common/cpp/audioapi/HostObjects/effects/DelayNodeHostObject.cpp +27 -0
- package/common/cpp/audioapi/HostObjects/effects/DelayNodeHostObject.h +21 -0
- package/common/cpp/audioapi/HostObjects/effects/GainNodeHostObject.cpp +2 -2
- package/common/cpp/audioapi/HostObjects/effects/IIRFilterNodeHostObject.cpp +33 -0
- package/common/cpp/audioapi/HostObjects/effects/IIRFilterNodeHostObject.h +20 -0
- package/common/cpp/audioapi/HostObjects/effects/PeriodicWaveHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.cpp +2 -2
- package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.cpp +6 -12
- package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.h +7 -7
- package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.cpp +98 -50
- package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.h +5 -2
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.cpp +27 -22
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.h +12 -10
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.cpp +17 -22
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.h +5 -7
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.cpp +25 -11
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.h +8 -8
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +19 -30
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.h +2 -4
- package/common/cpp/audioapi/HostObjects/sources/AudioScheduledSourceNodeHostObject.cpp +7 -11
- package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.cpp +2 -2
- package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.cpp +6 -8
- package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/sources/RecorderAdapterNodeHostObject.h +4 -5
- package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.cpp +6 -2
- package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.h +5 -6
- package/common/cpp/audioapi/HostObjects/sources/WorkletSourceNodeHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/utils/AudioDecoderHostObject.cpp +39 -60
- package/common/cpp/audioapi/HostObjects/utils/AudioStretcherHostObject.cpp +15 -30
- package/common/cpp/audioapi/core/AudioContext.cpp +23 -28
- package/common/cpp/audioapi/core/AudioContext.h +6 -3
- package/common/cpp/audioapi/core/AudioNode.cpp +17 -19
- package/common/cpp/audioapi/core/AudioNode.h +19 -8
- package/common/cpp/audioapi/core/AudioParam.cpp +68 -100
- package/common/cpp/audioapi/core/AudioParam.h +20 -12
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +52 -34
- package/common/cpp/audioapi/core/BaseAudioContext.h +26 -14
- package/common/cpp/audioapi/core/OfflineAudioContext.cpp +12 -17
- package/common/cpp/audioapi/core/OfflineAudioContext.h +10 -5
- package/common/cpp/audioapi/core/analysis/AnalyserNode.cpp +13 -21
- package/common/cpp/audioapi/core/analysis/AnalyserNode.h +8 -6
- package/common/cpp/audioapi/core/destinations/AudioDestinationNode.cpp +1 -0
- package/common/cpp/audioapi/core/destinations/AudioDestinationNode.h +5 -3
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +84 -66
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +39 -10
- package/common/cpp/audioapi/core/effects/ConvolverNode.cpp +201 -0
- package/common/cpp/audioapi/core/effects/ConvolverNode.h +64 -0
- package/common/cpp/audioapi/core/effects/DelayNode.cpp +101 -0
- package/common/cpp/audioapi/core/effects/DelayNode.h +39 -0
- package/common/cpp/audioapi/core/effects/GainNode.cpp +1 -0
- package/common/cpp/audioapi/core/effects/GainNode.h +3 -1
- package/common/cpp/audioapi/core/effects/IIRFilterNode.cpp +166 -0
- package/common/cpp/audioapi/core/effects/IIRFilterNode.h +74 -0
- package/common/cpp/audioapi/core/effects/PeriodicWave.cpp +22 -35
- package/common/cpp/audioapi/core/effects/PeriodicWave.h +4 -9
- package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +4 -5
- package/common/cpp/audioapi/core/effects/StereoPannerNode.h +4 -2
- package/common/cpp/audioapi/core/effects/WorkletNode.cpp +11 -13
- package/common/cpp/audioapi/core/effects/WorkletNode.h +15 -12
- package/common/cpp/audioapi/core/effects/WorkletProcessingNode.cpp +4 -4
- package/common/cpp/audioapi/core/effects/WorkletProcessingNode.h +15 -14
- package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +58 -36
- package/common/cpp/audioapi/core/inputs/AudioRecorder.h +41 -44
- package/common/cpp/audioapi/core/sources/AudioBuffer.cpp +4 -6
- package/common/cpp/audioapi/core/sources/AudioBuffer.h +4 -7
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +48 -57
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +37 -34
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +55 -17
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +35 -28
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +41 -49
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +8 -6
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +29 -24
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +6 -6
- package/common/cpp/audioapi/core/sources/ConstantSourceNode.cpp +3 -4
- package/common/cpp/audioapi/core/sources/ConstantSourceNode.h +3 -1
- package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +12 -23
- package/common/cpp/audioapi/core/sources/OscillatorNode.h +6 -4
- package/common/cpp/audioapi/core/sources/RecorderAdapterNode.cpp +43 -16
- package/common/cpp/audioapi/core/sources/RecorderAdapterNode.h +22 -17
- package/common/cpp/audioapi/core/sources/StreamerNode.cpp +104 -87
- package/common/cpp/audioapi/core/sources/StreamerNode.h +69 -33
- package/common/cpp/audioapi/core/sources/WorkletSourceNode.cpp +5 -7
- package/common/cpp/audioapi/core/sources/WorkletSourceNode.h +15 -13
- package/common/cpp/audioapi/core/types/AudioFormat.h +1 -11
- package/common/cpp/audioapi/core/utils/AudioDecoder.h +15 -6
- package/common/cpp/audioapi/core/utils/AudioFileWriter.cpp +41 -0
- package/common/cpp/audioapi/core/utils/AudioFileWriter.h +43 -0
- package/common/cpp/audioapi/core/utils/AudioNodeDestructor.cpp +5 -6
- package/common/cpp/audioapi/core/utils/AudioNodeDestructor.h +7 -10
- package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +17 -19
- package/common/cpp/audioapi/core/utils/AudioNodeManager.h +8 -11
- package/common/cpp/audioapi/core/utils/AudioParamEventQueue.cpp +3 -3
- package/common/cpp/audioapi/core/utils/AudioParamEventQueue.h +5 -5
- package/common/cpp/audioapi/core/utils/AudioRecorderCallback.cpp +101 -0
- package/common/cpp/audioapi/core/utils/AudioRecorderCallback.h +51 -0
- package/common/cpp/audioapi/core/utils/AudioStretcher.cpp +6 -6
- package/common/cpp/audioapi/core/utils/Constants.h +7 -3
- package/common/cpp/audioapi/core/utils/ParamChangeEvent.cpp +1 -0
- package/common/cpp/audioapi/core/utils/ParamChangeEvent.h +9 -9
- package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +33 -34
- package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +17 -19
- package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.h +23 -19
- package/common/cpp/audioapi/dsp/AudioUtils.cpp +4 -10
- package/common/cpp/audioapi/dsp/AudioUtils.h +1 -1
- package/common/cpp/audioapi/dsp/Convolver.cpp +201 -0
- package/common/cpp/audioapi/dsp/Convolver.h +47 -0
- package/common/cpp/audioapi/dsp/FFT.cpp +1 -27
- package/common/cpp/audioapi/dsp/FFT.h +19 -3
- package/common/cpp/audioapi/dsp/VectorMath.cpp +24 -58
- package/common/cpp/audioapi/dsp/VectorMath.h +35 -8
- package/common/cpp/audioapi/dsp/Windows.cpp +4 -9
- package/common/cpp/audioapi/dsp/Windows.h +24 -23
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +12 -17
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +45 -40
- package/common/cpp/audioapi/events/IAudioEventHandlerRegistry.h +15 -7
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/avcodec.h +4 -4
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_desc.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_id.h +3 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_par.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/defs.h +3 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/packet.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/smpte_436m.h +254 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/version.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/avformat.h +6 -6
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version_major.h +2 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avassert.h +5 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avutil.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/channel_layout.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/csp.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/dict.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ffversion.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/film_grain_params.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/frame.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hdr_dynamic_vivid_metadata.h +3 -3
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_opencl.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_qsv.h +0 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vulkan.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/iamf.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/lfg.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/log.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mathematics.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/opt.h +4 -4
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rational.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rc4.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/refstruct.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/spherical.h +6 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tdrdi.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tx.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/version.h +3 -3
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/video_hint.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libswresample/swresample.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libswresample/version.h +1 -1
- package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/ios-arm64/libavcodec.framework/libavcodec +0 -0
- package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/ios-arm64_x86_64-simulator/libavcodec.framework/libavcodec +0 -0
- package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/ios-arm64/libavformat.framework/libavformat +0 -0
- package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/ios-arm64_x86_64-simulator/libavformat.framework/libavformat +0 -0
- package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/ios-arm64/libavutil.framework/libavutil +0 -0
- package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/ios-arm64_x86_64-simulator/libavutil.framework/libavutil +0 -0
- package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/ios-arm64/libswresample.framework/libswresample +0 -0
- package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/ios-arm64_x86_64-simulator/libswresample.framework/libswresample +0 -0
- package/common/cpp/audioapi/jsi/AudioArrayBuffer.h +4 -5
- package/common/cpp/audioapi/jsi/JsiHostObject.cpp +11 -13
- package/common/cpp/audioapi/jsi/JsiHostObject.h +26 -33
- package/common/cpp/audioapi/jsi/JsiPromise.cpp +34 -67
- package/common/cpp/audioapi/jsi/JsiPromise.h +65 -26
- package/common/cpp/audioapi/jsi/RuntimeLifecycleMonitor.cpp +7 -10
- package/common/cpp/audioapi/jsi/RuntimeLifecycleMonitor.h +1 -3
- package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +4 -3
- package/common/cpp/audioapi/libs/ffmpeg/relinking.md +24 -0
- package/common/cpp/audioapi/utils/AlignedAllocator.hpp +50 -0
- package/common/cpp/audioapi/utils/AudioArray.cpp +3 -8
- package/common/cpp/audioapi/utils/AudioArray.h +3 -11
- package/common/cpp/audioapi/utils/AudioBus.cpp +79 -149
- package/common/cpp/audioapi/utils/AudioBus.h +17 -14
- package/common/cpp/audioapi/utils/AudioFileProperties.cpp +92 -0
- package/common/cpp/audioapi/utils/AudioFileProperties.h +76 -0
- package/common/cpp/audioapi/utils/CircularAudioArray.cpp +6 -18
- package/common/cpp/audioapi/utils/CircularOverflowableAudioArray.cpp +6 -10
- package/common/cpp/audioapi/utils/CircularOverflowableAudioArray.h +2 -2
- package/common/cpp/audioapi/utils/Result.hpp +286 -0
- package/common/cpp/audioapi/utils/ThreadPool.hpp +59 -1
- package/common/cpp/audioapi/utils/UnitConversion.h +9 -0
- package/common/cpp/test/CMakeLists.txt +20 -14
- package/common/cpp/test/src/AudioParamTest.cpp +4 -3
- package/common/cpp/test/src/AudioScheduledSourceTest.cpp +113 -0
- package/common/cpp/test/src/ConstantSourceTest.cpp +5 -7
- package/common/cpp/test/src/DelayTest.cpp +108 -0
- package/common/cpp/test/src/GainTest.cpp +4 -5
- package/common/cpp/test/src/IIRFilterTest.cpp +153 -0
- package/common/cpp/test/src/MockAudioEventHandlerRegistry.h +19 -11
- package/common/cpp/test/src/OscillatorTest.cpp +2 -1
- package/common/cpp/test/src/StereoPannerTest.cpp +6 -9
- package/common/cpp/test/src/biquad/BiquadFilterChromium.cpp +372 -0
- package/common/cpp/test/src/biquad/BiquadFilterChromium.h +65 -0
- package/common/cpp/test/src/biquad/BiquadFilterTest.cpp +272 -0
- package/common/cpp/test/src/biquad/BiquadFilterTest.h +47 -0
- package/ios/audioapi/ios/AudioAPIModule.h +2 -1
- package/ios/audioapi/ios/AudioAPIModule.mm +44 -20
- package/ios/audioapi/ios/core/IOSAudioPlayer.h +2 -2
- package/ios/audioapi/ios/core/IOSAudioPlayer.mm +7 -6
- package/ios/audioapi/ios/core/IOSAudioRecorder.h +26 -18
- package/ios/audioapi/ios/core/IOSAudioRecorder.mm +193 -53
- package/ios/audioapi/ios/core/NativeAudioPlayer.m +16 -13
- package/ios/audioapi/ios/core/NativeAudioRecorder.h +4 -0
- package/ios/audioapi/ios/core/NativeAudioRecorder.m +42 -7
- package/ios/audioapi/ios/core/utils/AudioDecoder.mm +21 -4
- package/ios/audioapi/ios/core/utils/FileOptions.h +31 -0
- package/ios/audioapi/ios/core/utils/FileOptions.mm +177 -0
- package/ios/audioapi/ios/core/{IOSAudioFileWriter.h → utils/IOSFileWriter.h} +16 -14
- package/ios/audioapi/ios/core/utils/IOSFileWriter.mm +224 -0
- package/ios/audioapi/ios/core/{IOSRecorderCallback.h → utils/IOSRecorderCallback.h} +7 -17
- package/ios/audioapi/ios/core/utils/IOSRecorderCallback.mm +172 -0
- package/ios/audioapi/ios/system/AudioEngine.h +19 -16
- package/ios/audioapi/ios/system/AudioEngine.mm +101 -134
- package/ios/audioapi/ios/system/AudioSessionManager.h +25 -11
- package/ios/audioapi/ios/system/AudioSessionManager.mm +273 -202
- package/ios/audioapi/ios/system/LockScreenManager.mm +39 -23
- package/ios/audioapi/ios/system/NotificationManager.mm +37 -52
- package/lib/commonjs/AudioAPIModule/AudioAPIModule.js +90 -0
- package/lib/commonjs/AudioAPIModule/AudioAPIModule.js.map +1 -0
- package/lib/commonjs/AudioAPIModule/globals.d.js +6 -0
- package/lib/commonjs/AudioAPIModule/globals.d.js.map +1 -0
- package/lib/commonjs/AudioAPIModule/index.js +14 -0
- package/lib/commonjs/AudioAPIModule/index.js.map +1 -0
- package/lib/commonjs/api.js +18 -12
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/api.web.js +8 -0
- package/lib/commonjs/api.web.js.map +1 -1
- package/lib/commonjs/core/AudioBufferBaseSourceNode.js +3 -0
- package/lib/commonjs/core/AudioBufferBaseSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js +5 -2
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioContext.js +5 -8
- package/lib/commonjs/core/AudioContext.js.map +1 -1
- package/lib/commonjs/core/AudioNode.js +1 -1
- package/lib/commonjs/core/AudioNode.js.map +1 -1
- package/lib/commonjs/core/AudioParam.js +18 -11
- package/lib/commonjs/core/AudioParam.js.map +1 -1
- package/lib/commonjs/core/AudioRecorder.js +43 -55
- package/lib/commonjs/core/AudioRecorder.js.map +1 -1
- package/lib/commonjs/core/BaseAudioContext.js +61 -30
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/commonjs/core/ConvolverNode.js +37 -0
- package/lib/commonjs/core/ConvolverNode.js.map +1 -0
- package/lib/commonjs/core/DelayNode.js +17 -0
- package/lib/commonjs/core/DelayNode.js.map +1 -0
- package/lib/commonjs/core/IIRFilterNode.js +19 -0
- package/lib/commonjs/core/IIRFilterNode.js.map +1 -0
- package/lib/commonjs/core/OfflineAudioContext.js +3 -6
- package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
- package/lib/commonjs/plugin/withAudioAPI.js +46 -0
- package/lib/commonjs/plugin/withAudioAPI.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +4 -7
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/commonjs/types.js +16 -23
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/filePresets.js +43 -0
- package/lib/commonjs/utils/filePresets.js.map +1 -0
- package/lib/commonjs/utils/index.js +12 -27
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/web-core/AudioContext.js +21 -1
- package/lib/commonjs/web-core/AudioContext.js.map +1 -1
- package/lib/commonjs/web-core/ConvolverNode.js +40 -0
- package/lib/commonjs/web-core/ConvolverNode.js.map +1 -0
- package/lib/commonjs/web-core/ConvolverNodeOptions.js +6 -0
- package/lib/commonjs/web-core/ConvolverNodeOptions.js.map +1 -0
- package/lib/commonjs/web-core/DelayNode.js +17 -0
- package/lib/commonjs/web-core/DelayNode.js.map +1 -0
- package/lib/commonjs/web-core/IIRFilterNode.js +19 -0
- package/lib/commonjs/web-core/IIRFilterNode.js.map +1 -0
- package/lib/commonjs/web-core/OfflineAudioContext.js +20 -0
- package/lib/commonjs/web-core/OfflineAudioContext.js.map +1 -1
- package/lib/module/AudioAPIModule/AudioAPIModule.js +87 -0
- package/lib/module/AudioAPIModule/AudioAPIModule.js.map +1 -0
- package/lib/module/AudioAPIModule/globals.d.js +4 -0
- package/lib/module/AudioAPIModule/globals.d.js.map +1 -0
- package/lib/module/AudioAPIModule/index.js +4 -0
- package/lib/module/AudioAPIModule/index.js.map +1 -0
- package/lib/module/api.js +3 -12
- package/lib/module/api.js.map +1 -1
- package/lib/module/api.web.js +1 -0
- package/lib/module/api.web.js.map +1 -1
- package/lib/module/core/AudioBufferBaseSourceNode.js +3 -0
- package/lib/module/core/AudioBufferBaseSourceNode.js.map +1 -1
- package/lib/module/core/AudioBufferQueueSourceNode.js +5 -2
- package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/module/core/AudioContext.js +5 -8
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/core/AudioNode.js +1 -1
- package/lib/module/core/AudioNode.js.map +1 -1
- package/lib/module/core/AudioParam.js +18 -11
- package/lib/module/core/AudioParam.js.map +1 -1
- package/lib/module/core/AudioRecorder.js +44 -56
- package/lib/module/core/AudioRecorder.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +63 -32
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/ConvolverNode.js +31 -0
- package/lib/module/core/ConvolverNode.js.map +1 -0
- package/lib/module/core/DelayNode.js +11 -0
- package/lib/module/core/DelayNode.js.map +1 -0
- package/lib/module/core/IIRFilterNode.js +13 -0
- package/lib/module/core/IIRFilterNode.js.map +1 -0
- package/lib/module/core/OfflineAudioContext.js +3 -6
- package/lib/module/core/OfflineAudioContext.js.map +1 -1
- package/lib/module/plugin/withAudioAPI.js +47 -1
- package/lib/module/plugin/withAudioAPI.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/system/AudioManager.js +4 -7
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/module/types.js +15 -22
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/filePresets.js +39 -0
- package/lib/module/utils/filePresets.js.map +1 -0
- package/lib/module/utils/index.js +10 -10
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/web-core/AudioContext.js +21 -1
- package/lib/module/web-core/AudioContext.js.map +1 -1
- package/lib/module/web-core/ConvolverNode.js +34 -0
- package/lib/module/web-core/ConvolverNode.js.map +1 -0
- package/lib/module/web-core/ConvolverNodeOptions.js +4 -0
- package/lib/module/web-core/ConvolverNodeOptions.js.map +1 -0
- package/lib/module/web-core/DelayNode.js +11 -0
- package/lib/module/web-core/DelayNode.js.map +1 -0
- package/lib/module/web-core/IIRFilterNode.js +13 -0
- package/lib/module/web-core/IIRFilterNode.js.map +1 -0
- package/lib/module/web-core/OfflineAudioContext.js +20 -0
- package/lib/module/web-core/OfflineAudioContext.js.map +1 -1
- package/lib/typescript/AudioAPIModule/AudioAPIModule.d.ts +36 -0
- package/lib/typescript/AudioAPIModule/AudioAPIModule.d.ts.map +1 -0
- package/lib/typescript/AudioAPIModule/index.d.ts +2 -0
- package/lib/typescript/AudioAPIModule/index.d.ts.map +1 -0
- package/lib/typescript/api.d.ts +3 -9
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/api.web.d.ts +1 -0
- package/lib/typescript/api.web.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts +1 -0
- package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +1 -1
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioContext.d.ts +1 -1
- package/lib/typescript/core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/core/AudioNode.d.ts +2 -1
- package/lib/typescript/core/AudioNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioParam.d.ts.map +1 -1
- package/lib/typescript/core/AudioRecorder.d.ts +13 -6
- package/lib/typescript/core/AudioRecorder.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +9 -3
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/ConvolverNode.d.ts +12 -0
- package/lib/typescript/core/ConvolverNode.d.ts.map +1 -0
- package/lib/typescript/core/DelayNode.d.ts +9 -0
- package/lib/typescript/core/DelayNode.d.ts.map +1 -0
- package/lib/typescript/core/IIRFilterNode.d.ts +5 -0
- package/lib/typescript/core/IIRFilterNode.d.ts.map +1 -0
- package/lib/typescript/core/OfflineAudioContext.d.ts +1 -1
- package/lib/typescript/core/OfflineAudioContext.d.ts.map +1 -1
- package/lib/typescript/events/types.d.ts +4 -0
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +34 -34
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/plugin/withAudioAPI.d.ts +1 -0
- package/lib/typescript/plugin/withAudioAPI.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +2 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +3 -2
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +42 -34
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/filePresets.d.ts +9 -0
- package/lib/typescript/utils/filePresets.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +1 -8
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioContext.d.ts +9 -2
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/BaseAudioContext.d.ts +7 -1
- package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/ConvolverNode.d.ts +11 -0
- package/lib/typescript/web-core/ConvolverNode.d.ts.map +1 -0
- package/lib/typescript/web-core/ConvolverNodeOptions.d.ts +6 -0
- package/lib/typescript/web-core/ConvolverNodeOptions.d.ts.map +1 -0
- package/lib/typescript/web-core/DelayNode.d.ts +8 -0
- package/lib/typescript/web-core/DelayNode.d.ts.map +1 -0
- package/lib/typescript/web-core/IIRFilterNode.d.ts +5 -0
- package/lib/typescript/web-core/IIRFilterNode.d.ts.map +1 -0
- package/lib/typescript/web-core/OfflineAudioContext.d.ts +8 -1
- package/lib/typescript/web-core/OfflineAudioContext.d.ts.map +1 -1
- package/package.json +11 -4
- package/scripts/download-prebuilt-binaries.sh +61 -0
- package/scripts/rnaa_utils.rb +8 -0
- package/scripts/validate-worklets-version.js +27 -0
- package/src/AudioAPIModule/AudioAPIModule.ts +122 -0
- package/src/AudioAPIModule/globals.d.ts +33 -0
- package/src/AudioAPIModule/index.ts +1 -0
- package/src/api.ts +4 -52
- package/src/api.web.ts +1 -0
- package/src/core/AudioBufferBaseSourceNode.ts +8 -0
- package/src/core/AudioBufferQueueSourceNode.ts +8 -2
- package/src/core/AudioContext.ts +5 -8
- package/src/core/AudioNode.ts +4 -3
- package/src/core/AudioParam.ts +18 -11
- package/src/core/AudioRecorder.ts +63 -78
- package/src/core/BaseAudioContext.ts +120 -54
- package/src/core/ConvolverNode.ts +35 -0
- package/src/core/DelayNode.ts +13 -0
- package/src/core/IIRFilterNode.ts +25 -0
- package/src/core/OfflineAudioContext.ts +4 -7
- package/src/events/types.ts +5 -0
- package/src/interfaces.ts +51 -34
- package/src/plugin/withAudioAPI.ts +61 -0
- package/src/specs/NativeAudioAPIModule.ts +3 -2
- package/src/system/AudioManager.ts +13 -19
- package/src/types.ts +45 -36
- package/src/utils/filePresets.ts +47 -0
- package/src/utils/index.ts +13 -19
- package/src/web-core/AudioContext.tsx +40 -1
- package/src/web-core/BaseAudioContext.tsx +11 -1
- package/src/web-core/ConvolverNode.tsx +43 -0
- package/src/web-core/ConvolverNodeOptions.tsx +6 -0
- package/src/web-core/DelayNode.tsx +12 -0
- package/src/web-core/IIRFilterNode.tsx +25 -0
- package/src/web-core/OfflineAudioContext.tsx +39 -0
- package/android/src/main/cpp/audioapi/android/core/utils/FileUtils.h +0 -34
- package/android/src/main/cpp/audioapi/android/core/utils/FileUtilts.cpp +0 -133
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegAudioFileOptions.cpp +0 -154
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegAudioFileOptions.h +0 -41
- package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileOptions.cpp +0 -47
- package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileOptions.h +0 -28
- package/common/cpp/audioapi/libs/ffmpeg/INSTRUCTIONS.md +0 -32
- package/common/cpp/audioapi/libs/ffmpeg/create_xcframework.sh +0 -111
- package/common/cpp/audioapi/libs/ffmpeg/ffmpeg_setup.sh +0 -391
- package/ios/audioapi/ios/core/IOSAudioFileOptions.h +0 -36
- package/ios/audioapi/ios/core/IOSAudioFileOptions.mm +0 -140
- package/ios/audioapi/ios/core/IOSAudioFileWriter.mm +0 -223
- package/ios/audioapi/ios/core/IOSRecorderCallback.mm +0 -189
- package/lib/commonjs/utils/bitEnums.js +0 -33
- package/lib/commonjs/utils/bitEnums.js.map +0 -1
- package/lib/module/utils/bitEnums.js +0 -27
- package/lib/module/utils/bitEnums.js.map +0 -1
- package/lib/typescript/utils/bitEnums.d.ts +0 -4
- package/lib/typescript/utils/bitEnums.d.ts.map +0 -1
- package/metro-config/index.d.ts +0 -5
- package/metro-config/index.js +0 -41
- package/metro-config/tsconfig.json +0 -3
- package/src/utils/bitEnums.ts +0 -51
- package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/Info.plist +5 -5
- package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/ios-arm64/libavcodec.framework/Info.plist +0 -0
- package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/ios-arm64_x86_64-simulator/libavcodec.framework/Info.plist +0 -0
- package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/Info.plist +0 -0
- package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/ios-arm64/libavformat.framework/Info.plist +0 -0
- package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/ios-arm64_x86_64-simulator/libavformat.framework/Info.plist +0 -0
- package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/Info.plist +5 -5
- package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/ios-arm64/libavutil.framework/Info.plist +0 -0
- package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/ios-arm64_x86_64-simulator/libavutil.framework/Info.plist +0 -0
- package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/Info.plist +5 -5
- /package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/ios-arm64/libswresample.framework/Info.plist +0 -0
- /package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/ios-arm64_x86_64-simulator/libswresample.framework/Info.plist +0 -0
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
#include <audioapi/core/BaseAudioContext.h>
|
|
4
4
|
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
5
5
|
|
|
6
|
-
#include <memory>
|
|
7
6
|
#include <functional>
|
|
7
|
+
#include <memory>
|
|
8
8
|
|
|
9
9
|
namespace audioapi {
|
|
10
10
|
#ifdef ANDROID
|
|
@@ -15,13 +15,16 @@ class IOSAudioPlayer;
|
|
|
15
15
|
|
|
16
16
|
class AudioContext : public BaseAudioContext {
|
|
17
17
|
public:
|
|
18
|
-
explicit AudioContext(
|
|
18
|
+
explicit AudioContext(
|
|
19
|
+
float sampleRate,
|
|
20
|
+
const std::shared_ptr<IAudioEventHandlerRegistry> &audioEventHandlerRegistry,
|
|
21
|
+
const RuntimeRegistry &runtimeRegistry);
|
|
19
22
|
~AudioContext() override;
|
|
20
23
|
|
|
21
24
|
void close();
|
|
22
25
|
bool resume();
|
|
23
26
|
bool suspend();
|
|
24
|
-
|
|
27
|
+
bool start();
|
|
25
28
|
|
|
26
29
|
private:
|
|
27
30
|
#ifdef ANDROID
|
|
@@ -4,12 +4,15 @@
|
|
|
4
4
|
#include <audioapi/core/utils/AudioNodeManager.h>
|
|
5
5
|
#include <audioapi/utils/AudioArray.h>
|
|
6
6
|
#include <audioapi/utils/AudioBus.h>
|
|
7
|
+
#include <memory>
|
|
8
|
+
#include <string>
|
|
9
|
+
#include <utility>
|
|
7
10
|
|
|
8
11
|
namespace audioapi {
|
|
9
12
|
|
|
10
13
|
AudioNode::AudioNode(BaseAudioContext *context) : context_(context) {
|
|
11
|
-
audioBus_ =
|
|
12
|
-
RENDER_QUANTUM_SIZE, channelCount_, context->getSampleRate());
|
|
14
|
+
audioBus_ =
|
|
15
|
+
std::make_shared<AudioBus>(RENDER_QUANTUM_SIZE, channelCount_, context->getSampleRate());
|
|
13
16
|
}
|
|
14
17
|
|
|
15
18
|
AudioNode::~AudioNode() {
|
|
@@ -50,9 +53,7 @@ void AudioNode::connect(const std::shared_ptr<AudioParam> ¶m) {
|
|
|
50
53
|
|
|
51
54
|
void AudioNode::disconnect() {
|
|
52
55
|
context_->getNodeManager()->addPendingNodeConnection(
|
|
53
|
-
shared_from_this(),
|
|
54
|
-
nullptr,
|
|
55
|
-
AudioNodeManager::ConnectionType::DISCONNECT_ALL);
|
|
56
|
+
shared_from_this(), nullptr, AudioNodeManager::ConnectionType::DISCONNECT_ALL);
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
void AudioNode::disconnect(const std::shared_ptr<AudioNode> &node) {
|
|
@@ -69,6 +70,10 @@ bool AudioNode::isEnabled() const {
|
|
|
69
70
|
return isEnabled_;
|
|
70
71
|
}
|
|
71
72
|
|
|
73
|
+
bool AudioNode::requiresTailProcessing() const {
|
|
74
|
+
return requiresTailProcessing_;
|
|
75
|
+
}
|
|
76
|
+
|
|
72
77
|
void AudioNode::enable() {
|
|
73
78
|
if (isEnabled()) {
|
|
74
79
|
return;
|
|
@@ -76,8 +81,7 @@ void AudioNode::enable() {
|
|
|
76
81
|
|
|
77
82
|
isEnabled_ = true;
|
|
78
83
|
|
|
79
|
-
for (auto it = outputNodes_.begin(), end = outputNodes_.end(); it != end;
|
|
80
|
-
++it) {
|
|
84
|
+
for (auto it = outputNodes_.begin(), end = outputNodes_.end(); it != end; ++it) {
|
|
81
85
|
it->get()->onInputEnabled();
|
|
82
86
|
}
|
|
83
87
|
}
|
|
@@ -89,8 +93,7 @@ void AudioNode::disable() {
|
|
|
89
93
|
|
|
90
94
|
isEnabled_ = false;
|
|
91
95
|
|
|
92
|
-
for (auto it = outputNodes_.begin(), end = outputNodes_.end(); it != end;
|
|
93
|
-
++it) {
|
|
96
|
+
for (auto it = outputNodes_.begin(), end = outputNodes_.end(); it != end; ++it) {
|
|
94
97
|
it->get()->onInputDisabled();
|
|
95
98
|
}
|
|
96
99
|
}
|
|
@@ -132,8 +135,7 @@ std::shared_ptr<AudioBus> AudioNode::processAudio(
|
|
|
132
135
|
}
|
|
133
136
|
|
|
134
137
|
// Process inputs and return the bus with the most channels.
|
|
135
|
-
auto processingBus =
|
|
136
|
-
processInputs(outputBus, framesToProcess, checkIsAlreadyProcessed);
|
|
138
|
+
auto processingBus = processInputs(outputBus, framesToProcess, checkIsAlreadyProcessed);
|
|
137
139
|
|
|
138
140
|
// Apply channel count mode.
|
|
139
141
|
processingBus = applyChannelCountMode(processingBus);
|
|
@@ -172,8 +174,7 @@ std::shared_ptr<AudioBus> AudioNode::processInputs(
|
|
|
172
174
|
processingBus->zero();
|
|
173
175
|
|
|
174
176
|
int maxNumberOfChannels = 0;
|
|
175
|
-
for (auto it = inputNodes_.begin(), end = inputNodes_.end(); it != end;
|
|
176
|
-
++it) {
|
|
177
|
+
for (auto it = inputNodes_.begin(), end = inputNodes_.end(); it != end; ++it) {
|
|
177
178
|
auto inputNode = *it;
|
|
178
179
|
assert(inputNode != nullptr);
|
|
179
180
|
|
|
@@ -181,8 +182,7 @@ std::shared_ptr<AudioBus> AudioNode::processInputs(
|
|
|
181
182
|
continue;
|
|
182
183
|
}
|
|
183
184
|
|
|
184
|
-
auto inputBus = inputNode->processAudio(
|
|
185
|
-
outputBus, framesToProcess, checkIsAlreadyProcessed);
|
|
185
|
+
auto inputBus = inputNode->processAudio(outputBus, framesToProcess, checkIsAlreadyProcessed);
|
|
186
186
|
inputBuses_.push_back(inputBus);
|
|
187
187
|
|
|
188
188
|
if (maxNumberOfChannels < inputBus->getNumberOfChannels()) {
|
|
@@ -215,8 +215,7 @@ std::shared_ptr<AudioBus> AudioNode::applyChannelCountMode(
|
|
|
215
215
|
void AudioNode::mixInputsBuses(const std::shared_ptr<AudioBus> &processingBus) {
|
|
216
216
|
assert(processingBus != nullptr);
|
|
217
217
|
|
|
218
|
-
for (auto it = inputBuses_.begin(), end = inputBuses_.end(); it != end;
|
|
219
|
-
++it) {
|
|
218
|
+
for (auto it = inputBuses_.begin(), end = inputBuses_.end(); it != end; ++it) {
|
|
220
219
|
processingBus->sum(it->get(), channelInterpretation_);
|
|
221
220
|
}
|
|
222
221
|
|
|
@@ -306,8 +305,7 @@ void AudioNode::onInputDisconnected(AudioNode *node) {
|
|
|
306
305
|
void AudioNode::cleanup() {
|
|
307
306
|
isInitialized_ = false;
|
|
308
307
|
|
|
309
|
-
for (auto it = outputNodes_.begin(), end = outputNodes_.end(); it != end;
|
|
310
|
-
++it) {
|
|
308
|
+
for (auto it = outputNodes_.begin(), end = outputNodes_.end(); it != end; ++it) {
|
|
311
309
|
it->get()->onInputDisconnected(this);
|
|
312
310
|
}
|
|
313
311
|
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
#include <audioapi/core/types/ChannelInterpretation.h>
|
|
5
5
|
#include <audioapi/core/utils/Constants.h>
|
|
6
6
|
|
|
7
|
+
#include <cassert>
|
|
8
|
+
#include <cstddef>
|
|
7
9
|
#include <memory>
|
|
8
10
|
#include <string>
|
|
9
11
|
#include <unordered_set>
|
|
10
|
-
#include <cstddef>
|
|
11
12
|
#include <vector>
|
|
12
|
-
#include <cassert>
|
|
13
13
|
|
|
14
14
|
namespace audioapi {
|
|
15
15
|
|
|
@@ -32,15 +32,21 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {
|
|
|
32
32
|
void disconnect();
|
|
33
33
|
void disconnect(const std::shared_ptr<AudioNode> &node);
|
|
34
34
|
void disconnect(const std::shared_ptr<AudioParam> ¶m);
|
|
35
|
-
virtual std::shared_ptr<AudioBus> processAudio(
|
|
35
|
+
virtual std::shared_ptr<AudioBus> processAudio(
|
|
36
|
+
const std::shared_ptr<AudioBus> &outputBus,
|
|
37
|
+
int framesToProcess,
|
|
38
|
+
bool checkIsAlreadyProcessed);
|
|
36
39
|
|
|
37
40
|
bool isEnabled() const;
|
|
41
|
+
bool requiresTailProcessing() const;
|
|
38
42
|
void enable();
|
|
39
43
|
virtual void disable();
|
|
40
44
|
|
|
41
45
|
protected:
|
|
42
46
|
friend class AudioNodeManager;
|
|
43
47
|
friend class AudioDestinationNode;
|
|
48
|
+
friend class ConvolverNode;
|
|
49
|
+
friend class DelayNodeHostObject;
|
|
44
50
|
|
|
45
51
|
BaseAudioContext *context_;
|
|
46
52
|
std::shared_ptr<AudioBus> audioBus_;
|
|
@@ -50,7 +56,8 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {
|
|
|
50
56
|
int channelCount_ = 2;
|
|
51
57
|
ChannelCountMode channelCountMode_ = ChannelCountMode::MAX;
|
|
52
58
|
ChannelInterpretation channelInterpretation_ =
|
|
53
|
-
|
|
59
|
+
|
|
60
|
+
ChannelInterpretation::SPEAKERS;
|
|
54
61
|
|
|
55
62
|
std::unordered_set<AudioNode *> inputNodes_ = {};
|
|
56
63
|
std::unordered_set<std::shared_ptr<AudioNode>> outputNodes_ = {};
|
|
@@ -59,6 +66,7 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {
|
|
|
59
66
|
int numberOfEnabledInputNodes_ = 0;
|
|
60
67
|
bool isInitialized_ = false;
|
|
61
68
|
bool isEnabled_ = true;
|
|
69
|
+
bool requiresTailProcessing_ = false;
|
|
62
70
|
|
|
63
71
|
std::size_t lastRenderedFrame_{SIZE_MAX};
|
|
64
72
|
|
|
@@ -68,12 +76,15 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {
|
|
|
68
76
|
static std::string toString(ChannelCountMode mode);
|
|
69
77
|
static std::string toString(ChannelInterpretation interpretation);
|
|
70
78
|
|
|
71
|
-
virtual std::shared_ptr<AudioBus>
|
|
79
|
+
virtual std::shared_ptr<AudioBus> processInputs(
|
|
80
|
+
const std::shared_ptr<AudioBus> &outputBus,
|
|
81
|
+
int framesToProcess,
|
|
82
|
+
bool checkIsAlreadyProcessed);
|
|
83
|
+
virtual std::shared_ptr<AudioBus> processNode(const std::shared_ptr<AudioBus> &, int) = 0;
|
|
72
84
|
|
|
73
85
|
bool isAlreadyProcessed();
|
|
74
|
-
std::shared_ptr<AudioBus> processInputs(const std::shared_ptr<AudioBus>& outputBus, int framesToProcess, bool checkIsAlreadyProcessed);
|
|
75
86
|
std::shared_ptr<AudioBus> applyChannelCountMode(const std::shared_ptr<AudioBus> &processingBus);
|
|
76
|
-
void mixInputsBuses(const std::shared_ptr<AudioBus
|
|
87
|
+
void mixInputsBuses(const std::shared_ptr<AudioBus> &processingBus);
|
|
77
88
|
|
|
78
89
|
void connectNode(const std::shared_ptr<AudioNode> &node);
|
|
79
90
|
void disconnectNode(const std::shared_ptr<AudioNode> &node);
|
|
@@ -81,7 +92,7 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {
|
|
|
81
92
|
void disconnectParam(const std::shared_ptr<AudioParam> ¶m);
|
|
82
93
|
|
|
83
94
|
void onInputEnabled();
|
|
84
|
-
void onInputDisabled();
|
|
95
|
+
virtual void onInputDisabled();
|
|
85
96
|
void onInputConnected(AudioNode *node);
|
|
86
97
|
void onInputDisconnected(AudioNode *node);
|
|
87
98
|
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
#include <audioapi/dsp/AudioUtils.h>
|
|
4
4
|
#include <audioapi/dsp/VectorMath.h>
|
|
5
5
|
#include <audioapi/utils/AudioArray.h>
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <utility>
|
|
6
8
|
|
|
7
9
|
namespace audioapi {
|
|
8
10
|
|
|
@@ -18,11 +20,7 @@ AudioParam::AudioParam(
|
|
|
18
20
|
maxValue_(maxValue),
|
|
19
21
|
eventsQueue_(),
|
|
20
22
|
eventScheduler_(32),
|
|
21
|
-
audioBus_(
|
|
22
|
-
std::make_shared<AudioBus>(
|
|
23
|
-
RENDER_QUANTUM_SIZE,
|
|
24
|
-
1,
|
|
25
|
-
context->getSampleRate())) {
|
|
23
|
+
audioBus_(std::make_shared<AudioBus>(RENDER_QUANTUM_SIZE, 1, context->getSampleRate())) {
|
|
26
24
|
inputBuses_.reserve(4);
|
|
27
25
|
inputNodes_.reserve(4);
|
|
28
26
|
startTime_ = 0;
|
|
@@ -56,22 +54,19 @@ float AudioParam::getValueAtTime(double time) {
|
|
|
56
54
|
void AudioParam::setValueAtTime(float value, double startTime) {
|
|
57
55
|
auto event = [value, startTime](AudioParam ¶m) {
|
|
58
56
|
// Ignore events scheduled before the end of existing automation
|
|
59
|
-
if (startTime
|
|
57
|
+
if (startTime < param.getQueueEndTime()) {
|
|
60
58
|
return;
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
// Step function: instant change at startTime
|
|
64
|
-
auto calculateValue =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (time < startTime) {
|
|
70
|
-
return startValue;
|
|
71
|
-
}
|
|
62
|
+
auto calculateValue =
|
|
63
|
+
[](double startTime, double /* endTime */, float startValue, float endValue, double time) {
|
|
64
|
+
if (time < startTime) {
|
|
65
|
+
return startValue;
|
|
66
|
+
}
|
|
72
67
|
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
return endValue;
|
|
69
|
+
};
|
|
75
70
|
|
|
76
71
|
param.updateQueue(ParamChangeEvent(
|
|
77
72
|
startTime,
|
|
@@ -87,29 +82,24 @@ void AudioParam::setValueAtTime(float value, double startTime) {
|
|
|
87
82
|
void AudioParam::linearRampToValueAtTime(float value, double endTime) {
|
|
88
83
|
auto event = [value, endTime](AudioParam ¶m) {
|
|
89
84
|
// Ignore events scheduled before the end of existing automation
|
|
90
|
-
if (endTime
|
|
85
|
+
if (endTime < param.getQueueEndTime()) {
|
|
91
86
|
return;
|
|
92
87
|
}
|
|
93
88
|
|
|
94
89
|
// Linear interpolation function
|
|
95
|
-
auto calculateValue =
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (time < startTime) {
|
|
101
|
-
return startValue;
|
|
102
|
-
}
|
|
90
|
+
auto calculateValue =
|
|
91
|
+
[](double startTime, double endTime, float startValue, float endValue, double time) {
|
|
92
|
+
if (time < startTime) {
|
|
93
|
+
return startValue;
|
|
94
|
+
}
|
|
103
95
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
(endTime - startTime));
|
|
109
|
-
}
|
|
96
|
+
if (time < endTime) {
|
|
97
|
+
return static_cast<float>(
|
|
98
|
+
startValue + (endValue - startValue) * (time - startTime) / (endTime - startTime));
|
|
99
|
+
}
|
|
110
100
|
|
|
111
|
-
|
|
112
|
-
|
|
101
|
+
return endValue;
|
|
102
|
+
};
|
|
113
103
|
|
|
114
104
|
param.updateQueue(ParamChangeEvent(
|
|
115
105
|
param.getQueueEndTime(),
|
|
@@ -129,24 +119,20 @@ void AudioParam::exponentialRampToValueAtTime(float value, double endTime) {
|
|
|
129
119
|
}
|
|
130
120
|
|
|
131
121
|
// Exponential curve function using power law
|
|
132
|
-
auto calculateValue =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (time < startTime) {
|
|
138
|
-
return startValue;
|
|
139
|
-
}
|
|
122
|
+
auto calculateValue =
|
|
123
|
+
[](double startTime, double endTime, float startValue, float endValue, double time) {
|
|
124
|
+
if (time < startTime) {
|
|
125
|
+
return startValue;
|
|
126
|
+
}
|
|
140
127
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
128
|
+
if (time < endTime) {
|
|
129
|
+
return static_cast<float>(
|
|
130
|
+
startValue *
|
|
131
|
+
pow(endValue / startValue, (time - startTime) / (endTime - startTime)));
|
|
132
|
+
}
|
|
147
133
|
|
|
148
|
-
|
|
149
|
-
|
|
134
|
+
return endValue;
|
|
135
|
+
};
|
|
150
136
|
|
|
151
137
|
param.updateQueue(ParamChangeEvent(
|
|
152
138
|
param.getQueueEndTime(),
|
|
@@ -159,26 +145,21 @@ void AudioParam::exponentialRampToValueAtTime(float value, double endTime) {
|
|
|
159
145
|
eventScheduler_.scheduleEvent(std::move(event));
|
|
160
146
|
}
|
|
161
147
|
|
|
162
|
-
void AudioParam::setTargetAtTime(
|
|
163
|
-
float target,
|
|
164
|
-
double startTime,
|
|
165
|
-
double timeConstant) {
|
|
148
|
+
void AudioParam::setTargetAtTime(float target, double startTime, double timeConstant) {
|
|
166
149
|
auto event = [target, startTime, timeConstant](AudioParam ¶m) {
|
|
167
150
|
if (startTime <= param.getQueueEndTime()) {
|
|
168
151
|
return;
|
|
169
152
|
}
|
|
170
153
|
// Exponential decay function towards target value
|
|
171
|
-
auto calculateValue =
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
154
|
+
auto calculateValue = [timeConstant, target](
|
|
155
|
+
double startTime, double, float startValue, float, double time) {
|
|
156
|
+
if (time < startTime) {
|
|
157
|
+
return startValue;
|
|
158
|
+
}
|
|
177
159
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
};
|
|
160
|
+
return static_cast<float>(
|
|
161
|
+
target + (startValue - target) * exp(-(time - startTime) / timeConstant));
|
|
162
|
+
};
|
|
182
163
|
param.updateQueue(ParamChangeEvent(
|
|
183
164
|
startTime,
|
|
184
165
|
startTime, // SetTarget events have infinite duration conceptually
|
|
@@ -202,31 +183,25 @@ void AudioParam::setValueCurveAtTime(
|
|
|
202
183
|
return;
|
|
203
184
|
}
|
|
204
185
|
|
|
205
|
-
auto calculateValue =
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if (time < startTime) {
|
|
212
|
-
return startValue;
|
|
213
|
-
}
|
|
186
|
+
auto calculateValue =
|
|
187
|
+
[values, length](
|
|
188
|
+
double startTime, double endTime, float startValue, float endValue, double time) {
|
|
189
|
+
if (time < startTime) {
|
|
190
|
+
return startValue;
|
|
191
|
+
}
|
|
214
192
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
(
|
|
223
|
-
|
|
224
|
-
k);
|
|
225
|
-
return dsp::linearInterpolate(values->data(), k, k + 1, factor);
|
|
226
|
-
}
|
|
193
|
+
if (time < endTime) {
|
|
194
|
+
// Calculate position in the array based on time progress
|
|
195
|
+
auto k = static_cast<int>(std::floor(
|
|
196
|
+
static_cast<double>(length - 1) / (endTime - startTime) * (time - startTime)));
|
|
197
|
+
// Calculate interpolation factor between adjacent array elements
|
|
198
|
+
auto factor = static_cast<float>(
|
|
199
|
+
(time - startTime) * static_cast<double>(length - 1) / (endTime - startTime) - k);
|
|
200
|
+
return dsp::linearInterpolate(values->data(), k, k + 1, factor);
|
|
201
|
+
}
|
|
227
202
|
|
|
228
|
-
|
|
229
|
-
|
|
203
|
+
return endValue;
|
|
204
|
+
};
|
|
230
205
|
|
|
231
206
|
param.updateQueue(ParamChangeEvent(
|
|
232
207
|
startTime,
|
|
@@ -243,9 +218,8 @@ void AudioParam::setValueCurveAtTime(
|
|
|
243
218
|
}
|
|
244
219
|
|
|
245
220
|
void AudioParam::cancelScheduledValues(double cancelTime) {
|
|
246
|
-
eventScheduler_.scheduleEvent(
|
|
247
|
-
|
|
248
|
-
});
|
|
221
|
+
eventScheduler_.scheduleEvent(
|
|
222
|
+
[cancelTime](AudioParam ¶m) { param.eventsQueue_.cancelScheduledValues(cancelTime); });
|
|
249
223
|
}
|
|
250
224
|
|
|
251
225
|
void AudioParam::cancelAndHoldAtTime(double cancelTime) {
|
|
@@ -280,9 +254,7 @@ std::shared_ptr<AudioBus> AudioParam::calculateInputs(
|
|
|
280
254
|
return processingBus;
|
|
281
255
|
}
|
|
282
256
|
|
|
283
|
-
std::shared_ptr<AudioBus> AudioParam::processARateParam(
|
|
284
|
-
int framesToProcess,
|
|
285
|
-
double time) {
|
|
257
|
+
std::shared_ptr<AudioBus> AudioParam::processARateParam(int framesToProcess, double time) {
|
|
286
258
|
processScheduledEvents();
|
|
287
259
|
auto processingBus = calculateInputs(audioBus_, framesToProcess);
|
|
288
260
|
|
|
@@ -313,8 +285,7 @@ void AudioParam::processInputs(
|
|
|
313
285
|
const std::shared_ptr<AudioBus> &outputBus,
|
|
314
286
|
int framesToProcess,
|
|
315
287
|
bool checkIsAlreadyProcessed) {
|
|
316
|
-
for (auto it = inputNodes_.begin(), end = inputNodes_.end(); it != end;
|
|
317
|
-
++it) {
|
|
288
|
+
for (auto it = inputNodes_.begin(), end = inputNodes_.end(); it != end; ++it) {
|
|
318
289
|
auto inputNode = *it;
|
|
319
290
|
assert(inputNode != nullptr);
|
|
320
291
|
|
|
@@ -323,19 +294,16 @@ void AudioParam::processInputs(
|
|
|
323
294
|
}
|
|
324
295
|
|
|
325
296
|
// Process this input node and store its output bus
|
|
326
|
-
auto inputBus = inputNode->processAudio(
|
|
327
|
-
outputBus, framesToProcess, checkIsAlreadyProcessed);
|
|
297
|
+
auto inputBus = inputNode->processAudio(outputBus, framesToProcess, checkIsAlreadyProcessed);
|
|
328
298
|
inputBuses_.emplace_back(inputBus);
|
|
329
299
|
}
|
|
330
300
|
}
|
|
331
301
|
|
|
332
|
-
void AudioParam::mixInputsBuses(
|
|
333
|
-
const std::shared_ptr<AudioBus> &processingBus) {
|
|
302
|
+
void AudioParam::mixInputsBuses(const std::shared_ptr<AudioBus> &processingBus) {
|
|
334
303
|
assert(processingBus != nullptr);
|
|
335
304
|
|
|
336
305
|
// Sum all input buses into the processing bus
|
|
337
|
-
for (auto it = inputBuses_.begin(), end = inputBuses_.end(); it != end;
|
|
338
|
-
++it) {
|
|
306
|
+
for (auto it = inputBuses_.begin(), end = inputBuses_.end(); it != end; ++it) {
|
|
339
307
|
processingBus->sum(it->get(), ChannelInterpretation::SPEAKERS);
|
|
340
308
|
}
|
|
341
309
|
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
+
#include <audioapi/core/AudioNode.h>
|
|
3
4
|
#include <audioapi/core/types/ParamChangeEventType.h>
|
|
5
|
+
#include <audioapi/core/utils/AudioParamEventQueue.h>
|
|
4
6
|
#include <audioapi/core/utils/ParamChangeEvent.h>
|
|
5
7
|
#include <audioapi/utils/AudioBus.h>
|
|
6
|
-
#include <audioapi/core/AudioNode.h>
|
|
7
|
-
#include <audioapi/core/utils/AudioParamEventQueue.h>
|
|
8
8
|
|
|
9
|
+
#include <audioapi/utils/CrossThreadEventScheduler.hpp>
|
|
9
10
|
#include <cstddef>
|
|
10
|
-
#include <utility>
|
|
11
11
|
#include <memory>
|
|
12
|
-
#include <vector>
|
|
13
12
|
#include <unordered_set>
|
|
14
|
-
#include <
|
|
13
|
+
#include <utility>
|
|
14
|
+
#include <vector>
|
|
15
15
|
|
|
16
16
|
namespace audioapi {
|
|
17
17
|
|
|
18
18
|
class AudioParam {
|
|
19
19
|
public:
|
|
20
|
-
explicit AudioParam(
|
|
20
|
+
explicit AudioParam(
|
|
21
|
+
float defaultValue,
|
|
22
|
+
float minValue,
|
|
23
|
+
float maxValue,
|
|
24
|
+
BaseAudioContext *context);
|
|
21
25
|
|
|
22
26
|
/// JS-Thread only methods
|
|
23
27
|
/// These methods are called only from HostObjects invoked on the JS thread.
|
|
@@ -72,15 +76,14 @@ class AudioParam {
|
|
|
72
76
|
// JS-Thread only
|
|
73
77
|
void cancelAndHoldAtTime(double cancelTime);
|
|
74
78
|
|
|
75
|
-
|
|
76
79
|
/// Audio-Thread only methods
|
|
77
80
|
/// These methods are called only from the Audio rendering thread.
|
|
78
81
|
|
|
79
82
|
// Audio-Thread only (indirectly through AudioNode::connectParam by AudioNodeManager)
|
|
80
|
-
void addInputNode(AudioNode*
|
|
83
|
+
void addInputNode(AudioNode *node);
|
|
81
84
|
|
|
82
85
|
// Audio-Thread only (indirectly through AudioNode::disconnectParam by AudioNodeManager)
|
|
83
|
-
void removeInputNode(AudioNode*
|
|
86
|
+
void removeInputNode(AudioNode *node);
|
|
84
87
|
|
|
85
88
|
// Audio-Thread only
|
|
86
89
|
std::shared_ptr<AudioBus> processARateParam(int framesToProcess, double time);
|
|
@@ -141,9 +144,14 @@ class AudioParam {
|
|
|
141
144
|
eventsQueue_.pushBack(std::move(event));
|
|
142
145
|
}
|
|
143
146
|
float getValueAtTime(double time);
|
|
144
|
-
void processInputs(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
+
void processInputs(
|
|
148
|
+
const std::shared_ptr<AudioBus> &outputBus,
|
|
149
|
+
int framesToProcess,
|
|
150
|
+
bool checkIsAlreadyProcessed);
|
|
151
|
+
void mixInputsBuses(const std::shared_ptr<AudioBus> &processingBus);
|
|
152
|
+
std::shared_ptr<AudioBus> calculateInputs(
|
|
153
|
+
const std::shared_ptr<AudioBus> &processingBus,
|
|
154
|
+
int framesToProcess);
|
|
147
155
|
};
|
|
148
156
|
|
|
149
157
|
} // namespace audioapi
|