react-native-audio-api 0.3.0-rc1 → 0.3.1

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 (121) hide show
  1. package/android/CMakeLists.txt +4 -4
  2. package/android/build.gradle +1 -3
  3. package/android/libs/include/miniaudio.h +92621 -0
  4. package/android/src/main/cpp/AudioAPIInstaller/AudioAPIInstaller.cpp +10 -12
  5. package/android/src/main/cpp/AudioAPIInstaller/AudioAPIInstaller.h +16 -9
  6. package/android/src/main/cpp/AudioDecoder/AudioDecoder.cpp +64 -0
  7. package/android/src/main/cpp/AudioDecoder/AudioDecoder.h +21 -0
  8. package/android/src/main/cpp/AudioPlayer/AudioPlayer.h +2 -2
  9. package/android/src/main/java/com/swmansion/audioapi/module/AudioAPIInstaller.kt +14 -4
  10. package/android/src/main/java/com/swmansion/audioapi/nativemodules/AudioAPIModule.kt +2 -3
  11. package/common/cpp/AudioAPIInstaller/AudioAPIInstallerHostObject.h +26 -27
  12. package/common/cpp/HostObjects/AudioBufferHostObject.h +79 -13
  13. package/common/cpp/HostObjects/AudioBufferSourceNodeHostObject.h +93 -14
  14. package/common/cpp/HostObjects/AudioContextHostObject.h +10 -19
  15. package/common/cpp/HostObjects/AudioDestinationNodeHostObject.h +3 -16
  16. package/common/cpp/HostObjects/AudioNodeHostObject.h +48 -11
  17. package/common/cpp/HostObjects/AudioParamHostObject.h +56 -14
  18. package/common/cpp/HostObjects/AudioScheduledSourceNodeHostObject.h +23 -16
  19. package/common/cpp/HostObjects/BaseAudioContextHostObject.h +131 -13
  20. package/common/cpp/HostObjects/BiquadFilterNodeHostObject.h +76 -18
  21. package/common/cpp/HostObjects/Constants.h +2 -0
  22. package/common/cpp/HostObjects/GainNodeHostObject.h +10 -15
  23. package/common/cpp/HostObjects/OscillatorNodeHostObject.h +40 -17
  24. package/common/cpp/HostObjects/PeriodicWaveHostObject.h +4 -17
  25. package/common/cpp/HostObjects/StereoPannerNodeHostObject.h +10 -17
  26. package/common/cpp/core/AudioBufferSourceNode.cpp +180 -73
  27. package/common/cpp/core/AudioBufferSourceNode.h +41 -1
  28. package/common/cpp/core/AudioDestinationNode.cpp +1 -0
  29. package/common/cpp/core/AudioDestinationNode.h +1 -1
  30. package/common/cpp/core/AudioScheduledSourceNode.cpp +86 -21
  31. package/common/cpp/core/AudioScheduledSourceNode.h +12 -4
  32. package/common/cpp/core/BaseAudioContext.cpp +8 -5
  33. package/common/cpp/core/BaseAudioContext.h +5 -3
  34. package/common/cpp/core/OscillatorNode.cpp +7 -2
  35. package/common/cpp/jsi/JsiHostObject.cpp +85 -0
  36. package/common/cpp/jsi/JsiHostObject.h +94 -0
  37. package/common/cpp/jsi/JsiPromise.cpp +65 -0
  38. package/common/cpp/jsi/JsiPromise.h +48 -0
  39. package/common/cpp/utils/AudioUtils.cpp +26 -0
  40. package/common/cpp/utils/AudioUtils.h +16 -0
  41. package/ios/AudioAPIModule.mm +3 -6
  42. package/ios/AudioDecoder/AudioDecoder.h +1 -1
  43. package/ios/AudioDecoder/AudioDecoder.m +14 -102
  44. package/ios/AudioDecoder/IOSAudioDecoder.h +2 -0
  45. package/ios/AudioDecoder/IOSAudioDecoder.mm +7 -1
  46. package/ios/AudioPlayer/AudioPlayer.m +3 -1
  47. package/lib/module/core/AudioBufferSourceNode.js +15 -0
  48. package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
  49. package/lib/module/core/BaseAudioContext.js +2 -3
  50. package/lib/module/core/BaseAudioContext.js.map +1 -1
  51. package/lib/module/index.js +18 -3
  52. package/lib/module/index.js.map +1 -1
  53. package/lib/typescript/core/AudioBufferSourceNode.d.ts +7 -0
  54. package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
  55. package/lib/typescript/core/BaseAudioContext.d.ts +2 -2
  56. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  57. package/lib/typescript/core/types.d.ts +0 -6
  58. package/lib/typescript/core/types.d.ts.map +1 -1
  59. package/lib/typescript/index.d.ts +8 -4
  60. package/lib/typescript/index.d.ts.map +1 -1
  61. package/lib/typescript/interfaces.d.ts +5 -1
  62. package/lib/typescript/interfaces.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/src/core/AudioBufferSourceNode.ts +23 -0
  65. package/src/core/BaseAudioContext.ts +3 -8
  66. package/src/core/types.ts +0 -7
  67. package/src/index.ts +26 -12
  68. package/src/interfaces.ts +6 -1
  69. package/android/libs/fftw3/x86/libfftw3.a +0 -0
  70. package/android/libs/fftw3/x86_64/libfftw3.a +0 -0
  71. package/common/cpp/AudioAPIInstaller/AudioAPIInstallerHostObject.cpp +0 -54
  72. package/common/cpp/AudioAPIInstaller/AudioAPIInstallerWrapper.h +0 -38
  73. package/common/cpp/AudioAPIInstaller/android/AudioAPIInstallerWrapper.cpp +0 -16
  74. package/common/cpp/AudioAPIInstaller/ios/AudioAPIInstallerWrapper.cpp +0 -12
  75. package/common/cpp/HostObjects/AudioBufferHostObject.cpp +0 -149
  76. package/common/cpp/HostObjects/AudioBufferSourceNodeHostObject.cpp +0 -79
  77. package/common/cpp/HostObjects/AudioContextHostObject.cpp +0 -54
  78. package/common/cpp/HostObjects/AudioDestinationNodeHostObject.cpp +0 -33
  79. package/common/cpp/HostObjects/AudioNodeHostObject.cpp +0 -102
  80. package/common/cpp/HostObjects/AudioParamHostObject.cpp +0 -115
  81. package/common/cpp/HostObjects/AudioScheduledSourceNodeHostObject.cpp +0 -73
  82. package/common/cpp/HostObjects/BaseAudioContextHostObject.cpp +0 -240
  83. package/common/cpp/HostObjects/BiquadFilterNodeHostObject.cpp +0 -125
  84. package/common/cpp/HostObjects/GainNodeHostObject.cpp +0 -41
  85. package/common/cpp/HostObjects/OscillatorNodeHostObject.cpp +0 -88
  86. package/common/cpp/HostObjects/PeriodicWaveHostObject.cpp +0 -33
  87. package/common/cpp/HostObjects/StereoPannerNodeHostObject.cpp +0 -41
  88. package/common/cpp/utils/JsiPromise.cpp +0 -59
  89. package/common/cpp/utils/JsiPromise.h +0 -42
  90. package/common/cpp/wrappers/AudioBufferSourceNodeWrapper.cpp +0 -45
  91. package/common/cpp/wrappers/AudioBufferSourceNodeWrapper.h +0 -26
  92. package/common/cpp/wrappers/AudioBufferWrapper.cpp +0 -46
  93. package/common/cpp/wrappers/AudioBufferWrapper.h +0 -30
  94. package/common/cpp/wrappers/AudioContextWrapper.cpp +0 -17
  95. package/common/cpp/wrappers/AudioContextWrapper.h +0 -19
  96. package/common/cpp/wrappers/AudioDestinationNodeWrapper.h +0 -16
  97. package/common/cpp/wrappers/AudioNodeWrapper.cpp +0 -37
  98. package/common/cpp/wrappers/AudioNodeWrapper.h +0 -25
  99. package/common/cpp/wrappers/AudioParamWrapper.cpp +0 -42
  100. package/common/cpp/wrappers/AudioParamWrapper.h +0 -25
  101. package/common/cpp/wrappers/AudioScheduledSourceNodeWrapper.cpp +0 -23
  102. package/common/cpp/wrappers/AudioScheduledSourceNodeWrapper.h +0 -23
  103. package/common/cpp/wrappers/BaseAudioContextWrapper.cpp +0 -83
  104. package/common/cpp/wrappers/BaseAudioContextWrapper.h +0 -50
  105. package/common/cpp/wrappers/BiquadFilterNodeWrapper.cpp +0 -60
  106. package/common/cpp/wrappers/BiquadFilterNodeWrapper.h +0 -37
  107. package/common/cpp/wrappers/GainNodeWrapper.cpp +0 -14
  108. package/common/cpp/wrappers/GainNodeWrapper.h +0 -20
  109. package/common/cpp/wrappers/OscillatorNodeWrapper.cpp +0 -44
  110. package/common/cpp/wrappers/OscillatorNodeWrapper.h +0 -31
  111. package/common/cpp/wrappers/PeriodicWaveWrapper.h +0 -17
  112. package/common/cpp/wrappers/StereoPannerNodeWrapper.cpp +0 -16
  113. package/common/cpp/wrappers/StereoPannerNodeWrapper.h +0 -21
  114. package/lib/module/utils/resolveAudioSource.js +0 -10
  115. package/lib/module/utils/resolveAudioSource.js.map +0 -1
  116. package/lib/typescript/utils/resolveAudioSource.d.ts +0 -3
  117. package/lib/typescript/utils/resolveAudioSource.d.ts.map +0 -1
  118. package/src/utils/resolveAudioSource.ts +0 -14
  119. /package/android/libs/{fftw3/arm64-v8a → arm64-v8a}/libfftw3.a +0 -0
  120. /package/android/libs/{fftw3/armeabi-v7a → armeabi-v7a}/libfftw3.a +0 -0
  121. /package/android/libs/include/{fftw3/fftw3.h → fftw3.h} +0 -0
@@ -1,45 +0,0 @@
1
- #include "AudioBufferSourceNodeWrapper.h"
2
-
3
- namespace audioapi {
4
-
5
- AudioBufferSourceNodeWrapper::AudioBufferSourceNodeWrapper(
6
- const std::shared_ptr<AudioBufferSourceNode> &audioBufferSourceNode)
7
- : AudioScheduledSourceNodeWrapper(audioBufferSourceNode) {}
8
-
9
- std::shared_ptr<AudioBufferSourceNode>
10
- AudioBufferSourceNodeWrapper::getAudioBufferSourceNodeFromAudioNode() {
11
- return std::static_pointer_cast<AudioBufferSourceNode>(node_);
12
- }
13
-
14
- bool AudioBufferSourceNodeWrapper::getLoop() {
15
- auto audioBufferSourceNode = getAudioBufferSourceNodeFromAudioNode();
16
- return audioBufferSourceNode->getLoop();
17
- }
18
-
19
- void AudioBufferSourceNodeWrapper::setLoop(bool loop) {
20
- auto audioBufferSourceNode = getAudioBufferSourceNodeFromAudioNode();
21
- audioBufferSourceNode->setLoop(loop);
22
- }
23
-
24
- std::shared_ptr<AudioBufferWrapper> AudioBufferSourceNodeWrapper::getBuffer() {
25
- auto audioBufferSourceNode = getAudioBufferSourceNodeFromAudioNode();
26
- auto buffer = audioBufferSourceNode->getBuffer();
27
-
28
- if (!buffer) {
29
- return {nullptr};
30
- }
31
-
32
- return std::make_shared<AudioBufferWrapper>(buffer);
33
- }
34
-
35
- void AudioBufferSourceNodeWrapper::setBuffer(
36
- const std::shared_ptr<AudioBufferWrapper> &buffer) {
37
- auto audioBufferSourceNode = getAudioBufferSourceNodeFromAudioNode();
38
- if (!buffer) {
39
- audioBufferSourceNode->setBuffer(std::shared_ptr<AudioBuffer>(nullptr));
40
- return;
41
- }
42
-
43
- audioBufferSourceNode->setBuffer(buffer->audioBuffer_);
44
- }
45
- } // namespace audioapi
@@ -1,26 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <optional>
5
-
6
- #include "AudioBufferSourceNode.h"
7
- #include "AudioBufferWrapper.h"
8
- #include "AudioScheduledSourceNodeWrapper.h"
9
-
10
- namespace audioapi {
11
-
12
- class AudioBufferSourceNodeWrapper : public AudioScheduledSourceNodeWrapper {
13
- public:
14
- explicit AudioBufferSourceNodeWrapper(
15
- const std::shared_ptr<AudioBufferSourceNode> &audioBufferSourceNode);
16
-
17
- void setLoop(bool loop);
18
- [[nodiscard]] bool getLoop();
19
- [[nodiscard]] std::shared_ptr<AudioBufferWrapper> getBuffer();
20
- void setBuffer(const std::shared_ptr<AudioBufferWrapper> &buffer);
21
-
22
- private:
23
- std::shared_ptr<AudioBufferSourceNode>
24
- getAudioBufferSourceNodeFromAudioNode();
25
- };
26
- } // namespace audioapi
@@ -1,46 +0,0 @@
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
@@ -1,30 +0,0 @@
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
- [[nodiscard]] int getNumberOfChannels() const;
15
- [[nodiscard]] int getLength() const;
16
- [[nodiscard]] double getDuration() const;
17
- [[nodiscard]] int getSampleRate() const;
18
- [[nodiscard]] 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
@@ -1,17 +0,0 @@
1
- #include "AudioContextWrapper.h"
2
-
3
- namespace audioapi {
4
-
5
- AudioContextWrapper::AudioContextWrapper(
6
- const std::shared_ptr<AudioContext> &context)
7
- : BaseAudioContextWrapper(context) {}
8
-
9
- void AudioContextWrapper::close() {
10
- getAudioContextFromBaseAudioContext()->close();
11
- }
12
-
13
- std::shared_ptr<AudioContext>
14
- AudioContextWrapper::getAudioContextFromBaseAudioContext() {
15
- return std::static_pointer_cast<AudioContext>(context_);
16
- }
17
- } // namespace audioapi
@@ -1,19 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "AudioContext.h"
6
- #include "BaseAudioContextWrapper.h"
7
-
8
- namespace audioapi {
9
-
10
- class AudioContextWrapper : public BaseAudioContextWrapper {
11
- public:
12
- explicit AudioContextWrapper(const std::shared_ptr<AudioContext> &context);
13
-
14
- void close();
15
-
16
- private:
17
- std::shared_ptr<AudioContext> getAudioContextFromBaseAudioContext();
18
- };
19
- } // namespace audioapi
@@ -1,16 +0,0 @@
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
@@ -1,37 +0,0 @@
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
@@ -1,25 +0,0 @@
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
- [[nodiscard]] int getNumberOfInputs() const;
15
- [[nodiscard]] int getNumberOfOutputs() const;
16
- [[nodiscard]] int getChannelCount() const;
17
- [[nodiscard]] std::string getChannelCountMode() const;
18
- [[nodiscard]] 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
@@ -1,42 +0,0 @@
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
@@ -1,25 +0,0 @@
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
- [[nodiscard]] float getValue() const;
14
- void setValue(float value) const;
15
- [[nodiscard]] float getDefaultValue() const;
16
- [[nodiscard]] float getMinValue() const;
17
- [[nodiscard]] 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
@@ -1,23 +0,0 @@
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
@@ -1,23 +0,0 @@
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
@@ -1,83 +0,0 @@
1
- #include "BaseAudioContextWrapper.h"
2
-
3
- namespace audioapi {
4
-
5
- BaseAudioContextWrapper::BaseAudioContextWrapper(
6
- const std::shared_ptr<BaseAudioContext> &context)
7
- : context_(context) {
8
- auto destination = context_->getDestination();
9
- destination_ = std::make_shared<AudioDestinationNodeWrapper>(destination);
10
- }
11
-
12
- std::shared_ptr<AudioDestinationNodeWrapper>
13
- BaseAudioContextWrapper::getDestination() const {
14
- return destination_;
15
- }
16
-
17
- std::string BaseAudioContextWrapper::getState() const {
18
- return context_->getState();
19
- }
20
-
21
- int BaseAudioContextWrapper::getSampleRate() const {
22
- return context_->getSampleRate();
23
- }
24
-
25
- double BaseAudioContextWrapper::getCurrentTime() const {
26
- return context_->getCurrentTime();
27
- }
28
-
29
- std::shared_ptr<OscillatorNodeWrapper>
30
- BaseAudioContextWrapper::createOscillator() const {
31
- auto oscillator = context_->createOscillator();
32
- return std::make_shared<OscillatorNodeWrapper>(oscillator);
33
- }
34
-
35
- std::shared_ptr<GainNodeWrapper> BaseAudioContextWrapper::createGain() const {
36
- auto gain = context_->createGain();
37
- return std::make_shared<GainNodeWrapper>(gain);
38
- }
39
-
40
- std::shared_ptr<StereoPannerNodeWrapper>
41
- BaseAudioContextWrapper::createStereoPanner() const {
42
- auto panner = context_->createStereoPanner();
43
- return std::make_shared<StereoPannerNodeWrapper>(panner);
44
- }
45
-
46
- std::shared_ptr<BiquadFilterNodeWrapper>
47
- BaseAudioContextWrapper::createBiquadFilter() const {
48
- auto filter = context_->createBiquadFilter();
49
- return std::make_shared<BiquadFilterNodeWrapper>(filter);
50
- }
51
-
52
- std::shared_ptr<AudioBufferSourceNodeWrapper>
53
- BaseAudioContextWrapper::createBufferSource() const {
54
- auto bufferSource = context_->createBufferSource();
55
- return std::make_shared<AudioBufferSourceNodeWrapper>(bufferSource);
56
- }
57
-
58
- std::shared_ptr<AudioBufferWrapper> BaseAudioContextWrapper::createBuffer(
59
- int numberOfChannels,
60
- int length,
61
- int sampleRate) const {
62
- auto buffer = context_->createBuffer(numberOfChannels, length, sampleRate);
63
- return std::make_shared<AudioBufferWrapper>(buffer);
64
- }
65
-
66
- std::shared_ptr<PeriodicWaveWrapper>
67
- BaseAudioContextWrapper::createPeriodicWave(
68
- float *real,
69
- float *imag,
70
- bool disableNormalization,
71
- int length) {
72
- auto periodicWave =
73
- context_->createPeriodicWave(real, imag, disableNormalization, length);
74
- return std::make_shared<PeriodicWaveWrapper>(periodicWave);
75
- }
76
-
77
- std::shared_ptr<AudioBufferWrapper>
78
- BaseAudioContextWrapper::decodeAudioDataSource(const std::string &source) {
79
- return std::make_shared<AudioBufferWrapper>(
80
- context_->decodeAudioDataSource(source));
81
- }
82
-
83
- } // namespace audioapi
@@ -1,50 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <utility>
6
-
7
- #include "AudioBufferSourceNodeWrapper.h"
8
- #include "AudioBufferWrapper.h"
9
- #include "AudioDestinationNodeWrapper.h"
10
- #include "BaseAudioContext.h"
11
- #include "BiquadFilterNodeWrapper.h"
12
- #include "GainNodeWrapper.h"
13
- #include "OscillatorNodeWrapper.h"
14
- #include "PeriodicWaveWrapper.h"
15
- #include "StereoPannerNodeWrapper.h"
16
-
17
- namespace audioapi {
18
-
19
- class BaseAudioContextWrapper {
20
- public:
21
- explicit BaseAudioContextWrapper(
22
- const std::shared_ptr<BaseAudioContext> &context);
23
-
24
- [[nodiscard]] std::shared_ptr<AudioDestinationNodeWrapper> getDestination()
25
- const;
26
- [[nodiscard]] std::string getState() const;
27
- [[nodiscard]] int getSampleRate() const;
28
- [[nodiscard]] double getCurrentTime() const;
29
- [[nodiscard]] std::shared_ptr<OscillatorNodeWrapper> createOscillator() const;
30
- [[nodiscard]] std::shared_ptr<GainNodeWrapper> createGain() const;
31
- [[nodiscard]] std::shared_ptr<StereoPannerNodeWrapper> createStereoPanner()
32
- const;
33
- [[nodiscard]] std::shared_ptr<BiquadFilterNodeWrapper> createBiquadFilter()
34
- const;
35
- [[nodiscard]] std::shared_ptr<AudioBufferSourceNodeWrapper>
36
- createBufferSource() const;
37
- [[nodiscard]] std::shared_ptr<AudioBufferWrapper>
38
- createBuffer(int numberOfChannels, int length, int sampleRate) const;
39
- [[nodiscard]] std::shared_ptr<PeriodicWaveWrapper> createPeriodicWave(
40
- float *real,
41
- float *imag,
42
- bool disableNormalization,
43
- int length);
44
- std::shared_ptr<AudioBufferWrapper> decodeAudioDataSource(const std::string &source);
45
-
46
- protected:
47
- std::shared_ptr<AudioDestinationNodeWrapper> destination_;
48
- std::shared_ptr<BaseAudioContext> context_;
49
- };
50
- } // namespace audioapi
@@ -1,60 +0,0 @@
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
-
52
- void BiquadFilterNodeWrapper::getFrequencyResponse(
53
- const std::vector<float> &frequencyArray,
54
- std::vector<float> &magResponseOutput,
55
- std::vector<float> &phaseResponseOutput) {
56
- auto biquadFilterNode_ = getBiquadFilterNodeFromAudioNode();
57
- biquadFilterNode_->getFrequencyResponse(
58
- frequencyArray, magResponseOutput, phaseResponseOutput);
59
- }
60
- } // namespace audioapi
@@ -1,37 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <vector>
6
-
7
- #include "AudioNodeWrapper.h"
8
- #include "AudioParamWrapper.h"
9
- #include "BiquadFilterNode.h"
10
-
11
- namespace audioapi {
12
-
13
- class BiquadFilterNodeWrapper : public AudioNodeWrapper {
14
- public:
15
- explicit BiquadFilterNodeWrapper(
16
- const std::shared_ptr<BiquadFilterNode> &biquadFilterNode);
17
-
18
- [[nodiscard]] std::shared_ptr<AudioParamWrapper> getFrequencyParam() const;
19
- [[nodiscard]] std::shared_ptr<AudioParamWrapper> getDetuneParam() const;
20
- [[nodiscard]] std::shared_ptr<AudioParamWrapper> getQParam() const;
21
- [[nodiscard]] std::shared_ptr<AudioParamWrapper> getGainParam() const;
22
- std::string getType();
23
- void setType(const std::string &filterType);
24
- void getFrequencyResponse(
25
- const std::vector<float> &frequencyArray,
26
- std::vector<float> &magResponseOutput,
27
- std::vector<float> &phaseResponseOutput);
28
-
29
- private:
30
- std::shared_ptr<AudioParamWrapper> frequencyParam_;
31
- std::shared_ptr<AudioParamWrapper> detuneParam_;
32
- std::shared_ptr<AudioParamWrapper> QParam_;
33
- std::shared_ptr<AudioParamWrapper> gainParam_;
34
-
35
- std::shared_ptr<BiquadFilterNode> getBiquadFilterNodeFromAudioNode();
36
- };
37
- } // namespace audioapi
@@ -1,14 +0,0 @@
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
@@ -1,20 +0,0 @@
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
- [[nodiscard]] std::shared_ptr<AudioParamWrapper> getGainParam() const;
16
-
17
- private:
18
- std::shared_ptr<AudioParamWrapper> gainParam_;
19
- };
20
- } // namespace audioapi