react-native-audio-api 0.4.11 → 0.4.12-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/RNAudioAPI.podspec +11 -1
  2. package/android/CMakeLists.txt +9 -48
  3. package/android/src/main/cpp/audioapi/CMakeLists.txt +44 -0
  4. package/android/src/main/cpp/{AudioAPIModule.cpp → audioapi/android/AudioAPIModule.cpp} +1 -4
  5. package/android/src/main/cpp/{AudioAPIModule.h → audioapi/android/AudioAPIModule.h} +2 -1
  6. package/android/src/main/cpp/{OnLoad.cpp → audioapi/android/OnLoad.cpp} +2 -1
  7. package/android/src/main/cpp/{core → audioapi/android/core}/AudioDecoder.cpp +5 -5
  8. package/android/src/main/cpp/{core → audioapi/android/core}/AudioPlayer.cpp +5 -7
  9. package/android/src/main/cpp/{core → audioapi/android/core}/AudioPlayer.h +1 -0
  10. package/android/src/main/cpp/{libs → audioapi/android/libs}/pffft.c +2 -2
  11. package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +1 -0
  12. package/common/cpp/{installer → audioapi}/AudioAPIModuleInstaller.h +9 -7
  13. package/common/cpp/{HostObjects → audioapi/HostObjects}/AnalyserNodeHostObject.h +3 -3
  14. package/common/cpp/{HostObjects → audioapi/HostObjects}/AudioBufferHostObject.h +3 -3
  15. package/common/cpp/{HostObjects → audioapi/HostObjects}/AudioBufferSourceNodeHostObject.h +6 -7
  16. package/common/cpp/{HostObjects → audioapi/HostObjects}/AudioContextHostObject.h +3 -3
  17. package/common/cpp/{HostObjects → audioapi/HostObjects}/AudioDestinationNodeHostObject.h +3 -3
  18. package/common/cpp/{HostObjects → audioapi/HostObjects}/AudioNodeHostObject.h +3 -3
  19. package/common/cpp/{HostObjects → audioapi/HostObjects}/AudioParamHostObject.h +3 -3
  20. package/common/cpp/{HostObjects → audioapi/HostObjects}/AudioScheduledSourceNodeHostObject.h +3 -3
  21. package/common/cpp/{HostObjects → audioapi/HostObjects}/BaseAudioContextHostObject.h +21 -14
  22. package/common/cpp/{HostObjects → audioapi/HostObjects}/BiquadFilterNodeHostObject.h +4 -4
  23. package/common/cpp/{HostObjects → audioapi/HostObjects}/GainNodeHostObject.h +6 -6
  24. package/common/cpp/{HostObjects → audioapi/HostObjects}/OscillatorNodeHostObject.h +5 -5
  25. package/common/cpp/{HostObjects → audioapi/HostObjects}/PeriodicWaveHostObject.h +2 -2
  26. package/common/cpp/{HostObjects → audioapi/HostObjects}/StereoPannerNodeHostObject.h +4 -4
  27. package/common/cpp/audioapi/HostObjects/StretcherNodeHostObject.h +35 -0
  28. package/common/cpp/{core → audioapi/core}/AudioContext.cpp +6 -6
  29. package/common/cpp/{core → audioapi/core}/AudioContext.h +2 -2
  30. package/common/cpp/{core → audioapi/core}/AudioNode.cpp +14 -12
  31. package/common/cpp/{core → audioapi/core}/AudioNode.h +9 -6
  32. package/common/cpp/{core → audioapi/core}/AudioParam.cpp +3 -4
  33. package/common/cpp/{core → audioapi/core}/AudioParam.h +3 -3
  34. package/common/cpp/{core → audioapi/core}/BaseAudioContext.cpp +20 -16
  35. package/common/cpp/{core → audioapi/core}/BaseAudioContext.h +6 -3
  36. package/common/cpp/{core → audioapi/core/analysis}/AnalyserNode.cpp +6 -10
  37. package/common/cpp/{core → audioapi/core/analysis}/AnalyserNode.h +4 -3
  38. package/common/cpp/{core → audioapi/core/destinations}/AudioDestinationNode.cpp +6 -6
  39. package/common/cpp/{core → audioapi/core/destinations}/AudioDestinationNode.h +2 -2
  40. package/common/cpp/{core → audioapi/core/effects}/BiquadFilterNode.cpp +4 -4
  41. package/common/cpp/{core → audioapi/core/effects}/BiquadFilterNode.h +4 -4
  42. package/common/cpp/{core → audioapi/core/effects}/GainNode.cpp +4 -4
  43. package/common/cpp/{core → audioapi/core/effects}/GainNode.h +3 -3
  44. package/common/cpp/{core → audioapi/core/effects}/PeriodicWave.cpp +4 -2
  45. package/common/cpp/{core → audioapi/core/effects}/PeriodicWave.h +2 -4
  46. package/common/cpp/{core → audioapi/core/effects}/StereoPannerNode.cpp +5 -7
  47. package/common/cpp/{core → audioapi/core/effects}/StereoPannerNode.h +4 -3
  48. package/common/cpp/audioapi/core/effects/StretcherNode.cpp +94 -0
  49. package/common/cpp/audioapi/core/effects/StretcherNode.h +35 -0
  50. package/common/cpp/{core → audioapi/core/sources}/AudioBuffer.cpp +3 -3
  51. package/common/cpp/{core → audioapi/core/sources}/AudioBufferSourceNode.cpp +8 -11
  52. package/common/cpp/{core → audioapi/core/sources}/AudioBufferSourceNode.h +5 -3
  53. package/common/cpp/{core → audioapi/core/sources}/AudioScheduledSourceNode.cpp +6 -8
  54. package/common/cpp/{core → audioapi/core/sources}/AudioScheduledSourceNode.h +3 -2
  55. package/common/cpp/{core → audioapi/core/sources}/OscillatorNode.cpp +4 -4
  56. package/common/cpp/{core → audioapi/core/sources}/OscillatorNode.h +5 -5
  57. package/common/cpp/{core → audioapi/core/utils}/AudioArray.cpp +2 -4
  58. package/common/cpp/{core → audioapi/core/utils}/AudioBus.cpp +12 -7
  59. package/common/cpp/{core → audioapi/core/utils}/AudioBus.h +5 -2
  60. package/common/cpp/{core → audioapi/core/utils}/AudioNodeManager.cpp +3 -4
  61. package/common/cpp/{core → audioapi/core/utils}/ParamChangeEvent.cpp +1 -3
  62. package/common/cpp/{core → audioapi/core/utils}/ParamChangeEvent.h +3 -1
  63. package/common/cpp/{utils → audioapi/dsp}/AudioUtils.cpp +1 -1
  64. package/common/cpp/{utils → audioapi/dsp}/FFTFrame.cpp +1 -10
  65. package/common/cpp/{utils → audioapi/dsp}/FFTFrame.h +4 -3
  66. package/common/cpp/{utils → audioapi/dsp}/VectorMath.cpp +2 -5
  67. package/common/cpp/{utils → audioapi/dsp}/VectorMath.h +2 -0
  68. package/common/cpp/{jsi → audioapi/jsi}/JsiHostObject.cpp +1 -1
  69. package/common/cpp/{jsi → audioapi/jsi}/JsiHostObject.h +2 -2
  70. package/common/cpp/{jsi → audioapi/jsi}/JsiPromise.cpp +2 -6
  71. package/common/cpp/{jsi → audioapi/jsi}/RuntimeAwareCache.h +2 -3
  72. package/common/cpp/{jsi → audioapi/jsi}/RuntimeLifecycleMonitor.cpp +1 -5
  73. package/common/cpp/{jsi → audioapi/jsi}/RuntimeLifecycleMonitor.h +3 -0
  74. package/common/cpp/audioapi/libs/dsp/common.h +47 -0
  75. package/common/cpp/audioapi/libs/dsp/delay.h +717 -0
  76. package/common/cpp/audioapi/libs/dsp/fft.h +523 -0
  77. package/common/cpp/audioapi/libs/dsp/perf.h +84 -0
  78. package/common/cpp/audioapi/libs/dsp/spectral.h +496 -0
  79. package/common/cpp/audioapi/libs/dsp/windows.h +219 -0
  80. package/common/cpp/audioapi/libs/signalsmith-stretch.h +637 -0
  81. package/ios/{AudioAPIModule.mm → audioapi/ios/AudioAPIModule.mm} +1 -1
  82. package/ios/{core → audioapi/ios/core}/AudioDecoder.mm +4 -4
  83. package/ios/{core → audioapi/ios/core}/AudioPlayer.m +3 -3
  84. package/ios/{core → audioapi/ios/core}/IOSAudioPlayer.mm +4 -4
  85. package/lib/module/core/BaseAudioContext.js +4 -0
  86. package/lib/module/core/BaseAudioContext.js.map +1 -1
  87. package/lib/module/core/StretcherNode.js +12 -0
  88. package/lib/module/core/StretcherNode.js.map +1 -0
  89. package/lib/module/index.js +1 -0
  90. package/lib/module/index.js.map +1 -1
  91. package/lib/module/index.web.js +1 -1
  92. package/lib/module/index.web.js.map +1 -1
  93. package/lib/typescript/core/BaseAudioContext.d.ts +2 -0
  94. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  95. package/lib/typescript/core/StretcherNode.d.ts +10 -0
  96. package/lib/typescript/core/StretcherNode.d.ts.map +1 -0
  97. package/lib/typescript/index.d.ts +1 -0
  98. package/lib/typescript/index.d.ts.map +1 -1
  99. package/lib/typescript/index.web.d.ts +1 -1
  100. package/lib/typescript/index.web.d.ts.map +1 -1
  101. package/lib/typescript/interfaces.d.ts +5 -0
  102. package/lib/typescript/interfaces.d.ts.map +1 -1
  103. package/package.json +6 -6
  104. package/src/core/BaseAudioContext.ts +5 -0
  105. package/src/core/StretcherNode.ts +15 -0
  106. package/src/index.ts +1 -0
  107. package/src/index.web.ts +1 -0
  108. package/src/interfaces.ts +6 -0
  109. package/common/cpp/installer/AudioAPIModuleInstaller.cpp +0 -49
  110. /package/android/src/main/cpp/{libs → audioapi/android/libs}/pffft.h +0 -0
  111. /package/common/cpp/{core → audioapi/core}/Constants.h +0 -0
  112. /package/common/cpp/{core → audioapi/core/sources}/AudioBuffer.h +0 -0
  113. /package/common/cpp/{types → audioapi/core/types}/BiquadFilterType.h +0 -0
  114. /package/common/cpp/{types → audioapi/core/types}/ChannelCountMode.h +0 -0
  115. /package/common/cpp/{types → audioapi/core/types}/ChannelInterpretation.h +0 -0
  116. /package/common/cpp/{types → audioapi/core/types}/ContextState.h +0 -0
  117. /package/common/cpp/{types → audioapi/core/types}/OscillatorType.h +0 -0
  118. /package/common/cpp/{types → audioapi/core/types}/ParamChangeEventType.h +0 -0
  119. /package/common/cpp/{core → audioapi/core/utils}/AudioArray.h +0 -0
  120. /package/common/cpp/{core → audioapi/core/utils}/AudioDecoder.h +0 -0
  121. /package/common/cpp/{core → audioapi/core/utils}/AudioNodeManager.h +0 -0
  122. /package/common/cpp/{utils → audioapi/core/utils}/Locker.h +0 -0
  123. /package/common/cpp/{utils → audioapi/dsp}/AudioUtils.h +0 -0
  124. /package/common/cpp/{jsi → audioapi/jsi}/JsiPromise.h +0 -0
  125. /package/common/cpp/{libs → audioapi/libs}/miniaudio.h +0 -0
  126. /package/ios/{AudioAPIModule.h → audioapi/ios/AudioAPIModule.h} +0 -0
  127. /package/ios/{core → audioapi/ios/core}/AudioPlayer.h +0 -0
  128. /package/ios/{core → audioapi/ios/core}/IOSAudioPlayer.h +0 -0
@@ -22,7 +22,17 @@ Pod::Spec.new do |s|
22
22
  s.platforms = { :ios => min_ios_version_supported }
23
23
  s.source = { :git => "https://github.com/software-mansion-labs/react-native-audio-api.git", :tag => "#{s.version}" }
24
24
 
25
- s.source_files = "ios/**/*.{h,m,mm}", "common/cpp/**/*.{hpp,cpp,c,h}"
25
+ s.subspec "audioapi" do |ss|
26
+ ss.source_files = "common/cpp/audioapi/**/*.{cpp,c,h}"
27
+ ss.header_dir = "audioapi"
28
+ ss.header_mappings_dir = "common/cpp/audioapi"
29
+
30
+ ss.subspec "ios" do |sss|
31
+ sss.source_files = "ios/audioapi/**/*.{mm,h,m}"
32
+ sss.header_dir = "audioapi"
33
+ sss.header_mappings_dir = "ios/ausioapi"
34
+ end
35
+ end
26
36
 
27
37
  s.ios.frameworks = 'CoreFoundation', 'CoreAudio', 'AudioToolbox', 'Accelerate'
28
38
 
@@ -14,54 +14,15 @@ endif()
14
14
  include("${REACT_NATIVE_DIR}/ReactAndroid/cmake-utils/folly-flags.cmake")
15
15
  add_compile_options(${folly_FLAGS})
16
16
 
17
- file(GLOB_RECURSE ANDROID_CPP_SOURCES CONFIGURE_DEPENDS "src/main/cpp/*.cpp")
18
- file(GLOB_RECURSE ANDROID_C_SOURCES CONFIGURE_DEPENDS "src/main/cpp/*.c")
19
- file(GLOB_RECURSE COMMON_CPP_SOURCES CONFIGURE_DEPENDS "../common/cpp/*.cpp")
17
+ # string(APPEND CMAKE_CXX_FLAGS
18
+ # " -fexceptions -fno-omit-frame-pointer -frtti -fstack-protector-all\
19
+ # -std=c++${CMAKE_CXX_STANDARD} -Wall -Werror")
20
20
 
21
- add_library(react-native-audio-api SHARED ${ANDROID_CPP_SOURCES} ${ANDROID_C_SOURCES} ${COMMON_CPP_SOURCES})
22
-
23
- file(GLOB ANDROID_CPP_DIR CONFIGURE_DEPENDS "src/main/cpp/**")
24
- file(GLOB COMMON_CPP_DIR CONFIGURE_DEPENDS "../common/cpp/**")
25
-
26
- target_include_directories(
27
- react-native-audio-api
28
- PUBLIC
29
- ${ANDROID_CPP_DIR}
30
- ${COMMON_CPP_DIR}
31
- )
32
-
33
- target_include_directories(
34
- react-native-audio-api
35
- PRIVATE
36
- "${REACT_NATIVE_DIR}/ReactCommon"
37
- "${REACT_NATIVE_DIR}/ReactAndroid/src/main/jni/react/turbomodule"
38
- "${REACT_NATIVE_DIR}/ReactCommon/react/nativemodule/core/ReactCommon"
39
- "${REACT_NATIVE_DIR}/ReactCommon/callinvoker"
40
- )
41
-
42
- find_package(ReactAndroid REQUIRED CONFIG)
43
- find_package(fbjni REQUIRED CONFIG)
44
- find_package(oboe REQUIRED CONFIG)
45
-
46
- set(LINK_LIBRARIES
47
- ReactAndroid::jsi
48
- fbjni::fbjni
49
- android
50
- log
51
- oboe::oboe
52
- )
53
-
54
- if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
55
- set(RN_VERSION_LINK_LIBRARIES
56
- ReactAndroid::reactnative
57
- )
58
- else()
59
- set(RN_VERSION_LINK_LIBRARIES
60
- ReactAndroid::folly_runtime
61
- ReactAndroid::react_nativemodule_core
62
- ReactAndroid::glog
63
- ReactAndroid::reactnativejni
64
- )
21
+ if(${IS_NEW_ARCHITECTURE_ENABLED})
22
+ string(APPEND CMAKE_CXX_FLAGS " -DRCT_NEW_ARCH_ENABLED")
65
23
  endif()
66
24
 
67
- target_link_libraries(react-native-audio-api ${LINK_LIBRARIES} ${RN_VERSION_LINK_LIBRARIES})
25
+ set(ANDROID_CPP_DIR "${CMAKE_SOURCE_DIR}/src/main/cpp")
26
+ set(COMMON_CPP_DIR "${CMAKE_SOURCE_DIR}/../common/cpp")
27
+
28
+ add_subdirectory("${ANDROID_CPP_DIR}/audioapi")
@@ -0,0 +1,44 @@
1
+ cmake_minimum_required(VERSION 3.12.0)
2
+
3
+ file(GLOB_RECURSE ANDROID_CPP_SOURCES CONFIGURE_DEPENDS "${ANDROID_CPP_DIR}/audioapi/*.cpp")
4
+ file(GLOB_RECURSE ANDROID_C_SOURCES CONFIGURE_DEPENDS "${ANDROID_CPP_DIR}/audioapi/*.c")
5
+ file(GLOB_RECURSE COMMON_CPP_SOURCES CONFIGURE_DEPENDS "${COMMON_CPP_DIR}/audioapi/*.cpp")
6
+
7
+ add_library(react-native-audio-api SHARED ${ANDROID_CPP_SOURCES} ${ANDROID_C_SOURCES} ${COMMON_CPP_SOURCES})
8
+
9
+ find_package(ReactAndroid REQUIRED CONFIG)
10
+ find_package(fbjni REQUIRED CONFIG)
11
+ find_package(oboe REQUIRED CONFIG)
12
+
13
+ target_include_directories(
14
+ react-native-audio-api
15
+ PRIVATE
16
+ "${COMMON_CPP_DIR}"
17
+ "${ANDROID_CPP_DIR}"
18
+ "${REACT_NATIVE_DIR}/ReactCommon"
19
+ "${REACT_NATIVE_DIR}/ReactAndroid/src/main/jni/react/turbomodule"
20
+ "${REACT_NATIVE_DIR}/ReactCommon/callinvoker"
21
+ )
22
+
23
+ set(LINK_LIBRARIES
24
+ ReactAndroid::jsi
25
+ fbjni::fbjni
26
+ android
27
+ log
28
+ oboe::oboe
29
+ )
30
+
31
+ if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
32
+ set(RN_VERSION_LINK_LIBRARIES
33
+ ReactAndroid::reactnative
34
+ )
35
+ else()
36
+ set(RN_VERSION_LINK_LIBRARIES
37
+ ReactAndroid::folly_runtime
38
+ ReactAndroid::react_nativemodule_core
39
+ ReactAndroid::glog
40
+ ReactAndroid::reactnativejni
41
+ )
42
+ endif()
43
+
44
+ target_link_libraries(react-native-audio-api ${LINK_LIBRARIES} ${RN_VERSION_LINK_LIBRARIES})
@@ -1,7 +1,4 @@
1
- #include "AudioAPIModule.h"
2
-
3
- #include "AudioContext.h"
4
- #include "AudioContextHostObject.h"
1
+ #include <audioapi/android/AudioAPIModule.h>
5
2
 
6
3
  namespace audioapi {
7
4
 
@@ -1,12 +1,13 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/AudioAPIModuleInstaller.h>
4
+
3
5
  #include <ReactCommon/CallInvokerHolder.h>
4
6
  #include <fbjni/fbjni.h>
5
7
  #include <react/jni/CxxModuleWrapper.h>
6
8
  #include <react/jni/JMessageQueueThread.h>
7
9
  #include <memory>
8
10
  #include <utility>
9
- #include "AudioAPIModuleInstaller.h"
10
11
 
11
12
  namespace audioapi {
12
13
 
@@ -1,5 +1,6 @@
1
+ #include <audioapi/android/AudioAPIModule.h>
2
+
1
3
  #include <fbjni/fbjni.h>
2
- #include "AudioAPIModule.h"
3
4
 
4
5
  using namespace audioapi;
5
6
 
@@ -1,11 +1,11 @@
1
- #include "AudioDecoder.h"
1
+ #include <audioapi/core/utils/AudioArray.h>
2
+ #include <audioapi/core/utils/AudioBus.h>
3
+ #include <audioapi/core/utils/AudioDecoder.h>
2
4
 
3
- #define MINIAUDIO_IMPLEMENTATION
4
5
  #include <android/log.h>
5
- #include <miniaudio.h>
6
6
 
7
- #include "AudioArray.h"
8
- #include "AudioBus.h"
7
+ #define MINIAUDIO_IMPLEMENTATION
8
+ #include <audioapi/libs/miniaudio.h>
9
9
 
10
10
  namespace audioapi {
11
11
 
@@ -1,10 +1,8 @@
1
- #include <cassert>
2
-
3
- #include "AudioArray.h"
4
- #include "AudioBus.h"
5
- #include "AudioContext.h"
6
- #include "AudioPlayer.h"
7
- #include "Constants.h"
1
+ #include <audioapi/android/core/AudioPlayer.h>
2
+ #include <audioapi/core/AudioContext.h>
3
+ #include <audioapi/core/Constants.h>
4
+ #include <audioapi/core/utils/AudioArray.h>
5
+ #include <audioapi/core/utils/AudioBus.h>
8
6
 
9
7
  namespace audioapi {
10
8
 
@@ -3,6 +3,7 @@
3
3
  #include <oboe/Oboe.h>
4
4
  #include <functional>
5
5
  #include <memory>
6
+ #include <cassert>
6
7
 
7
8
  namespace audioapi {
8
9
 
@@ -61,7 +61,7 @@
61
61
  # define _USE_MATH_DEFINES // ask gently MSVC to define M_PI, M_SQRT2 etc.
62
62
  #endif
63
63
 
64
- #include "pffft.h"
64
+ #include <audioapi/android/libs/pffft.h>
65
65
  #include <stdlib.h>
66
66
  #include <stdio.h>
67
67
  #include <math.h>
@@ -1734,7 +1734,7 @@ void pffft_zconvolve_accumulate(PFFFT_Setup *s, const float *a, const float *b,
1734
1734
  bi0 = ((v4sf_union*)vb)[1].f[0];
1735
1735
  abr0 = ((v4sf_union*)vab)[0].f[0];
1736
1736
  abi0 = ((v4sf_union*)vab)[1].f[0];
1737
-
1737
+
1738
1738
  #ifdef ZCONVOLVE_USING_INLINE_ASM // inline asm version, unfortunately miscompiled by clang 3.2, at least on ubuntu.. so this will be restricted to gcc
1739
1739
  const float *a_ = a, *b_ = b; float *ab_ = ab;
1740
1740
  int N = Ncvec;
@@ -24,6 +24,7 @@ class AudioAPIPackage :
24
24
  }
25
25
 
26
26
  override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
27
+
27
28
  ReactModuleInfoProvider(
28
29
  fun (): Map<String, ReactModuleInfo> =
29
30
  mapOf(
@@ -1,22 +1,24 @@
1
1
  #pragma once
2
2
 
3
- #include <JsiPromise.h>
4
- #include "AudioContext.h"
5
- #include "AudioContextHostObject.h"
3
+ #include <audioapi/jsi/JsiPromise.h>
4
+ #include <audioapi/core/AudioContext.h>
5
+ #include <audioapi/HostObjects/AudioContextHostObject.h>
6
+
7
+ #include <memory>
6
8
 
7
9
  namespace audioapi {
8
10
 
9
11
  using namespace facebook;
10
12
 
11
13
  class AudioAPIModuleInstaller {
12
- public:
14
+ public:
13
15
  static void injectJSIBindings(jsi::Runtime *jsiRuntime, const std::shared_ptr<react::CallInvoker> &jsCallInvoker) {
14
16
  auto createAudioContext = getCreateAudioContextFunction(jsiRuntime, jsCallInvoker);
15
17
  jsiRuntime->global().setProperty(
16
18
  *jsiRuntime, "createAudioContext", createAudioContext);
17
19
  }
18
20
 
19
- private:
21
+ private:
20
22
  static jsi::Function getCreateAudioContextFunction(jsi::Runtime *jsiRuntime, const std::shared_ptr<react::CallInvoker> &jsCallInvoker) {
21
23
  return jsi::Function::createFromHostFunction(
22
24
  *jsiRuntime,
@@ -34,8 +36,8 @@ private:
34
36
  auto sampleRate = static_cast<float>(args[0].getNumber());
35
37
  audioContext = std::make_shared<AudioContext>(sampleRate);
36
38
  }
37
-
38
- auto promiseVendor = std::make_shared<PromiseVendor>(jsiRuntime, jsCallInvoker);
39
+
40
+ auto promiseVendor = std::make_shared<PromiseVendor>(jsiRuntime, jsCallInvoker);
39
41
 
40
42
  auto audioContextHostObject = std::make_shared<AudioContextHostObject>(
41
43
  audioContext, promiseVendor);
@@ -1,12 +1,12 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/core/analysis/AnalyserNode.h>
4
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
5
+
3
6
  #include <memory>
4
7
  #include <string>
5
8
  #include <vector>
6
9
 
7
- #include "AnalyserNode.h"
8
- #include "AudioNodeHostObject.h"
9
-
10
10
  namespace audioapi {
11
11
  using namespace facebook;
12
12
 
@@ -1,13 +1,13 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/jsi/JsiHostObject.h>
4
+ #include <audioapi/core/sources/AudioBuffer.h>
5
+
3
6
  #include <jsi/jsi.h>
4
7
  #include <memory>
5
8
  #include <vector>
6
9
  #include <cstddef>
7
10
 
8
- #include <JsiHostObject.h>
9
- #include "AudioBuffer.h"
10
-
11
11
  namespace audioapi {
12
12
  using namespace facebook;
13
13
 
@@ -1,13 +1,13 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/HostObjects/AudioBufferHostObject.h>
4
+ #include <audioapi/core/sources/AudioBufferSourceNode.h>
5
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
6
+ #include <audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h>
7
+
3
8
  #include <memory>
4
9
  #include <vector>
5
10
 
6
- #include "AudioBufferHostObject.h"
7
- #include "AudioBufferSourceNode.h"
8
- #include "AudioParamHostObject.h"
9
- #include "AudioScheduledSourceNodeHostObject.h"
10
-
11
11
  namespace audioapi {
12
12
  using namespace facebook;
13
13
 
@@ -23,8 +23,7 @@ class AudioBufferSourceNodeHostObject
23
23
  JSI_EXPORT_PROPERTY_GETTER(AudioBufferSourceNodeHostObject, loopStart),
24
24
  JSI_EXPORT_PROPERTY_GETTER(AudioBufferSourceNodeHostObject, loopEnd),
25
25
  JSI_EXPORT_PROPERTY_GETTER(AudioBufferSourceNodeHostObject, detune),
26
- JSI_EXPORT_PROPERTY_GETTER(
27
- AudioBufferSourceNodeHostObject, playbackRate));
26
+ JSI_EXPORT_PROPERTY_GETTER(AudioBufferSourceNodeHostObject, playbackRate));
28
27
 
29
28
  addSetters(
30
29
  JSI_EXPORT_PROPERTY_SETTER(AudioBufferSourceNodeHostObject, loop),
@@ -1,13 +1,13 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/core/AudioContext.h>
4
+ #include <audioapi/HostObjects/BaseAudioContextHostObject.h>
5
+
3
6
  #include <jsi/jsi.h>
4
7
  #include <memory>
5
8
  #include <utility>
6
9
  #include <vector>
7
10
 
8
- #include "AudioContext.h"
9
- #include "BaseAudioContextHostObject.h"
10
-
11
11
  namespace audioapi {
12
12
  using namespace facebook;
13
13
 
@@ -1,11 +1,11 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/core/destinations/AudioDestinationNode.h>
4
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
5
+
3
6
  #include <memory>
4
7
  #include <vector>
5
8
 
6
- #include "AudioDestinationNode.h"
7
- #include "AudioNodeHostObject.h"
8
-
9
9
  namespace audioapi {
10
10
  using namespace facebook;
11
11
 
@@ -1,12 +1,12 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/jsi/JsiHostObject.h>
4
+ #include <audioapi/core/AudioNode.h>
5
+
3
6
  #include <jsi/jsi.h>
4
7
  #include <memory>
5
8
  #include <vector>
6
9
 
7
- #include <JsiHostObject.h>
8
- #include "AudioNode.h"
9
-
10
10
  namespace audioapi {
11
11
  using namespace facebook;
12
12
 
@@ -1,13 +1,13 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/jsi/JsiHostObject.h>
4
+ #include <audioapi/core/AudioParam.h>
5
+
3
6
  #include <jsi/jsi.h>
4
7
  #include <memory>
5
8
  #include <vector>
6
9
  #include <cstddef>
7
10
 
8
- #include <JsiHostObject.h>
9
- #include "AudioParam.h"
10
-
11
11
  namespace audioapi {
12
12
  using namespace facebook;
13
13
 
@@ -1,11 +1,11 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
4
+ #include <audioapi/core/sources/AudioScheduledSourceNode.h>
5
+
3
6
  #include <memory>
4
7
  #include <vector>
5
8
 
6
- #include "AudioNodeHostObject.h"
7
- #include "AudioScheduledSourceNode.h"
8
-
9
9
  namespace audioapi {
10
10
  using namespace facebook;
11
11
 
@@ -1,25 +1,25 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/jsi/JsiHostObject.h>
4
+ #include <audioapi/jsi/JsiPromise.h>
5
+ #include <audioapi/HostObjects/AudioBufferHostObject.h>
6
+ #include <audioapi/HostObjects/AudioBufferSourceNodeHostObject.h>
7
+ #include <audioapi/HostObjects/AudioDestinationNodeHostObject.h>
8
+ #include <audioapi/core/BaseAudioContext.h>
9
+ #include <audioapi/HostObjects/BiquadFilterNodeHostObject.h>
10
+ #include <audioapi/HostObjects/GainNodeHostObject.h>
11
+ #include <audioapi/HostObjects/OscillatorNodeHostObject.h>
12
+ #include <audioapi/HostObjects/PeriodicWaveHostObject.h>
13
+ #include <audioapi/HostObjects/StereoPannerNodeHostObject.h>
14
+ #include <audioapi/HostObjects/AnalyserNodeHostObject.h>
15
+ #include <audioapi/HostObjects/StretcherNodeHostObject.h>
16
+
3
17
  #include <jsi/jsi.h>
4
18
  #include <memory>
5
19
  #include <utility>
6
20
  #include <vector>
7
21
  #include <cstddef>
8
22
 
9
- #include <JsiHostObject.h>
10
- #include <JsiPromise.h>
11
-
12
- #include "AudioBufferHostObject.h"
13
- #include "AudioBufferSourceNodeHostObject.h"
14
- #include "AudioDestinationNodeHostObject.h"
15
- #include "BaseAudioContext.h"
16
- #include "BiquadFilterNodeHostObject.h"
17
- #include "GainNodeHostObject.h"
18
- #include "OscillatorNodeHostObject.h"
19
- #include "PeriodicWaveHostObject.h"
20
- #include "StereoPannerNodeHostObject.h"
21
- #include "AnalyserNodeHostObject.h"
22
-
23
23
  namespace audioapi {
24
24
  using namespace facebook;
25
25
 
@@ -44,6 +44,7 @@ class BaseAudioContextHostObject : public JsiHostObject {
44
44
  JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createBuffer),
45
45
  JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createPeriodicWave),
46
46
  JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createAnalyser),
47
+ JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, createStretcher),
47
48
  JSI_EXPORT_FUNCTION(BaseAudioContextHostObject, decodeAudioDataSource));
48
49
  }
49
50
 
@@ -140,6 +141,12 @@ class BaseAudioContextHostObject : public JsiHostObject {
140
141
  return jsi::Object::createFromHostObject(runtime, analyserHostObject);
141
142
  }
142
143
 
144
+ JSI_HOST_FUNCTION(createStretcher) {
145
+ auto stretcher = context_->createStretcher();
146
+ auto stretcherHostObject = std::make_shared<StretcherNodeHostObject>(stretcher);
147
+ return jsi::Object::createFromHostObject(runtime, stretcherHostObject);
148
+ }
149
+
143
150
  JSI_HOST_FUNCTION(decodeAudioDataSource) {
144
151
  auto sourcePath = args[0].getString(runtime).utf8(runtime);
145
152
 
@@ -1,13 +1,13 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/core/effects/BiquadFilterNode.h>
6
+
3
7
  #include <memory>
4
8
  #include <string>
5
9
  #include <vector>
6
10
 
7
- #include "AudioNodeHostObject.h"
8
- #include "AudioParamHostObject.h"
9
- #include "BiquadFilterNode.h"
10
-
11
11
  namespace audioapi {
12
12
  using namespace facebook;
13
13
 
@@ -1,12 +1,12 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/core/effects/GainNode.h>
6
+
3
7
  #include <memory>
4
8
  #include <vector>
5
9
 
6
- #include "AudioNodeHostObject.h"
7
- #include "AudioParamHostObject.h"
8
- #include "GainNode.h"
9
-
10
10
  namespace audioapi {
11
11
  using namespace facebook;
12
12
 
@@ -19,9 +19,9 @@ class GainNodeHostObject : public AudioNodeHostObject {
19
19
 
20
20
  JSI_PROPERTY_GETTER(gain) {
21
21
  auto gainNode = std::static_pointer_cast<GainNode>(node_);
22
- auto gainParam_ =
22
+ auto gainParam =
23
23
  std::make_shared<AudioParamHostObject>(gainNode->getGainParam());
24
- return jsi::Object::createFromHostObject(runtime, gainParam_);
24
+ return jsi::Object::createFromHostObject(runtime, gainParam);
25
25
  }
26
26
  };
27
27
  } // namespace audioapi
@@ -1,14 +1,14 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/HostObjects/AudioScheduledSourceNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/HostObjects/PeriodicWaveHostObject.h>
6
+ #include <audioapi/core/sources/OscillatorNode.h>
7
+
3
8
  #include <memory>
4
9
  #include <string>
5
10
  #include <vector>
6
11
 
7
- #include "AudioParamHostObject.h"
8
- #include "AudioScheduledSourceNodeHostObject.h"
9
- #include "OscillatorNode.h"
10
- #include "PeriodicWaveHostObject.h"
11
-
12
12
  namespace audioapi {
13
13
  using namespace facebook;
14
14
 
@@ -1,11 +1,11 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/core/effects/PeriodicWave.h>
4
+
3
5
  #include <jsi/jsi.h>
4
6
  #include <memory>
5
7
  #include <vector>
6
8
 
7
- #include "PeriodicWave.h"
8
-
9
9
  namespace audioapi {
10
10
  using namespace facebook;
11
11
 
@@ -1,13 +1,13 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/core/effects/StereoPannerNode.h>
6
+
3
7
  #include <memory>
4
8
  #include <string>
5
9
  #include <vector>
6
10
 
7
- #include "AudioNodeHostObject.h"
8
- #include "AudioParamHostObject.h"
9
- #include "StereoPannerNode.h"
10
-
11
11
  namespace audioapi {
12
12
  using namespace facebook;
13
13
 
@@ -0,0 +1,35 @@
1
+ #pragma once
2
+
3
+ #include <audioapi/HostObjects/AudioNodeHostObject.h>
4
+ #include <audioapi/HostObjects/AudioParamHostObject.h>
5
+ #include <audioapi/core/effects/StretcherNode.h>
6
+
7
+ #include <memory>
8
+ #include <vector>
9
+
10
+ namespace audioapi {
11
+
12
+ using namespace facebook;
13
+
14
+ class StretcherNodeHostObject : public AudioNodeHostObject {
15
+ public:
16
+ explicit StretcherNodeHostObject(const std::shared_ptr<StretcherNode> &node): AudioNodeHostObject(node) {
17
+ addGetters(JSI_EXPORT_PROPERTY_GETTER(StretcherNodeHostObject, rate),
18
+ JSI_EXPORT_PROPERTY_GETTER(StretcherNodeHostObject, semitones));
19
+ }
20
+
21
+ JSI_PROPERTY_GETTER(rate) {
22
+ auto stretcherNode = std::static_pointer_cast<StretcherNode>(node_);
23
+ auto rateParam =
24
+ std::make_shared<AudioParamHostObject>(stretcherNode->getRateParam());
25
+ return jsi::Object::createFromHostObject(runtime, rateParam);
26
+ }
27
+
28
+ JSI_PROPERTY_GETTER(semitones) {
29
+ auto stretcherNode = std::static_pointer_cast<StretcherNode>(node_);
30
+ auto semitonesParam =
31
+ std::make_shared<AudioParamHostObject>(stretcherNode->getSemitonesParam());
32
+ return jsi::Object::createFromHostObject(runtime, semitonesParam);
33
+ }
34
+ };
35
+ } // namespace audioapi
@@ -1,13 +1,13 @@
1
1
  #ifdef ANDROID
2
- #include "AudioPlayer.h"
2
+ #include <audioapi/android/core/AudioPlayer.h>
3
3
  #else
4
- #include "IOSAudioPlayer.h"
4
+ #include <audioapi/ios/core/IOSAudioPlayer.h>
5
5
  #endif
6
6
 
7
- #include "AudioContext.h"
8
- #include "AudioDecoder.h"
9
- #include "AudioDestinationNode.h"
10
- #include "AudioNodeManager.h"
7
+ #include <audioapi/core/AudioContext.h>
8
+ #include <audioapi/core/destinations/AudioDestinationNode.h>
9
+ #include <audioapi/core/utils/AudioDecoder.h>
10
+ #include <audioapi/core/utils/AudioNodeManager.h>
11
11
 
12
12
  namespace audioapi {
13
13
  AudioContext::AudioContext() : BaseAudioContext() {
@@ -1,10 +1,10 @@
1
1
  #pragma once
2
2
 
3
+ #include <audioapi/core/BaseAudioContext.h>
4
+
3
5
  #include <memory>
4
6
  #include <functional>
5
7
 
6
- #include "BaseAudioContext.h"
7
-
8
8
  namespace audioapi {
9
9
  #ifdef ANDROID
10
10
  class AudioPlayer;