react-native-audio-api 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +58 -1
  2. package/RNAudioAPI.podspec +41 -0
  3. package/android/CMakeLists.txt +63 -0
  4. package/android/build.gradle +194 -0
  5. package/android/gradle.properties +5 -0
  6. package/android/src/main/AndroidManifest.xml +3 -0
  7. package/android/src/main/AndroidManifestNew.xml +2 -0
  8. package/android/src/main/cpp/AudioAPIInstaller/AudioAPIInstaller.cpp +22 -0
  9. package/android/src/main/cpp/AudioAPIInstaller/AudioAPIInstaller.h +48 -0
  10. package/android/src/main/cpp/AudioPlayer/AudioPlayer.cpp +45 -0
  11. package/android/src/main/cpp/AudioPlayer/AudioPlayer.h +30 -0
  12. package/android/src/main/cpp/OnLoad.cpp +9 -0
  13. package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +14 -0
  14. package/android/src/main/java/com/swmansion/audioapi/module/AudioAPIInstaller.kt +21 -0
  15. package/android/src/main/java/com/swmansion/audioapi/nativemodules/AudioAPIModule.kt +25 -0
  16. package/common/cpp/AudioAPIInstaller/AudioAPIInstallerHostObject.cpp +52 -0
  17. package/common/cpp/AudioAPIInstaller/AudioAPIInstallerHostObject.h +45 -0
  18. package/common/cpp/AudioAPIInstaller/AudioAPIInstallerWrapper.h +38 -0
  19. package/common/cpp/AudioAPIInstaller/android/AudioAPIInstallerWrapper.cpp +16 -0
  20. package/common/cpp/AudioAPIInstaller/ios/AudioAPIInstallerWrapper.cpp +12 -0
  21. package/common/cpp/HostObjects/AudioBufferHostObject.cpp +143 -0
  22. package/common/cpp/HostObjects/AudioBufferHostObject.h +33 -0
  23. package/common/cpp/HostObjects/AudioBufferSourceNodeHostObject.cpp +67 -0
  24. package/common/cpp/HostObjects/AudioBufferSourceNodeHostObject.h +37 -0
  25. package/common/cpp/HostObjects/AudioContextHostObject.cpp +191 -0
  26. package/common/cpp/HostObjects/AudioContextHostObject.h +43 -0
  27. package/common/cpp/HostObjects/AudioDestinationNodeHostObject.cpp +33 -0
  28. package/common/cpp/HostObjects/AudioDestinationNodeHostObject.h +31 -0
  29. package/common/cpp/HostObjects/AudioNodeHostObject.cpp +108 -0
  30. package/common/cpp/HostObjects/AudioNodeHostObject.h +29 -0
  31. package/common/cpp/HostObjects/AudioParamHostObject.cpp +115 -0
  32. package/common/cpp/HostObjects/AudioParamHostObject.h +34 -0
  33. package/common/cpp/HostObjects/AudioScheduledSourceNodeHostObject.cpp +73 -0
  34. package/common/cpp/HostObjects/AudioScheduledSourceNodeHostObject.h +31 -0
  35. package/common/cpp/HostObjects/BiquadFilterNodeHostObject.cpp +81 -0
  36. package/common/cpp/HostObjects/BiquadFilterNodeHostObject.h +42 -0
  37. package/common/cpp/HostObjects/Constants.h +22 -0
  38. package/common/cpp/HostObjects/GainNodeHostObject.cpp +41 -0
  39. package/common/cpp/HostObjects/GainNodeHostObject.h +32 -0
  40. package/common/cpp/HostObjects/OscillatorNodeHostObject.cpp +67 -0
  41. package/common/cpp/HostObjects/OscillatorNodeHostObject.h +40 -0
  42. package/common/cpp/HostObjects/StereoPannerNodeHostObject.cpp +41 -0
  43. package/common/cpp/HostObjects/StereoPannerNodeHostObject.h +36 -0
  44. package/common/cpp/core/AudioBuffer.cpp +115 -0
  45. package/common/cpp/core/AudioBuffer.h +42 -0
  46. package/common/cpp/core/AudioBufferSourceNode.cpp +58 -0
  47. package/common/cpp/core/AudioBufferSourceNode.h +26 -0
  48. package/common/cpp/core/AudioContext.cpp +90 -0
  49. package/common/cpp/core/AudioContext.h +73 -0
  50. package/common/cpp/core/AudioDestinationNode.cpp +35 -0
  51. package/common/cpp/core/AudioDestinationNode.h +24 -0
  52. package/common/cpp/core/AudioNode.cpp +68 -0
  53. package/common/cpp/core/AudioNode.h +74 -0
  54. package/common/cpp/core/AudioParam.cpp +136 -0
  55. package/common/cpp/core/AudioParam.h +50 -0
  56. package/common/cpp/core/AudioScheduledSourceNode.cpp +39 -0
  57. package/common/cpp/core/AudioScheduledSourceNode.h +30 -0
  58. package/common/cpp/core/BiquadFilterNode.cpp +364 -0
  59. package/common/cpp/core/BiquadFilterNode.h +128 -0
  60. package/common/cpp/core/GainNode.cpp +30 -0
  61. package/common/cpp/core/GainNode.h +23 -0
  62. package/common/cpp/core/OscillatorNode.cpp +66 -0
  63. package/common/cpp/core/OscillatorNode.h +112 -0
  64. package/common/cpp/core/ParamChange.cpp +46 -0
  65. package/common/cpp/core/ParamChange.h +34 -0
  66. package/common/cpp/core/StereoPannerNode.cpp +58 -0
  67. package/common/cpp/core/StereoPannerNode.h +26 -0
  68. package/common/cpp/utils/VectorMath.cpp +609 -0
  69. package/common/cpp/utils/VectorMath.h +65 -0
  70. package/common/cpp/wrappers/AudioBufferSourceNodeWrapper.cpp +35 -0
  71. package/common/cpp/wrappers/AudioBufferSourceNodeWrapper.h +25 -0
  72. package/common/cpp/wrappers/AudioBufferWrapper.cpp +46 -0
  73. package/common/cpp/wrappers/AudioBufferWrapper.h +30 -0
  74. package/common/cpp/wrappers/AudioContextWrapper.cpp +70 -0
  75. package/common/cpp/wrappers/AudioContextWrapper.h +40 -0
  76. package/common/cpp/wrappers/AudioDestinationNodeWrapper.h +16 -0
  77. package/common/cpp/wrappers/AudioNodeWrapper.cpp +37 -0
  78. package/common/cpp/wrappers/AudioNodeWrapper.h +25 -0
  79. package/common/cpp/wrappers/AudioParamWrapper.cpp +42 -0
  80. package/common/cpp/wrappers/AudioParamWrapper.h +25 -0
  81. package/common/cpp/wrappers/AudioScheduledSourceNodeWrapper.cpp +23 -0
  82. package/common/cpp/wrappers/AudioScheduledSourceNodeWrapper.h +23 -0
  83. package/common/cpp/wrappers/BiquadFilterNodeWrapper.cpp +51 -0
  84. package/common/cpp/wrappers/BiquadFilterNodeWrapper.h +32 -0
  85. package/common/cpp/wrappers/GainNodeWrapper.cpp +14 -0
  86. package/common/cpp/wrappers/GainNodeWrapper.h +20 -0
  87. package/common/cpp/wrappers/OscillatorNodeWrapper.cpp +38 -0
  88. package/common/cpp/wrappers/OscillatorNodeWrapper.h +28 -0
  89. package/common/cpp/wrappers/StereoPannerNodeWrapper.cpp +16 -0
  90. package/common/cpp/wrappers/StereoPannerNodeWrapper.h +21 -0
  91. package/ios/AudioAPIModule.h +5 -0
  92. package/ios/AudioAPIModule.mm +44 -0
  93. package/ios/AudioPlayer/AudioPlayer.h +27 -0
  94. package/ios/AudioPlayer/AudioPlayer.m +121 -0
  95. package/ios/AudioPlayer/IOSAudioPlayer.h +29 -0
  96. package/ios/AudioPlayer/IOSAudioPlayer.mm +34 -0
  97. package/lib/module/index.js +39 -0
  98. package/lib/module/index.js.map +1 -0
  99. package/lib/module/modules/global.d.js +2 -0
  100. package/lib/module/modules/global.d.js.map +1 -0
  101. package/lib/module/types.js +2 -0
  102. package/lib/module/types.js.map +1 -0
  103. package/lib/module/utils/install.js +22 -0
  104. package/lib/module/utils/install.js.map +1 -0
  105. package/lib/typescript/index.d.ts +18 -0
  106. package/lib/typescript/index.d.ts.map +1 -0
  107. package/lib/typescript/types.d.ts +76 -0
  108. package/lib/typescript/types.d.ts.map +1 -0
  109. package/lib/typescript/utils/install.d.ts +7 -0
  110. package/lib/typescript/utils/install.d.ts.map +1 -0
  111. package/package.json +104 -5
  112. package/src/index.ts +79 -0
  113. package/src/modules/global.d.ts +10 -0
  114. package/src/types.ts +108 -0
  115. package/src/utils/install.ts +39 -0
  116. package/index.ts +0 -1
@@ -0,0 +1,25 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+
5
+ #include "AudioBufferSourceNode.h"
6
+ #include "AudioBufferWrapper.h"
7
+ #include "AudioScheduledSourceNodeWrapper.h"
8
+
9
+ namespace audioapi {
10
+
11
+ class AudioBufferSourceNodeWrapper : public AudioScheduledSourceNodeWrapper {
12
+ public:
13
+ explicit AudioBufferSourceNodeWrapper(
14
+ const std::shared_ptr<AudioBufferSourceNode> &audioBufferSourceNode);
15
+
16
+ void setLoop(bool loop);
17
+ bool getLoop();
18
+ std::shared_ptr<AudioBufferWrapper> getBuffer();
19
+ void setBuffer(const std::shared_ptr<AudioBufferWrapper> &buffer);
20
+
21
+ private:
22
+ std::shared_ptr<AudioBufferSourceNode>
23
+ getAudioBufferSourceNodeFromAudioNode();
24
+ };
25
+ } // namespace audioapi
@@ -0,0 +1,46 @@
1
+ #include "AudioBufferWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ AudioBufferWrapper::AudioBufferWrapper(
6
+ const std::shared_ptr<AudioBuffer> &audioBuffer)
7
+ : audioBuffer_(audioBuffer) {}
8
+
9
+ int AudioBufferWrapper::getSampleRate() const {
10
+ return audioBuffer_->getSampleRate();
11
+ }
12
+
13
+ int AudioBufferWrapper::getLength() const {
14
+ return audioBuffer_->getLength();
15
+ }
16
+
17
+ double AudioBufferWrapper::getDuration() const {
18
+ return audioBuffer_->getDuration();
19
+ }
20
+
21
+ int AudioBufferWrapper::getNumberOfChannels() const {
22
+ return audioBuffer_->getNumberOfChannels();
23
+ }
24
+
25
+ float *AudioBufferWrapper::getChannelData(int channel) const {
26
+ return audioBuffer_->getChannelData(channel);
27
+ }
28
+
29
+ void AudioBufferWrapper::copyFromChannel(
30
+ float *destination,
31
+ int destinationLength,
32
+ int channelNumber,
33
+ int startInChannel) const {
34
+ audioBuffer_->copyFromChannel(
35
+ destination, destinationLength, channelNumber, startInChannel);
36
+ }
37
+
38
+ void AudioBufferWrapper::copyToChannel(
39
+ float *source,
40
+ int sourceLength,
41
+ int channelNumber,
42
+ int startInChannel) const {
43
+ audioBuffer_->copyToChannel(
44
+ source, sourceLength, channelNumber, startInChannel);
45
+ }
46
+ } // namespace audioapi
@@ -0,0 +1,30 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+
5
+ #include "AudioBuffer.h"
6
+
7
+ namespace audioapi {
8
+
9
+ class AudioBufferWrapper {
10
+ public:
11
+ explicit AudioBufferWrapper(const std::shared_ptr<AudioBuffer> &audioBuffer);
12
+
13
+ std::shared_ptr<AudioBuffer> audioBuffer_;
14
+ int getNumberOfChannels() const;
15
+ int getLength() const;
16
+ double getDuration() const;
17
+ int getSampleRate() const;
18
+ float *getChannelData(int channel) const;
19
+ void copyFromChannel(
20
+ float *destination,
21
+ int destinationLength,
22
+ int channelNumber,
23
+ int startInChannel = 0) const;
24
+ void copyToChannel(
25
+ float *source,
26
+ int sourceLength,
27
+ int channelNumber,
28
+ int startInChannel = 0) const;
29
+ };
30
+ } // namespace audioapi
@@ -0,0 +1,70 @@
1
+ #include "AudioContextWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ AudioContextWrapper::AudioContextWrapper(
6
+ const std::shared_ptr<AudioContext> &audiocontext)
7
+ : audioContext_(audiocontext) {
8
+ auto destination = audioContext_->getDestination();
9
+ destination_ = std::make_shared<AudioDestinationNodeWrapper>(destination);
10
+ }
11
+
12
+ std::shared_ptr<AudioDestinationNodeWrapper>
13
+ AudioContextWrapper::getDestination() const {
14
+ return destination_;
15
+ }
16
+
17
+ std::shared_ptr<OscillatorNodeWrapper> AudioContextWrapper::createOscillator()
18
+ const {
19
+ auto oscillator = audioContext_->createOscillator();
20
+ return std::make_shared<OscillatorNodeWrapper>(oscillator);
21
+ }
22
+
23
+ std::shared_ptr<GainNodeWrapper> AudioContextWrapper::createGain() const {
24
+ auto gain = audioContext_->createGain();
25
+ return std::make_shared<GainNodeWrapper>(gain);
26
+ }
27
+
28
+ std::shared_ptr<StereoPannerNodeWrapper>
29
+ AudioContextWrapper::createStereoPanner() const {
30
+ auto panner = audioContext_->createStereoPanner();
31
+ return std::make_shared<StereoPannerNodeWrapper>(panner);
32
+ }
33
+
34
+ std::shared_ptr<BiquadFilterNodeWrapper>
35
+ AudioContextWrapper::createBiquadFilter() const {
36
+ auto filter = audioContext_->createBiquadFilter();
37
+ return std::make_shared<BiquadFilterNodeWrapper>(filter);
38
+ }
39
+
40
+ std::shared_ptr<AudioBufferSourceNodeWrapper>
41
+ AudioContextWrapper::createBufferSource() const {
42
+ auto bufferSource = audioContext_->createBufferSource();
43
+ return std::make_shared<AudioBufferSourceNodeWrapper>(bufferSource);
44
+ }
45
+
46
+ std::shared_ptr<AudioBufferWrapper> AudioContextWrapper::createBuffer(
47
+ int numberOfChannels,
48
+ int length,
49
+ int sampleRate) const {
50
+ auto buffer =
51
+ audioContext_->createBuffer(numberOfChannels, length, sampleRate);
52
+ return std::make_shared<AudioBufferWrapper>(buffer);
53
+ }
54
+
55
+ std::string AudioContextWrapper::getState() const {
56
+ return audioContext_->getState();
57
+ }
58
+
59
+ int AudioContextWrapper::getSampleRate() const {
60
+ return audioContext_->getSampleRate();
61
+ }
62
+
63
+ double AudioContextWrapper::getCurrentTime() const {
64
+ return audioContext_->getCurrentTime();
65
+ }
66
+
67
+ void AudioContextWrapper::close() const {
68
+ audioContext_->close();
69
+ }
70
+ } // namespace audioapi
@@ -0,0 +1,40 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+ #include <string>
5
+ #include <utility>
6
+
7
+ #include "AudioBufferSourceNodeWrapper.h"
8
+ #include "AudioBufferWrapper.h"
9
+ #include "AudioContext.h"
10
+ #include "AudioDestinationNodeWrapper.h"
11
+ #include "BiquadFilterNodeWrapper.h"
12
+ #include "GainNodeWrapper.h"
13
+ #include "OscillatorNodeWrapper.h"
14
+ #include "StereoPannerNodeWrapper.h"
15
+
16
+ namespace audioapi {
17
+
18
+ class AudioContextWrapper {
19
+ public:
20
+ explicit AudioContextWrapper(
21
+ const std::shared_ptr<AudioContext> &audiocontext);
22
+
23
+ std::shared_ptr<AudioDestinationNodeWrapper> getDestination() const;
24
+ std::shared_ptr<OscillatorNodeWrapper> createOscillator() const;
25
+ std::shared_ptr<GainNodeWrapper> createGain() const;
26
+ std::shared_ptr<StereoPannerNodeWrapper> createStereoPanner() const;
27
+ std::shared_ptr<BiquadFilterNodeWrapper> createBiquadFilter() const;
28
+ std::shared_ptr<AudioBufferSourceNodeWrapper> createBufferSource() const;
29
+ std::shared_ptr<AudioBufferWrapper>
30
+ createBuffer(int numberOfChannels, int length, int sampleRate) const;
31
+ std::string getState() const;
32
+ int getSampleRate() const;
33
+ double getCurrentTime() const;
34
+ void close() const;
35
+
36
+ private:
37
+ std::shared_ptr<AudioDestinationNodeWrapper> destination_;
38
+ std::shared_ptr<AudioContext> audioContext_;
39
+ };
40
+ } // namespace audioapi
@@ -0,0 +1,16 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+
5
+ #include "AudioDestinationNode.h"
6
+ #include "AudioNodeWrapper.h"
7
+
8
+ namespace audioapi {
9
+
10
+ class AudioDestinationNodeWrapper : public AudioNodeWrapper {
11
+ public:
12
+ explicit AudioDestinationNodeWrapper(
13
+ const std::shared_ptr<AudioDestinationNode> &destinationNode)
14
+ : AudioNodeWrapper(destinationNode) {}
15
+ };
16
+ } // namespace audioapi
@@ -0,0 +1,37 @@
1
+ #include "AudioNodeWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ AudioNodeWrapper::AudioNodeWrapper(const std::shared_ptr<AudioNode> &node)
6
+ : node_(node) {}
7
+
8
+ int AudioNodeWrapper::getNumberOfInputs() const {
9
+ return node_->getNumberOfInputs();
10
+ }
11
+
12
+ int AudioNodeWrapper::getNumberOfOutputs() const {
13
+ return node_->getNumberOfOutputs();
14
+ }
15
+
16
+ int AudioNodeWrapper::getChannelCount() const {
17
+ return node_->getChannelCount();
18
+ }
19
+
20
+ std::string AudioNodeWrapper::getChannelCountMode() const {
21
+ return node_->getChannelCountMode();
22
+ }
23
+
24
+ std::string AudioNodeWrapper::getChannelInterpretation() const {
25
+ return node_->getChannelInterpretation();
26
+ }
27
+
28
+ void AudioNodeWrapper::connect(
29
+ const std::shared_ptr<AudioNodeWrapper> &node) const {
30
+ node_->connect(node->node_);
31
+ }
32
+
33
+ void AudioNodeWrapper::disconnect(
34
+ const std::shared_ptr<AudioNodeWrapper> &node) const {
35
+ node_->disconnect(node->node_);
36
+ }
37
+ } // namespace audioapi
@@ -0,0 +1,25 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+ #include <string>
5
+
6
+ #include "AudioNode.h"
7
+
8
+ namespace audioapi {
9
+
10
+ class AudioNodeWrapper {
11
+ public:
12
+ explicit AudioNodeWrapper(const std::shared_ptr<AudioNode> &node);
13
+
14
+ int getNumberOfInputs() const;
15
+ int getNumberOfOutputs() const;
16
+ int getChannelCount() const;
17
+ std::string getChannelCountMode() const;
18
+ std::string getChannelInterpretation() const;
19
+ void connect(const std::shared_ptr<AudioNodeWrapper> &node) const;
20
+ void disconnect(const std::shared_ptr<AudioNodeWrapper> &node) const;
21
+
22
+ protected:
23
+ std::shared_ptr<AudioNode> node_;
24
+ };
25
+ } // namespace audioapi
@@ -0,0 +1,42 @@
1
+ #include "AudioParamWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ AudioParamWrapper::AudioParamWrapper(const std::shared_ptr<AudioParam> &param)
6
+ : param_(param) {}
7
+
8
+ float AudioParamWrapper::getValue() const {
9
+ return param_->getValue();
10
+ }
11
+
12
+ void AudioParamWrapper::setValue(float value) const {
13
+ param_->setValue(value);
14
+ }
15
+
16
+ float AudioParamWrapper::getDefaultValue() const {
17
+ return param_->getDefaultValue();
18
+ }
19
+
20
+ float AudioParamWrapper::getMinValue() const {
21
+ return param_->getMinValue();
22
+ }
23
+
24
+ float AudioParamWrapper::getMaxValue() const {
25
+ return param_->getMaxValue();
26
+ }
27
+
28
+ void AudioParamWrapper::setValueAtTime(float value, double startTime) const {
29
+ param_->setValueAtTime(value, startTime);
30
+ }
31
+
32
+ void AudioParamWrapper::linearRampToValueAtTime(float value, double endTime)
33
+ const {
34
+ param_->linearRampToValueAtTime(value, endTime);
35
+ }
36
+
37
+ void AudioParamWrapper::exponentialRampToValueAtTime(
38
+ float value,
39
+ double endTime) const {
40
+ param_->exponentialRampToValueAtTime(value, endTime);
41
+ }
42
+ } // namespace audioapi
@@ -0,0 +1,25 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+
5
+ #include "AudioParam.h"
6
+
7
+ namespace audioapi {
8
+
9
+ class AudioParamWrapper {
10
+ public:
11
+ explicit AudioParamWrapper(const std::shared_ptr<AudioParam> &param);
12
+
13
+ float getValue() const;
14
+ void setValue(float value) const;
15
+ float getDefaultValue() const;
16
+ float getMinValue() const;
17
+ float getMaxValue() const;
18
+ void setValueAtTime(float value, double startTime) const;
19
+ void linearRampToValueAtTime(float value, double endTime) const;
20
+ void exponentialRampToValueAtTime(float value, double endTime) const;
21
+
22
+ private:
23
+ std::shared_ptr<AudioParam> param_;
24
+ };
25
+ } // namespace audioapi
@@ -0,0 +1,23 @@
1
+ #include "AudioScheduledSourceNodeWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ AudioScheduledSourceNodeWrapper::AudioScheduledSourceNodeWrapper(
6
+ const std::shared_ptr<AudioScheduledSourceNode> &audioScheduledSourceNode)
7
+ : AudioNodeWrapper(audioScheduledSourceNode) {}
8
+
9
+ std::shared_ptr<AudioScheduledSourceNode>
10
+ AudioScheduledSourceNodeWrapper::getAudioScheduledSourceNodeFromAudioNode() {
11
+ return std::static_pointer_cast<AudioScheduledSourceNode>(node_);
12
+ }
13
+
14
+ void AudioScheduledSourceNodeWrapper::start(double time) {
15
+ auto audioScheduledSourceNode = getAudioScheduledSourceNodeFromAudioNode();
16
+ audioScheduledSourceNode->start(time);
17
+ }
18
+
19
+ void AudioScheduledSourceNodeWrapper::stop(double time) {
20
+ auto audioScheduledSourceNode = getAudioScheduledSourceNodeFromAudioNode();
21
+ audioScheduledSourceNode->stop(time);
22
+ }
23
+ } // namespace audioapi
@@ -0,0 +1,23 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+
5
+ #include "AudioNodeWrapper.h"
6
+ #include "AudioScheduledSourceNode.h"
7
+
8
+ namespace audioapi {
9
+
10
+ class AudioScheduledSourceNodeWrapper : public AudioNodeWrapper {
11
+ public:
12
+ explicit AudioScheduledSourceNodeWrapper(
13
+ const std::shared_ptr<AudioScheduledSourceNode>
14
+ &audioScheduledSourceNode);
15
+
16
+ void start(double time);
17
+ void stop(double time);
18
+
19
+ private:
20
+ std::shared_ptr<AudioScheduledSourceNode>
21
+ getAudioScheduledSourceNodeFromAudioNode();
22
+ };
23
+ } // namespace audioapi
@@ -0,0 +1,51 @@
1
+ #include "BiquadFilterNodeWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ std::shared_ptr<BiquadFilterNode>
6
+ BiquadFilterNodeWrapper::getBiquadFilterNodeFromAudioNode() {
7
+ return std::static_pointer_cast<BiquadFilterNode>(node_);
8
+ }
9
+
10
+ BiquadFilterNodeWrapper::BiquadFilterNodeWrapper(
11
+ const std::shared_ptr<BiquadFilterNode> &biquadFilterNode)
12
+ : AudioNodeWrapper(biquadFilterNode) {
13
+ auto frequencyParam = biquadFilterNode->getFrequencyParam();
14
+ frequencyParam_ = std::make_shared<AudioParamWrapper>(frequencyParam);
15
+ auto detuneParam = biquadFilterNode->getDetuneParam();
16
+ detuneParam_ = std::make_shared<AudioParamWrapper>(detuneParam);
17
+ auto QParam = biquadFilterNode->getQParam();
18
+ QParam_ = std::make_shared<AudioParamWrapper>(QParam);
19
+ auto gainParam = biquadFilterNode->getGainParam();
20
+ gainParam_ = std::make_shared<AudioParamWrapper>(gainParam);
21
+ }
22
+
23
+ std::shared_ptr<AudioParamWrapper> BiquadFilterNodeWrapper::getFrequencyParam()
24
+ const {
25
+ return frequencyParam_;
26
+ }
27
+
28
+ std::shared_ptr<AudioParamWrapper> BiquadFilterNodeWrapper::getDetuneParam()
29
+ const {
30
+ return detuneParam_;
31
+ }
32
+
33
+ std::shared_ptr<AudioParamWrapper> BiquadFilterNodeWrapper::getQParam() const {
34
+ return QParam_;
35
+ }
36
+
37
+ std::shared_ptr<AudioParamWrapper> BiquadFilterNodeWrapper::getGainParam()
38
+ const {
39
+ return gainParam_;
40
+ }
41
+
42
+ std::string BiquadFilterNodeWrapper::getType() {
43
+ auto biquadFilterNode_ = getBiquadFilterNodeFromAudioNode();
44
+ return biquadFilterNode_->getType();
45
+ }
46
+
47
+ void BiquadFilterNodeWrapper::setType(const std::string &filterType) {
48
+ auto biquadFilterNode_ = getBiquadFilterNodeFromAudioNode();
49
+ biquadFilterNode_->setType(filterType);
50
+ }
51
+ } // namespace audioapi
@@ -0,0 +1,32 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+ #include <string>
5
+
6
+ #include "AudioNodeWrapper.h"
7
+ #include "AudioParamWrapper.h"
8
+ #include "BiquadFilterNode.h"
9
+
10
+ namespace audioapi {
11
+
12
+ class BiquadFilterNodeWrapper : public AudioNodeWrapper {
13
+ public:
14
+ explicit BiquadFilterNodeWrapper(
15
+ const std::shared_ptr<BiquadFilterNode> &biquadFilterNode);
16
+
17
+ std::shared_ptr<AudioParamWrapper> getFrequencyParam() const;
18
+ std::shared_ptr<AudioParamWrapper> getDetuneParam() const;
19
+ std::shared_ptr<AudioParamWrapper> getQParam() const;
20
+ std::shared_ptr<AudioParamWrapper> getGainParam() const;
21
+ std::string getType();
22
+ void setType(const std::string &filterType);
23
+
24
+ private:
25
+ std::shared_ptr<AudioParamWrapper> frequencyParam_;
26
+ std::shared_ptr<AudioParamWrapper> detuneParam_;
27
+ std::shared_ptr<AudioParamWrapper> QParam_;
28
+ std::shared_ptr<AudioParamWrapper> gainParam_;
29
+
30
+ std::shared_ptr<BiquadFilterNode> getBiquadFilterNodeFromAudioNode();
31
+ };
32
+ } // namespace audioapi
@@ -0,0 +1,14 @@
1
+ #include "GainNodeWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ GainNodeWrapper::GainNodeWrapper(const std::shared_ptr<GainNode> &gainNode)
6
+ : AudioNodeWrapper(gainNode) {
7
+ auto gainParam = gainNode->getGainParam();
8
+ gainParam_ = std::make_shared<AudioParamWrapper>(gainParam);
9
+ }
10
+
11
+ std::shared_ptr<AudioParamWrapper> GainNodeWrapper::getGainParam() const {
12
+ return gainParam_;
13
+ }
14
+ } // namespace audioapi
@@ -0,0 +1,20 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+
5
+ #include "AudioNodeWrapper.h"
6
+ #include "AudioParamWrapper.h"
7
+ #include "GainNode.h"
8
+
9
+ namespace audioapi {
10
+
11
+ class GainNodeWrapper : public AudioNodeWrapper {
12
+ public:
13
+ explicit GainNodeWrapper(const std::shared_ptr<GainNode> &gainNode);
14
+
15
+ std::shared_ptr<AudioParamWrapper> getGainParam() const;
16
+
17
+ private:
18
+ std::shared_ptr<AudioParamWrapper> gainParam_;
19
+ };
20
+ } // namespace audioapi
@@ -0,0 +1,38 @@
1
+ #include "OscillatorNodeWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ std::shared_ptr<OscillatorNode>
6
+ OscillatorNodeWrapper::getOscillatorNodeFromAudioNode() {
7
+ return std::static_pointer_cast<OscillatorNode>(node_);
8
+ }
9
+
10
+ OscillatorNodeWrapper::OscillatorNodeWrapper(
11
+ const std::shared_ptr<OscillatorNode> &oscillator)
12
+ : AudioScheduledSourceNodeWrapper(oscillator) {
13
+ auto frequencyParam = oscillator->getFrequencyParam();
14
+ frequencyParam_ = std::make_shared<AudioParamWrapper>(frequencyParam);
15
+ auto detuneParam = oscillator->getDetuneParam();
16
+ detuneParam_ = std::make_shared<AudioParamWrapper>(detuneParam);
17
+ }
18
+
19
+ std::shared_ptr<AudioParamWrapper> OscillatorNodeWrapper::getFrequencyParam()
20
+ const {
21
+ return frequencyParam_;
22
+ }
23
+
24
+ std::shared_ptr<AudioParamWrapper> OscillatorNodeWrapper::getDetuneParam()
25
+ const {
26
+ return detuneParam_;
27
+ }
28
+
29
+ std::string OscillatorNodeWrapper::getType() {
30
+ auto oscillatorNode_ = getOscillatorNodeFromAudioNode();
31
+ return oscillatorNode_->getType();
32
+ }
33
+
34
+ void OscillatorNodeWrapper::setType(const std::string &type) {
35
+ auto oscillatorNode_ = getOscillatorNodeFromAudioNode();
36
+ oscillatorNode_->setType(type);
37
+ }
38
+ } // namespace audioapi
@@ -0,0 +1,28 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+ #include <string>
5
+
6
+ #include "AudioParamWrapper.h"
7
+ #include "AudioScheduledSourceNodeWrapper.h"
8
+ #include "OscillatorNode.h"
9
+
10
+ namespace audioapi {
11
+
12
+ class OscillatorNodeWrapper : public AudioScheduledSourceNodeWrapper {
13
+ public:
14
+ explicit OscillatorNodeWrapper(
15
+ const std::shared_ptr<OscillatorNode> &oscillatorNode);
16
+
17
+ std::shared_ptr<AudioParamWrapper> getFrequencyParam() const;
18
+ std::shared_ptr<AudioParamWrapper> getDetuneParam() const;
19
+ std::string getType();
20
+ void setType(const std::string &type);
21
+
22
+ private:
23
+ std::shared_ptr<AudioParamWrapper> frequencyParam_;
24
+ std::shared_ptr<AudioParamWrapper> detuneParam_;
25
+
26
+ std::shared_ptr<OscillatorNode> getOscillatorNodeFromAudioNode();
27
+ };
28
+ } // namespace audioapi
@@ -0,0 +1,16 @@
1
+ #include "StereoPannerNodeWrapper.h"
2
+
3
+ namespace audioapi {
4
+
5
+ StereoPannerNodeWrapper::StereoPannerNodeWrapper(
6
+ const std::shared_ptr<StereoPannerNode> &stereoPannerNode)
7
+ : AudioNodeWrapper(stereoPannerNode) {
8
+ auto panParam = stereoPannerNode->getPanParam();
9
+ panParam_ = std::make_shared<AudioParamWrapper>(panParam);
10
+ }
11
+
12
+ std::shared_ptr<AudioParamWrapper> StereoPannerNodeWrapper::getPanParam()
13
+ const {
14
+ return panParam_;
15
+ }
16
+ } // namespace audioapi
@@ -0,0 +1,21 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+
5
+ #include "AudioNodeWrapper.h"
6
+ #include "AudioParamWrapper.h"
7
+ #include "StereoPannerNode.h"
8
+
9
+ namespace audioapi {
10
+
11
+ class StereoPannerNodeWrapper : public AudioNodeWrapper {
12
+ public:
13
+ explicit StereoPannerNodeWrapper(
14
+ const std::shared_ptr<StereoPannerNode> &stereoPannerNode);
15
+
16
+ std::shared_ptr<AudioParamWrapper> getPanParam() const;
17
+
18
+ private:
19
+ std::shared_ptr<AudioParamWrapper> panParam_;
20
+ };
21
+ } // namespace audioapi
@@ -0,0 +1,5 @@
1
+ #import <React/RCTBridgeModule.h>
2
+
3
+ @interface AudioAPIModule : NSObject <RCTBridgeModule>
4
+
5
+ @end