react-native-audio-api 0.11.0-nightly-141c86f-20251118 → 0.11.0-nightly-4e6f25c-20251119
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/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 +4 -4
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +11 -20
- package/android/src/main/cpp/audioapi/android/core/utils/AudioDecoder.cpp +24 -46
- package/common/cpp/audioapi/AudioAPIModuleInstaller.h +48 -78
- package/common/cpp/audioapi/HostObjects/AudioContextHostObject.cpp +20 -21
- 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 +42 -78
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +1 -1
- package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.cpp +14 -18
- 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 +16 -28
- package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h +1 -2
- package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.cpp +4 -6
- package/common/cpp/audioapi/HostObjects/effects/GainNodeHostObject.cpp +2 -2
- 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 +8 -10
- package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.h +1 -1
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.cpp +13 -27
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.h +11 -12
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.cpp +15 -22
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.h +5 -7
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.cpp +7 -12
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.h +8 -9
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +16 -30
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.h +2 -4
- package/common/cpp/audioapi/HostObjects/sources/AudioScheduledSourceNodeHostObject.cpp +6 -10
- 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 +2 -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 +4 -8
- package/common/cpp/audioapi/core/AudioContext.cpp +4 -4
- package/common/cpp/audioapi/core/AudioContext.h +5 -2
- package/common/cpp/audioapi/core/AudioNode.cpp +13 -19
- package/common/cpp/audioapi/core/AudioNode.h +14 -7
- package/common/cpp/audioapi/core/AudioParam.cpp +66 -98
- package/common/cpp/audioapi/core/AudioParam.h +20 -12
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +22 -34
- package/common/cpp/audioapi/core/BaseAudioContext.h +19 -15
- 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 +17 -36
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +2 -9
- package/common/cpp/audioapi/core/effects/ConvolverNode.cpp +18 -28
- package/common/cpp/audioapi/core/effects/ConvolverNode.h +19 -10
- 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/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 +9 -8
- package/common/cpp/audioapi/core/inputs/AudioRecorder.h +4 -5
- 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 +31 -53
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +35 -33
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +19 -20
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +38 -36
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +25 -40
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +3 -1
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +9 -9
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +3 -3
- 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 +3 -4
- package/common/cpp/audioapi/core/sources/RecorderAdapterNode.h +18 -16
- package/common/cpp/audioapi/core/sources/StreamerNode.cpp +7 -4
- package/common/cpp/audioapi/core/sources/StreamerNode.h +38 -30
- 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/AudioNodeDestructor.cpp +5 -6
- package/common/cpp/audioapi/core/utils/AudioNodeDestructor.h +7 -10
- package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +13 -22
- 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/AudioStretcher.cpp +6 -6
- package/common/cpp/audioapi/core/utils/Constants.h +5 -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 +29 -34
- package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +14 -16
- package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.h +23 -19
- package/common/cpp/audioapi/dsp/AudioUtils.cpp +3 -9
- package/common/cpp/audioapi/dsp/AudioUtils.h +1 -1
- package/common/cpp/audioapi/dsp/Convolver.cpp +13 -25
- package/common/cpp/audioapi/dsp/Convolver.h +26 -24
- package/common/cpp/audioapi/dsp/FFT.cpp +1 -1
- package/common/cpp/audioapi/dsp/FFT.h +5 -13
- package/common/cpp/audioapi/dsp/VectorMath.cpp +9 -43
- 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 +44 -39
- package/common/cpp/audioapi/events/IAudioEventHandlerRegistry.h +15 -7
- 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 +11 -21
- package/common/cpp/audioapi/jsi/JsiPromise.h +55 -46
- package/common/cpp/audioapi/jsi/RuntimeLifecycleMonitor.cpp +7 -10
- package/common/cpp/audioapi/jsi/RuntimeLifecycleMonitor.h +1 -3
- 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 +51 -149
- package/common/cpp/audioapi/utils/AudioBus.h +15 -15
- 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/test/src/AudioParamTest.cpp +3 -2
- package/common/cpp/test/src/AudioScheduledSourceTest.cpp +14 -35
- package/common/cpp/test/src/ConstantSourceTest.cpp +4 -6
- package/common/cpp/test/src/GainTest.cpp +3 -4
- package/common/cpp/test/src/MockAudioEventHandlerRegistry.h +19 -11
- package/common/cpp/test/src/OscillatorTest.cpp +1 -0
- package/common/cpp/test/src/StereoPannerTest.cpp +5 -8
- package/common/cpp/test/src/biquad/BiquadFilterChromium.cpp +10 -27
- package/common/cpp/test/src/biquad/BiquadFilterChromium.h +7 -6
- package/common/cpp/test/src/biquad/BiquadFilterTest.cpp +16 -28
- package/common/cpp/test/src/biquad/BiquadFilterTest.h +13 -6
- package/ios/audioapi/ios/AudioAPIModule.h +4 -6
- package/ios/audioapi/ios/AudioAPIModule.mm +31 -46
- package/ios/audioapi/ios/core/IOSAudioPlayer.mm +24 -33
- package/ios/audioapi/ios/core/IOSAudioRecorder.h +1 -2
- package/ios/audioapi/ios/core/IOSAudioRecorder.mm +4 -6
- package/ios/audioapi/ios/core/NativeAudioPlayer.m +3 -5
- package/ios/audioapi/ios/core/NativeAudioRecorder.h +1 -2
- package/ios/audioapi/ios/core/NativeAudioRecorder.m +21 -33
- package/ios/audioapi/ios/core/utils/AudioDecoder.mm +17 -37
- package/ios/audioapi/ios/system/AudioEngine.h +2 -4
- package/ios/audioapi/ios/system/AudioEngine.mm +7 -19
- package/ios/audioapi/ios/system/AudioSessionManager.h +2 -4
- package/ios/audioapi/ios/system/AudioSessionManager.mm +17 -32
- package/ios/audioapi/ios/system/LockScreenManager.mm +73 -105
- package/ios/audioapi/ios/system/NotificationManager.mm +43 -68
- package/package.json +2 -2
|
@@ -13,8 +13,7 @@ class PeriodicWaveHostObject : public jsi::HostObject {
|
|
|
13
13
|
public:
|
|
14
14
|
std::shared_ptr<PeriodicWave> periodicWave_;
|
|
15
15
|
|
|
16
|
-
explicit PeriodicWaveHostObject(
|
|
17
|
-
const std::shared_ptr<PeriodicWave> &periodicWave)
|
|
16
|
+
explicit PeriodicWaveHostObject(const std::shared_ptr<PeriodicWave> &periodicWave)
|
|
18
17
|
: periodicWave_(periodicWave) {}
|
|
19
18
|
};
|
|
20
19
|
} // namespace audioapi
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/AudioParamHostObject.h>
|
|
4
4
|
#include <audioapi/core/effects/StereoPannerNode.h>
|
|
5
|
+
#include <memory>
|
|
5
6
|
|
|
6
7
|
namespace audioapi {
|
|
7
8
|
|
|
@@ -13,8 +14,7 @@ StereoPannerNodeHostObject::StereoPannerNodeHostObject(
|
|
|
13
14
|
|
|
14
15
|
JSI_PROPERTY_GETTER_IMPL(StereoPannerNodeHostObject, pan) {
|
|
15
16
|
auto stereoPannerNode = std::static_pointer_cast<StereoPannerNode>(node_);
|
|
16
|
-
auto panParam_ =
|
|
17
|
-
std::make_shared<AudioParamHostObject>(stereoPannerNode->getPanParam());
|
|
17
|
+
auto panParam_ = std::make_shared<AudioParamHostObject>(stereoPannerNode->getPanParam());
|
|
18
18
|
return jsi::Object::createFromHostObject(runtime, panParam_);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -13,8 +13,7 @@ class StereoPannerNode;
|
|
|
13
13
|
|
|
14
14
|
class StereoPannerNodeHostObject : public AudioNodeHostObject {
|
|
15
15
|
public:
|
|
16
|
-
explicit StereoPannerNodeHostObject(
|
|
17
|
-
const std::shared_ptr<StereoPannerNode> &node);
|
|
16
|
+
explicit StereoPannerNodeHostObject(const std::shared_ptr<StereoPannerNode> &node);
|
|
18
17
|
|
|
19
18
|
JSI_PROPERTY_GETTER_DECL(pan);
|
|
20
19
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#include <audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.h>
|
|
2
2
|
|
|
3
3
|
#include <audioapi/events/AudioEventHandlerRegistry.h>
|
|
4
|
+
#include <memory>
|
|
4
5
|
|
|
5
6
|
namespace audioapi {
|
|
6
7
|
|
|
@@ -9,27 +10,20 @@ AudioEventHandlerRegistryHostObject::AudioEventHandlerRegistryHostObject(
|
|
|
9
10
|
eventHandlerRegistry_ = eventHandlerRegistry;
|
|
10
11
|
|
|
11
12
|
addFunctions(
|
|
12
|
-
JSI_EXPORT_FUNCTION(
|
|
13
|
-
|
|
14
|
-
JSI_EXPORT_FUNCTION(
|
|
15
|
-
AudioEventHandlerRegistryHostObject, removeAudioEventListener));
|
|
13
|
+
JSI_EXPORT_FUNCTION(AudioEventHandlerRegistryHostObject, addAudioEventListener),
|
|
14
|
+
JSI_EXPORT_FUNCTION(AudioEventHandlerRegistryHostObject, removeAudioEventListener));
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
JSI_HOST_FUNCTION_IMPL(
|
|
19
|
-
AudioEventHandlerRegistryHostObject,
|
|
20
|
-
addAudioEventListener) {
|
|
17
|
+
JSI_HOST_FUNCTION_IMPL(AudioEventHandlerRegistryHostObject, addAudioEventListener) {
|
|
21
18
|
auto eventName = args[0].getString(runtime).utf8(runtime);
|
|
22
|
-
auto callback = std::make_shared<jsi::Function>(
|
|
23
|
-
args[1].getObject(runtime).getFunction(runtime));
|
|
19
|
+
auto callback = std::make_shared<jsi::Function>(args[1].getObject(runtime).getFunction(runtime));
|
|
24
20
|
|
|
25
21
|
auto listenerId = eventHandlerRegistry_->registerHandler(eventName, callback);
|
|
26
22
|
|
|
27
23
|
return jsi::String::createFromUtf8(runtime, std::to_string(listenerId));
|
|
28
24
|
}
|
|
29
25
|
|
|
30
|
-
JSI_HOST_FUNCTION_IMPL(
|
|
31
|
-
AudioEventHandlerRegistryHostObject,
|
|
32
|
-
removeAudioEventListener) {
|
|
26
|
+
JSI_HOST_FUNCTION_IMPL(AudioEventHandlerRegistryHostObject, removeAudioEventListener) {
|
|
33
27
|
auto eventName = args[0].getString(runtime).utf8(runtime);
|
|
34
28
|
uint64_t listenerId = std::stoull(args[1].getString(runtime).utf8(runtime));
|
|
35
29
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
#include <audioapi/jsi/JsiHostObject.h>
|
|
4
4
|
|
|
5
|
-
#include <jsi/jsi.h>
|
|
6
5
|
#include <ReactCommon/CallInvoker.h>
|
|
6
|
+
#include <jsi/jsi.h>
|
|
7
7
|
#include <memory>
|
|
8
|
+
#include <string>
|
|
8
9
|
#include <unordered_map>
|
|
9
10
|
#include <vector>
|
|
10
|
-
#include <string>
|
|
11
11
|
|
|
12
12
|
namespace audioapi {
|
|
13
13
|
using namespace facebook;
|
|
@@ -16,13 +16,13 @@ class AudioEventHandlerRegistry;
|
|
|
16
16
|
|
|
17
17
|
class AudioEventHandlerRegistryHostObject : public JsiHostObject {
|
|
18
18
|
public:
|
|
19
|
-
|
|
19
|
+
explicit AudioEventHandlerRegistryHostObject(
|
|
20
|
+
const std::shared_ptr<AudioEventHandlerRegistry> &eventHandlerRegistry);
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
JSI_HOST_FUNCTION_DECL(addAudioEventListener);
|
|
23
|
+
JSI_HOST_FUNCTION_DECL(removeAudioEventListener);
|
|
23
24
|
|
|
24
25
|
private:
|
|
25
|
-
|
|
26
|
+
std::shared_ptr<AudioEventHandlerRegistry> eventHandlerRegistry_;
|
|
26
27
|
};
|
|
27
28
|
} // namespace audioapi
|
|
28
|
-
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#else
|
|
11
11
|
#include <audioapi/ios/core/IOSAudioRecorder.h>
|
|
12
12
|
#endif
|
|
13
|
+
#include <memory>
|
|
13
14
|
|
|
14
15
|
namespace audioapi {
|
|
15
16
|
|
|
@@ -18,11 +19,11 @@ AudioRecorderHostObject::AudioRecorderHostObject(
|
|
|
18
19
|
float sampleRate,
|
|
19
20
|
int bufferLength) {
|
|
20
21
|
#ifdef ANDROID
|
|
21
|
-
audioRecorder_ =
|
|
22
|
-
sampleRate, bufferLength, audioEventHandlerRegistry);
|
|
22
|
+
audioRecorder_ =
|
|
23
|
+
std::make_shared<AndroidAudioRecorder>(sampleRate, bufferLength, audioEventHandlerRegistry);
|
|
23
24
|
#else
|
|
24
|
-
audioRecorder_ =
|
|
25
|
-
sampleRate, bufferLength, audioEventHandlerRegistry);
|
|
25
|
+
audioRecorder_ =
|
|
26
|
+
std::make_shared<IOSAudioRecorder>(sampleRate, bufferLength, audioEventHandlerRegistry);
|
|
26
27
|
#endif
|
|
27
28
|
|
|
28
29
|
addSetters(JSI_EXPORT_PROPERTY_SETTER(AudioRecorderHostObject, onAudioReady));
|
|
@@ -35,17 +36,14 @@ AudioRecorderHostObject::AudioRecorderHostObject(
|
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
JSI_PROPERTY_SETTER_IMPL(AudioRecorderHostObject, onAudioReady) {
|
|
38
|
-
audioRecorder_->setOnAudioReadyCallbackId(
|
|
39
|
-
std::stoull(value.getString(runtime).utf8(runtime)));
|
|
39
|
+
audioRecorder_->setOnAudioReadyCallbackId(std::stoull(value.getString(runtime).utf8(runtime)));
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
JSI_HOST_FUNCTION_IMPL(AudioRecorderHostObject, connect) {
|
|
43
43
|
auto adapterNodeHostObject =
|
|
44
|
-
args[0].getObject(runtime).getHostObject<RecorderAdapterNodeHostObject>(
|
|
45
|
-
runtime);
|
|
44
|
+
args[0].getObject(runtime).getHostObject<RecorderAdapterNodeHostObject>(runtime);
|
|
46
45
|
audioRecorder_->connect(
|
|
47
|
-
std::static_pointer_cast<RecorderAdapterNode>(
|
|
48
|
-
adapterNodeHostObject->node_));
|
|
46
|
+
std::static_pointer_cast<RecorderAdapterNode>(adapterNodeHostObject->node_));
|
|
49
47
|
return jsi::Value::undefined();
|
|
50
48
|
}
|
|
51
49
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/AudioParamHostObject.h>
|
|
4
4
|
#include <audioapi/core/sources/AudioBufferBaseSourceNode.h>
|
|
5
|
+
#include <memory>
|
|
5
6
|
|
|
6
7
|
namespace audioapi {
|
|
7
8
|
|
|
@@ -10,21 +11,16 @@ AudioBufferBaseSourceNodeHostObject::AudioBufferBaseSourceNodeHostObject(
|
|
|
10
11
|
: AudioScheduledSourceNodeHostObject(node) {
|
|
11
12
|
addGetters(
|
|
12
13
|
JSI_EXPORT_PROPERTY_GETTER(AudioBufferBaseSourceNodeHostObject, detune),
|
|
13
|
-
JSI_EXPORT_PROPERTY_GETTER(
|
|
14
|
-
|
|
15
|
-
JSI_EXPORT_PROPERTY_GETTER(
|
|
16
|
-
AudioBufferBaseSourceNodeHostObject, onPositionChangedInterval));
|
|
14
|
+
JSI_EXPORT_PROPERTY_GETTER(AudioBufferBaseSourceNodeHostObject, playbackRate),
|
|
15
|
+
JSI_EXPORT_PROPERTY_GETTER(AudioBufferBaseSourceNodeHostObject, onPositionChangedInterval));
|
|
17
16
|
|
|
18
17
|
addSetters(
|
|
19
|
-
JSI_EXPORT_PROPERTY_SETTER(
|
|
20
|
-
|
|
21
|
-
JSI_EXPORT_PROPERTY_SETTER(
|
|
22
|
-
AudioBufferBaseSourceNodeHostObject, onPositionChangedInterval));
|
|
18
|
+
JSI_EXPORT_PROPERTY_SETTER(AudioBufferBaseSourceNodeHostObject, onPositionChanged),
|
|
19
|
+
JSI_EXPORT_PROPERTY_SETTER(AudioBufferBaseSourceNodeHostObject, onPositionChangedInterval));
|
|
23
20
|
|
|
24
21
|
addFunctions(
|
|
25
22
|
JSI_EXPORT_FUNCTION(AudioBufferBaseSourceNodeHostObject, getInputLatency),
|
|
26
|
-
JSI_EXPORT_FUNCTION(
|
|
27
|
-
AudioBufferBaseSourceNodeHostObject, getOutputLatency));
|
|
23
|
+
JSI_EXPORT_FUNCTION(AudioBufferBaseSourceNodeHostObject, getOutputLatency));
|
|
28
24
|
}
|
|
29
25
|
|
|
30
26
|
AudioBufferBaseSourceNodeHostObject::~AudioBufferBaseSourceNodeHostObject() {
|
|
@@ -46,45 +42,35 @@ JSI_PROPERTY_GETTER_IMPL(AudioBufferBaseSourceNodeHostObject, detune) {
|
|
|
46
42
|
JSI_PROPERTY_GETTER_IMPL(AudioBufferBaseSourceNodeHostObject, playbackRate) {
|
|
47
43
|
auto sourceNode = std::static_pointer_cast<AudioBufferBaseSourceNode>(node_);
|
|
48
44
|
auto playbackRate = sourceNode->getPlaybackRateParam();
|
|
49
|
-
auto playbackRateHostObject =
|
|
50
|
-
std::make_shared<AudioParamHostObject>(playbackRate);
|
|
45
|
+
auto playbackRateHostObject = std::make_shared<AudioParamHostObject>(playbackRate);
|
|
51
46
|
return jsi::Object::createFromHostObject(runtime, playbackRateHostObject);
|
|
52
47
|
}
|
|
53
48
|
|
|
54
|
-
JSI_PROPERTY_GETTER_IMPL(
|
|
55
|
-
AudioBufferBaseSourceNodeHostObject,
|
|
56
|
-
onPositionChangedInterval) {
|
|
49
|
+
JSI_PROPERTY_GETTER_IMPL(AudioBufferBaseSourceNodeHostObject, onPositionChangedInterval) {
|
|
57
50
|
auto sourceNode = std::static_pointer_cast<AudioBufferBaseSourceNode>(node_);
|
|
58
51
|
return {sourceNode->getOnPositionChangedInterval()};
|
|
59
52
|
}
|
|
60
53
|
|
|
61
|
-
JSI_PROPERTY_SETTER_IMPL(
|
|
62
|
-
AudioBufferBaseSourceNodeHostObject,
|
|
63
|
-
onPositionChanged) {
|
|
54
|
+
JSI_PROPERTY_SETTER_IMPL(AudioBufferBaseSourceNodeHostObject, onPositionChanged) {
|
|
64
55
|
auto sourceNode = std::static_pointer_cast<AudioBufferBaseSourceNode>(node_);
|
|
65
56
|
|
|
66
|
-
sourceNode->setOnPositionChangedCallbackId(
|
|
67
|
-
std::stoull(value.getString(runtime).utf8(runtime)));
|
|
57
|
+
sourceNode->setOnPositionChangedCallbackId(std::stoull(value.getString(runtime).utf8(runtime)));
|
|
68
58
|
}
|
|
69
59
|
|
|
70
|
-
JSI_PROPERTY_SETTER_IMPL(
|
|
71
|
-
AudioBufferBaseSourceNodeHostObject,
|
|
72
|
-
onPositionChangedInterval) {
|
|
60
|
+
JSI_PROPERTY_SETTER_IMPL(AudioBufferBaseSourceNodeHostObject, onPositionChangedInterval) {
|
|
73
61
|
auto sourceNode = std::static_pointer_cast<AudioBufferBaseSourceNode>(node_);
|
|
74
62
|
|
|
75
63
|
sourceNode->setOnPositionChangedInterval(static_cast<int>(value.getNumber()));
|
|
76
64
|
}
|
|
77
65
|
|
|
78
66
|
JSI_HOST_FUNCTION_IMPL(AudioBufferBaseSourceNodeHostObject, getInputLatency) {
|
|
79
|
-
auto audioBufferBaseSourceNode =
|
|
80
|
-
std::static_pointer_cast<AudioBufferBaseSourceNode>(node_);
|
|
67
|
+
auto audioBufferBaseSourceNode = std::static_pointer_cast<AudioBufferBaseSourceNode>(node_);
|
|
81
68
|
|
|
82
69
|
return audioBufferBaseSourceNode->getInputLatency();
|
|
83
70
|
}
|
|
84
71
|
|
|
85
72
|
JSI_HOST_FUNCTION_IMPL(AudioBufferBaseSourceNodeHostObject, getOutputLatency) {
|
|
86
|
-
auto audioBufferBaseSourceNode =
|
|
87
|
-
std::static_pointer_cast<AudioBufferBaseSourceNode>(node_);
|
|
73
|
+
auto audioBufferBaseSourceNode = std::static_pointer_cast<AudioBufferBaseSourceNode>(node_);
|
|
88
74
|
|
|
89
75
|
return audioBufferBaseSourceNode->getOutputLatency();
|
|
90
76
|
}
|
|
@@ -10,23 +10,22 @@ using namespace facebook;
|
|
|
10
10
|
|
|
11
11
|
class AudioBufferBaseSourceNode;
|
|
12
12
|
|
|
13
|
-
class AudioBufferBaseSourceNodeHostObject
|
|
14
|
-
: public AudioScheduledSourceNodeHostObject {
|
|
13
|
+
class AudioBufferBaseSourceNodeHostObject : public AudioScheduledSourceNodeHostObject {
|
|
15
14
|
public:
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
explicit AudioBufferBaseSourceNodeHostObject(
|
|
16
|
+
const std::shared_ptr<AudioBufferBaseSourceNode> &node);
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
~AudioBufferBaseSourceNodeHostObject() override;
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
JSI_PROPERTY_GETTER_DECL(detune);
|
|
21
|
+
JSI_PROPERTY_GETTER_DECL(playbackRate);
|
|
22
|
+
JSI_PROPERTY_GETTER_DECL(onPositionChangedInterval);
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
JSI_PROPERTY_SETTER_DECL(onPositionChanged);
|
|
25
|
+
JSI_PROPERTY_SETTER_DECL(onPositionChangedInterval);
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
JSI_HOST_FUNCTION_DECL(getInputLatency);
|
|
28
|
+
JSI_HOST_FUNCTION_DECL(getOutputLatency);
|
|
30
29
|
};
|
|
31
30
|
|
|
32
31
|
} // namespace audioapi
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
#include <audioapi/jsi/AudioArrayBuffer.h>
|
|
4
4
|
#include <audioapi/utils/AudioBus.h>
|
|
5
5
|
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <utility>
|
|
8
|
+
|
|
6
9
|
namespace audioapi {
|
|
7
10
|
|
|
8
|
-
AudioBufferHostObject::AudioBufferHostObject(
|
|
9
|
-
const std::shared_ptr<AudioBuffer> &audioBuffer)
|
|
11
|
+
AudioBufferHostObject::AudioBufferHostObject(const std::shared_ptr<AudioBuffer> &audioBuffer)
|
|
10
12
|
: audioBuffer_(audioBuffer) {
|
|
11
13
|
addGetters(
|
|
12
14
|
JSI_EXPORT_PROPERTY_GETTER(AudioBufferHostObject, sampleRate),
|
|
@@ -20,10 +22,8 @@ AudioBufferHostObject::AudioBufferHostObject(
|
|
|
20
22
|
JSI_EXPORT_FUNCTION(AudioBufferHostObject, copyToChannel));
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
AudioBufferHostObject::AudioBufferHostObject(
|
|
24
|
-
|
|
25
|
-
: JsiHostObject(std::move(other)),
|
|
26
|
-
audioBuffer_(std::move(other.audioBuffer_)) {}
|
|
25
|
+
AudioBufferHostObject::AudioBufferHostObject(AudioBufferHostObject &&other) noexcept
|
|
26
|
+
: JsiHostObject(std::move(other)), audioBuffer_(std::move(other.audioBuffer_)) {}
|
|
27
27
|
|
|
28
28
|
JSI_PROPERTY_GETTER_IMPL(AudioBufferHostObject, sampleRate) {
|
|
29
29
|
return {audioBuffer_->getSampleRate()};
|
|
@@ -43,14 +43,12 @@ JSI_PROPERTY_GETTER_IMPL(AudioBufferHostObject, numberOfChannels) {
|
|
|
43
43
|
|
|
44
44
|
JSI_HOST_FUNCTION_IMPL(AudioBufferHostObject, getChannelData) {
|
|
45
45
|
auto channel = static_cast<int>(args[0].getNumber());
|
|
46
|
-
auto audioArrayBuffer =
|
|
47
|
-
audioBuffer_->bus_->getSharedChannel(channel));
|
|
46
|
+
auto audioArrayBuffer =
|
|
47
|
+
std::make_shared<AudioArrayBuffer>(audioBuffer_->bus_->getSharedChannel(channel));
|
|
48
48
|
auto arrayBuffer = jsi::ArrayBuffer(runtime, audioArrayBuffer);
|
|
49
49
|
|
|
50
|
-
auto float32ArrayCtor =
|
|
51
|
-
|
|
52
|
-
auto float32Array = float32ArrayCtor.callAsConstructor(runtime, arrayBuffer)
|
|
53
|
-
.getObject(runtime);
|
|
50
|
+
auto float32ArrayCtor = runtime.global().getPropertyAsFunction(runtime, "Float32Array");
|
|
51
|
+
auto float32Array = float32ArrayCtor.callAsConstructor(runtime, arrayBuffer).getObject(runtime);
|
|
54
52
|
|
|
55
53
|
float32Array.setExternalMemoryPressure(runtime, audioArrayBuffer->size());
|
|
56
54
|
|
|
@@ -58,26 +56,21 @@ JSI_HOST_FUNCTION_IMPL(AudioBufferHostObject, getChannelData) {
|
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
JSI_HOST_FUNCTION_IMPL(AudioBufferHostObject, copyFromChannel) {
|
|
61
|
-
auto arrayBuffer =
|
|
62
|
-
|
|
63
|
-
.getPropertyAsObject(runtime, "buffer")
|
|
64
|
-
.getArrayBuffer(runtime);
|
|
59
|
+
auto arrayBuffer =
|
|
60
|
+
args[0].getObject(runtime).getPropertyAsObject(runtime, "buffer").getArrayBuffer(runtime);
|
|
65
61
|
auto destination = reinterpret_cast<float *>(arrayBuffer.data(runtime));
|
|
66
62
|
auto length = static_cast<int>(arrayBuffer.size(runtime));
|
|
67
63
|
auto channelNumber = static_cast<int>(args[1].getNumber());
|
|
68
64
|
auto startInChannel = static_cast<size_t>(args[2].getNumber());
|
|
69
65
|
|
|
70
|
-
audioBuffer_->copyFromChannel(
|
|
71
|
-
destination, length, channelNumber, startInChannel);
|
|
66
|
+
audioBuffer_->copyFromChannel(destination, length, channelNumber, startInChannel);
|
|
72
67
|
|
|
73
68
|
return jsi::Value::undefined();
|
|
74
69
|
}
|
|
75
70
|
|
|
76
71
|
JSI_HOST_FUNCTION_IMPL(AudioBufferHostObject, copyToChannel) {
|
|
77
|
-
auto arrayBuffer =
|
|
78
|
-
|
|
79
|
-
.getPropertyAsObject(runtime, "buffer")
|
|
80
|
-
.getArrayBuffer(runtime);
|
|
72
|
+
auto arrayBuffer =
|
|
73
|
+
args[0].getObject(runtime).getPropertyAsObject(runtime, "buffer").getArrayBuffer(runtime);
|
|
81
74
|
auto source = reinterpret_cast<float *>(arrayBuffer.data(runtime));
|
|
82
75
|
auto length = static_cast<int>(arrayBuffer.size(runtime));
|
|
83
76
|
auto channelNumber = static_cast<int>(args[1].getNumber());
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include <audioapi/jsi/JsiHostObject.h>
|
|
4
3
|
#include <audioapi/core/sources/AudioBuffer.h>
|
|
4
|
+
#include <audioapi/jsi/JsiHostObject.h>
|
|
5
5
|
|
|
6
6
|
#include <jsi/jsi.h>
|
|
7
7
|
#include <cstddef>
|
|
@@ -16,22 +16,20 @@ class AudioBufferHostObject : public JsiHostObject {
|
|
|
16
16
|
public:
|
|
17
17
|
std::shared_ptr<AudioBuffer> audioBuffer_;
|
|
18
18
|
|
|
19
|
-
explicit AudioBufferHostObject(
|
|
20
|
-
const std::shared_ptr<AudioBuffer> &audioBuffer);
|
|
19
|
+
explicit AudioBufferHostObject(const std::shared_ptr<AudioBuffer> &audioBuffer);
|
|
21
20
|
AudioBufferHostObject(const AudioBufferHostObject &) = delete;
|
|
22
21
|
AudioBufferHostObject &operator=(const AudioBufferHostObject &) = delete;
|
|
23
22
|
AudioBufferHostObject(AudioBufferHostObject &&other) noexcept;
|
|
24
23
|
AudioBufferHostObject &operator=(AudioBufferHostObject &&other) noexcept {
|
|
25
24
|
if (this != &other) {
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
JsiHostObject::operator=(std::move(other));
|
|
26
|
+
audioBuffer_ = std::move(other.audioBuffer_);
|
|
28
27
|
}
|
|
29
28
|
return *this;
|
|
30
29
|
}
|
|
31
30
|
|
|
32
31
|
[[nodiscard]] inline size_t getSizeInBytes() const {
|
|
33
|
-
return audioBuffer_->getLength() * audioBuffer_->getNumberOfChannels() *
|
|
34
|
-
sizeof(float);
|
|
32
|
+
return audioBuffer_->getLength() * audioBuffer_->getNumberOfChannels() * sizeof(float);
|
|
35
33
|
}
|
|
36
34
|
|
|
37
35
|
JSI_PROPERTY_GETTER_DECL(sampleRate);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/sources/AudioBufferHostObject.h>
|
|
4
4
|
#include <audioapi/core/sources/AudioBufferQueueSourceNode.h>
|
|
5
|
+
#include <memory>
|
|
5
6
|
|
|
6
7
|
namespace audioapi {
|
|
7
8
|
|
|
@@ -22,8 +23,7 @@ JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, start) {
|
|
|
22
23
|
auto when = args[0].getNumber();
|
|
23
24
|
auto offset = args[1].getNumber();
|
|
24
25
|
|
|
25
|
-
auto audioBufferQueueSourceNode =
|
|
26
|
-
std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
26
|
+
auto audioBufferQueueSourceNode = std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
27
27
|
|
|
28
28
|
audioBufferQueueSourceNode->start(when, offset);
|
|
29
29
|
|
|
@@ -31,8 +31,7 @@ JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, start) {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, pause) {
|
|
34
|
-
auto audioBufferQueueSourceNode =
|
|
35
|
-
std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
34
|
+
auto audioBufferQueueSourceNode = std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
36
35
|
|
|
37
36
|
audioBufferQueueSourceNode->pause();
|
|
38
37
|
|
|
@@ -40,21 +39,18 @@ JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, pause) {
|
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, enqueueBuffer) {
|
|
43
|
-
auto audioBufferQueueSourceNode =
|
|
44
|
-
std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
42
|
+
auto audioBufferQueueSourceNode = std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
45
43
|
|
|
46
44
|
auto audioBufferHostObject =
|
|
47
45
|
args[0].getObject(runtime).asHostObject<AudioBufferHostObject>(runtime);
|
|
48
46
|
|
|
49
|
-
auto bufferId = audioBufferQueueSourceNode->enqueueBuffer(
|
|
50
|
-
audioBufferHostObject->audioBuffer_);
|
|
47
|
+
auto bufferId = audioBufferQueueSourceNode->enqueueBuffer(audioBufferHostObject->audioBuffer_);
|
|
51
48
|
|
|
52
49
|
return jsi::String::createFromUtf8(runtime, bufferId);
|
|
53
50
|
}
|
|
54
51
|
|
|
55
52
|
JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, dequeueBuffer) {
|
|
56
|
-
auto audioBufferQueueSourceNode =
|
|
57
|
-
std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
53
|
+
auto audioBufferQueueSourceNode = std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
58
54
|
|
|
59
55
|
auto bufferId = static_cast<size_t>(args[0].getNumber());
|
|
60
56
|
|
|
@@ -64,8 +60,7 @@ JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, dequeueBuffer) {
|
|
|
64
60
|
}
|
|
65
61
|
|
|
66
62
|
JSI_HOST_FUNCTION_IMPL(AudioBufferQueueSourceNodeHostObject, clearBuffers) {
|
|
67
|
-
auto audioBufferQueueSourceNode =
|
|
68
|
-
std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
63
|
+
auto audioBufferQueueSourceNode = std::static_pointer_cast<AudioBufferQueueSourceNode>(node_);
|
|
69
64
|
|
|
70
65
|
audioBufferQueueSourceNode->clearBuffers();
|
|
71
66
|
|
|
@@ -10,17 +10,16 @@ using namespace facebook;
|
|
|
10
10
|
|
|
11
11
|
class AudioBufferQueueSourceNode;
|
|
12
12
|
|
|
13
|
-
class AudioBufferQueueSourceNodeHostObject
|
|
14
|
-
: public AudioBufferBaseSourceNodeHostObject {
|
|
13
|
+
class AudioBufferQueueSourceNodeHostObject : public AudioBufferBaseSourceNodeHostObject {
|
|
15
14
|
public:
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
explicit AudioBufferQueueSourceNodeHostObject(
|
|
16
|
+
const std::shared_ptr<AudioBufferQueueSourceNode> &node);
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
JSI_HOST_FUNCTION_DECL(start);
|
|
19
|
+
JSI_HOST_FUNCTION_DECL(pause);
|
|
20
|
+
JSI_HOST_FUNCTION_DECL(enqueueBuffer);
|
|
21
|
+
JSI_HOST_FUNCTION_DECL(dequeueBuffer);
|
|
22
|
+
JSI_HOST_FUNCTION_DECL(clearBuffers);
|
|
24
23
|
};
|
|
25
24
|
|
|
26
25
|
} // namespace audioapi
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#include <audioapi/HostObjects/sources/AudioBufferHostObject.h>
|
|
4
4
|
#include <audioapi/core/sources/AudioBufferSourceNode.h>
|
|
5
|
+
#include <memory>
|
|
5
6
|
|
|
6
7
|
namespace audioapi {
|
|
7
8
|
|
|
@@ -31,8 +32,7 @@ AudioBufferSourceNodeHostObject::AudioBufferSourceNodeHostObject(
|
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
AudioBufferSourceNodeHostObject::~AudioBufferSourceNodeHostObject() {
|
|
34
|
-
auto audioBufferSourceNode =
|
|
35
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
35
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
36
36
|
|
|
37
37
|
// When JSI object is garbage collected (together with the eventual callback),
|
|
38
38
|
// underlying source node might still be active and try to call the
|
|
@@ -41,22 +41,19 @@ AudioBufferSourceNodeHostObject::~AudioBufferSourceNodeHostObject() {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
JSI_PROPERTY_GETTER_IMPL(AudioBufferSourceNodeHostObject, loop) {
|
|
44
|
-
auto audioBufferSourceNode =
|
|
45
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
44
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
46
45
|
auto loop = audioBufferSourceNode->getLoop();
|
|
47
46
|
return {loop};
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
JSI_PROPERTY_GETTER_IMPL(AudioBufferSourceNodeHostObject, loopSkip) {
|
|
51
|
-
auto audioBufferSourceNode =
|
|
52
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
50
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
53
51
|
auto loopSkip = audioBufferSourceNode->getLoopSkip();
|
|
54
52
|
return {loopSkip};
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
JSI_PROPERTY_GETTER_IMPL(AudioBufferSourceNodeHostObject, buffer) {
|
|
58
|
-
auto audioBufferSourceNode =
|
|
59
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
56
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
60
57
|
auto buffer = audioBufferSourceNode->getBuffer();
|
|
61
58
|
|
|
62
59
|
if (!buffer) {
|
|
@@ -65,52 +62,44 @@ JSI_PROPERTY_GETTER_IMPL(AudioBufferSourceNodeHostObject, buffer) {
|
|
|
65
62
|
|
|
66
63
|
auto bufferHostObject = std::make_shared<AudioBufferHostObject>(buffer);
|
|
67
64
|
auto jsiObject = jsi::Object::createFromHostObject(runtime, bufferHostObject);
|
|
68
|
-
jsiObject.setExternalMemoryPressure(
|
|
69
|
-
runtime, bufferHostObject->getSizeInBytes() + 16);
|
|
65
|
+
jsiObject.setExternalMemoryPressure(runtime, bufferHostObject->getSizeInBytes() + 16);
|
|
70
66
|
return jsiObject;
|
|
71
67
|
}
|
|
72
68
|
|
|
73
69
|
JSI_PROPERTY_GETTER_IMPL(AudioBufferSourceNodeHostObject, loopStart) {
|
|
74
|
-
auto audioBufferSourceNode =
|
|
75
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
70
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
76
71
|
auto loopStart = audioBufferSourceNode->getLoopStart();
|
|
77
72
|
return {loopStart};
|
|
78
73
|
}
|
|
79
74
|
|
|
80
75
|
JSI_PROPERTY_GETTER_IMPL(AudioBufferSourceNodeHostObject, loopEnd) {
|
|
81
|
-
auto audioBufferSourceNode =
|
|
82
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
76
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
83
77
|
auto loopEnd = audioBufferSourceNode->getLoopEnd();
|
|
84
78
|
return {loopEnd};
|
|
85
79
|
}
|
|
86
80
|
|
|
87
81
|
JSI_PROPERTY_SETTER_IMPL(AudioBufferSourceNodeHostObject, loop) {
|
|
88
|
-
auto audioBufferSourceNode =
|
|
89
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
82
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
90
83
|
audioBufferSourceNode->setLoop(value.getBool());
|
|
91
84
|
}
|
|
92
85
|
|
|
93
86
|
JSI_PROPERTY_SETTER_IMPL(AudioBufferSourceNodeHostObject, loopSkip) {
|
|
94
|
-
auto audioBufferSourceNode =
|
|
95
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
87
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
96
88
|
audioBufferSourceNode->setLoopSkip(value.getBool());
|
|
97
89
|
}
|
|
98
90
|
|
|
99
91
|
JSI_PROPERTY_SETTER_IMPL(AudioBufferSourceNodeHostObject, loopStart) {
|
|
100
|
-
auto audioBufferSourceNode =
|
|
101
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
92
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
102
93
|
audioBufferSourceNode->setLoopStart(value.getNumber());
|
|
103
94
|
}
|
|
104
95
|
|
|
105
96
|
JSI_PROPERTY_SETTER_IMPL(AudioBufferSourceNodeHostObject, loopEnd) {
|
|
106
|
-
auto audioBufferSourceNode =
|
|
107
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
97
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
108
98
|
audioBufferSourceNode->setLoopEnd(value.getNumber());
|
|
109
99
|
}
|
|
110
100
|
|
|
111
101
|
JSI_PROPERTY_SETTER_IMPL(AudioBufferSourceNodeHostObject, onLoopEnded) {
|
|
112
|
-
auto audioBufferSourceNode =
|
|
113
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
102
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
114
103
|
|
|
115
104
|
audioBufferSourceNode->setOnLoopEndedCallbackId(
|
|
116
105
|
std::stoull(value.getString(runtime).utf8(runtime)));
|
|
@@ -120,8 +109,7 @@ JSI_HOST_FUNCTION_IMPL(AudioBufferSourceNodeHostObject, start) {
|
|
|
120
109
|
auto when = args[0].getNumber();
|
|
121
110
|
auto offset = args[1].getNumber();
|
|
122
111
|
|
|
123
|
-
auto audioBufferSourceNode =
|
|
124
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
112
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
125
113
|
|
|
126
114
|
if (args[2].isUndefined()) {
|
|
127
115
|
audioBufferSourceNode->start(when, offset);
|
|
@@ -136,16 +124,14 @@ JSI_HOST_FUNCTION_IMPL(AudioBufferSourceNodeHostObject, start) {
|
|
|
136
124
|
}
|
|
137
125
|
|
|
138
126
|
JSI_HOST_FUNCTION_IMPL(AudioBufferSourceNodeHostObject, setBuffer) {
|
|
139
|
-
auto audioBufferSourceNode =
|
|
140
|
-
std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
127
|
+
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);
|
|
141
128
|
|
|
142
129
|
if (args[0].isNull()) {
|
|
143
130
|
audioBufferSourceNode->setBuffer(std::shared_ptr<AudioBuffer>(nullptr));
|
|
144
131
|
return jsi::Value::undefined();
|
|
145
132
|
}
|
|
146
133
|
|
|
147
|
-
auto bufferHostObject =
|
|
148
|
-
args[0].getObject(runtime).asHostObject<AudioBufferHostObject>(runtime);
|
|
134
|
+
auto bufferHostObject = args[0].getObject(runtime).asHostObject<AudioBufferHostObject>(runtime);
|
|
149
135
|
thisValue.asObject(runtime).setExternalMemoryPressure(
|
|
150
136
|
runtime, bufferHostObject->getSizeInBytes() + 16);
|
|
151
137
|
audioBufferSourceNode->setBuffer(bufferHostObject->audioBuffer_);
|
|
@@ -10,11 +10,9 @@ using namespace facebook;
|
|
|
10
10
|
|
|
11
11
|
class AudioBufferSourceNode;
|
|
12
12
|
|
|
13
|
-
class AudioBufferSourceNodeHostObject
|
|
14
|
-
: public AudioBufferBaseSourceNodeHostObject {
|
|
13
|
+
class AudioBufferSourceNodeHostObject : public AudioBufferBaseSourceNodeHostObject {
|
|
15
14
|
public:
|
|
16
|
-
explicit AudioBufferSourceNodeHostObject(
|
|
17
|
-
const std::shared_ptr<AudioBufferSourceNode> &node);
|
|
15
|
+
explicit AudioBufferSourceNodeHostObject(const std::shared_ptr<AudioBufferSourceNode> &node);
|
|
18
16
|
|
|
19
17
|
~AudioBufferSourceNodeHostObject() override;
|
|
20
18
|
|