react-native-audio-api 0.4.10 → 0.4.11

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 (76) hide show
  1. package/android/build.gradle +2 -0
  2. package/android/src/main/cpp/{core/AudioAPIInstaller.cpp → AudioAPIModule.cpp} +12 -11
  3. package/android/src/main/cpp/{core/AudioAPIInstaller.h → AudioAPIModule.h} +9 -11
  4. package/android/src/main/cpp/OnLoad.cpp +2 -2
  5. package/android/src/main/cpp/core/AudioDecoder.cpp +5 -5
  6. package/android/src/main/cpp/core/AudioPlayer.cpp +12 -0
  7. package/android/src/main/cpp/core/AudioPlayer.h +2 -0
  8. package/android/src/main/java/com/swmansion/audioapi/{module/AudioAPIInstaller.kt → AudioAPIModule.kt} +22 -10
  9. package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +31 -6
  10. package/android/src/oldarch/NativeAudioAPIModuleSpec.java +37 -0
  11. package/common/cpp/HostObjects/AudioContextHostObject.h +34 -1
  12. package/common/cpp/core/AnalyserNode.cpp +2 -2
  13. package/common/cpp/core/AnalyserNode.h +1 -1
  14. package/common/cpp/core/AudioBuffer.cpp +4 -2
  15. package/common/cpp/core/AudioBuffer.h +1 -1
  16. package/common/cpp/core/AudioBufferSourceNode.cpp +3 -3
  17. package/common/cpp/core/AudioBufferSourceNode.h +3 -3
  18. package/common/cpp/core/AudioContext.cpp +10 -0
  19. package/common/cpp/core/AudioContext.h +2 -0
  20. package/common/cpp/core/AudioDecoder.h +2 -1
  21. package/common/cpp/core/AudioDestinationNode.h +1 -1
  22. package/common/cpp/core/AudioNode.cpp +1 -1
  23. package/common/cpp/core/AudioNode.h +1 -1
  24. package/common/cpp/core/AudioScheduledSourceNode.cpp +1 -1
  25. package/common/cpp/core/AudioScheduledSourceNode.h +1 -1
  26. package/common/cpp/core/BiquadFilterNode.cpp +1 -1
  27. package/common/cpp/core/BiquadFilterNode.h +1 -1
  28. package/common/cpp/core/GainNode.cpp +3 -1
  29. package/common/cpp/core/GainNode.h +1 -1
  30. package/common/cpp/core/OscillatorNode.cpp +3 -1
  31. package/common/cpp/core/OscillatorNode.h +1 -1
  32. package/common/cpp/core/StereoPannerNode.cpp +1 -1
  33. package/common/cpp/core/StereoPannerNode.h +1 -1
  34. package/common/cpp/installer/AudioAPIModuleInstaller.cpp +49 -0
  35. package/common/cpp/installer/AudioAPIModuleInstaller.h +49 -0
  36. package/ios/AudioAPIModule.h +1 -1
  37. package/ios/AudioAPIModule.mm +10 -3
  38. package/ios/core/AudioDecoder.mm +2 -3
  39. package/ios/core/AudioPlayer.h +14 -0
  40. package/ios/core/AudioPlayer.m +85 -24
  41. package/ios/core/IOSAudioPlayer.h +2 -0
  42. package/ios/core/IOSAudioPlayer.mm +10 -0
  43. package/lib/module/core/AudioContext.js +7 -1
  44. package/lib/module/core/AudioContext.js.map +1 -1
  45. package/lib/module/index.js +11 -3
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/specs/NativeAudioAPIModule.js +5 -0
  48. package/lib/module/specs/NativeAudioAPIModule.js.map +1 -0
  49. package/lib/module/web-core/AudioContext.js +6 -0
  50. package/lib/module/web-core/AudioContext.js.map +1 -1
  51. package/lib/typescript/core/AudioContext.d.ts +2 -0
  52. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  53. package/lib/typescript/index.d.ts +4 -0
  54. package/lib/typescript/index.d.ts.map +1 -1
  55. package/lib/typescript/interfaces.d.ts +6 -1
  56. package/lib/typescript/interfaces.d.ts.map +1 -1
  57. package/lib/typescript/specs/NativeAudioAPIModule.d.ts +7 -0
  58. package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -0
  59. package/lib/typescript/web-core/AudioContext.d.ts +3 -1
  60. package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
  61. package/package.json +9 -7
  62. package/src/core/AudioContext.ts +9 -1
  63. package/src/index.ts +16 -3
  64. package/src/interfaces.ts +7 -1
  65. package/src/specs/NativeAudioAPIModule.ts +7 -0
  66. package/src/web-core/AudioContext.tsx +9 -1
  67. package/android/src/main/java/com/swmansion/audioapi/nativemodules/AudioAPIModule.kt +0 -26
  68. package/common/cpp/HostObjects/AudioAPIInstallerHostObject.h +0 -56
  69. package/lib/module/specs/global.d.js +0 -4
  70. package/lib/module/specs/global.d.js.map +0 -1
  71. package/lib/module/specs/install.js +0 -18
  72. package/lib/module/specs/install.js.map +0 -1
  73. package/lib/typescript/specs/install.d.ts +0 -7
  74. package/lib/typescript/specs/install.d.ts.map +0 -1
  75. package/src/specs/global.d.ts +0 -12
  76. package/src/specs/install.ts +0 -32
@@ -17,7 +17,7 @@ class StereoPannerNode : public AudioNode {
17
17
  [[nodiscard]] std::shared_ptr<AudioParam> getPanParam() const;
18
18
 
19
19
  protected:
20
- void processNode(AudioBus *processingBus, int framesToProcess) override;
20
+ void processNode(const std::shared_ptr<AudioBus>& processingBus, int framesToProcess) override;
21
21
 
22
22
  private:
23
23
  std::shared_ptr<AudioParam> panParam_;
@@ -0,0 +1,49 @@
1
+ // #include "AudioAPIModuleInstaller.h"
2
+ //
3
+ // #include "AudioContext.h"
4
+ // #include "AudioContextHostObject.h"
5
+ //
6
+ // namespace audioapi {
7
+ //
8
+ // AudioAPIModuleInstaller::AudioAPIModuleInstaller(
9
+ // jsi::Runtime *jsiRuntime,
10
+ // const std::shared_ptr<react::CallInvoker> &jsCallInvoker):
11
+ // jsiRuntime_(jsiRuntime), jsCallInvoker_(jsCallInvoker) {}
12
+ //
13
+ // static void AudioAPIModuleInstaller::injectJSIBindings() {
14
+ // auto createAudioContext = getCreateAudioContextFunction();
15
+ // jsiRuntime_->global().setProperty(
16
+ // *jsiRuntime_, "createAudioContext", createAudioContext);
17
+ // }
18
+ //
19
+ // jsi::Function AudioAPIModuleInstaller::getCreateAudioContextFunction() {
20
+ // return jsi::Function::createFromHostFunction(
21
+ // *jsiRuntime_,
22
+ // jsi::PropNameID::forAscii(*jsiRuntime_, "createAudioContext"),
23
+ // 0,
24
+ // [this](
25
+ // jsi::Runtime &runtime,
26
+ // const jsi::Value &thisValue,
27
+ // const jsi::Value *args,
28
+ // size_t count) -> jsi::Value {
29
+ // std::shared_ptr<AudioContext> audioContext;
30
+ // if (args[0].isUndefined()) {
31
+ // audioContext = std::make_shared<AudioContext>();
32
+ // } else {
33
+ // auto sampleRate = static_cast<float>(args[0].getNumber());
34
+ // audioContext = std::make_shared<AudioContext>(sampleRate);
35
+ // }
36
+ //
37
+ // auto promiseVendor = std::make_shared<PromiseVendor>(jsiRuntime_,
38
+ // jsCallInvoker_);
39
+ //
40
+ // auto audioContextHostObject =
41
+ // std::make_shared<AudioContextHostObject>(
42
+ // audioContext, promiseVendor);
43
+ //
44
+ // return jsi::Object::createFromHostObject(
45
+ // runtime, audioContextHostObject);
46
+ // });
47
+ // }
48
+ //
49
+ // } // namespace audioapi
@@ -0,0 +1,49 @@
1
+ #pragma once
2
+
3
+ #include <JsiPromise.h>
4
+ #include "AudioContext.h"
5
+ #include "AudioContextHostObject.h"
6
+
7
+ namespace audioapi {
8
+
9
+ using namespace facebook;
10
+
11
+ class AudioAPIModuleInstaller {
12
+ public:
13
+ static void injectJSIBindings(jsi::Runtime *jsiRuntime, const std::shared_ptr<react::CallInvoker> &jsCallInvoker) {
14
+ auto createAudioContext = getCreateAudioContextFunction(jsiRuntime, jsCallInvoker);
15
+ jsiRuntime->global().setProperty(
16
+ *jsiRuntime, "createAudioContext", createAudioContext);
17
+ }
18
+
19
+ private:
20
+ static jsi::Function getCreateAudioContextFunction(jsi::Runtime *jsiRuntime, const std::shared_ptr<react::CallInvoker> &jsCallInvoker) {
21
+ return jsi::Function::createFromHostFunction(
22
+ *jsiRuntime,
23
+ jsi::PropNameID::forAscii(*jsiRuntime, "createAudioContext"),
24
+ 0,
25
+ [jsiRuntime, jsCallInvoker](
26
+ jsi::Runtime &runtime,
27
+ const jsi::Value &thisValue,
28
+ const jsi::Value *args,
29
+ size_t count) -> jsi::Value {
30
+ std::shared_ptr<AudioContext> audioContext;
31
+ if (args[0].isUndefined()) {
32
+ audioContext = std::make_shared<AudioContext>();
33
+ } else {
34
+ auto sampleRate = static_cast<float>(args[0].getNumber());
35
+ audioContext = std::make_shared<AudioContext>(sampleRate);
36
+ }
37
+
38
+ auto promiseVendor = std::make_shared<PromiseVendor>(jsiRuntime, jsCallInvoker);
39
+
40
+ auto audioContextHostObject = std::make_shared<AudioContextHostObject>(
41
+ audioContext, promiseVendor);
42
+
43
+ return jsi::Object::createFromHostObject(
44
+ runtime, audioContextHostObject);
45
+ });
46
+ }
47
+ };
48
+
49
+ } // namespace audioapi
@@ -9,7 +9,7 @@
9
9
 
10
10
  @interface AudioAPIModule : RCTEventEmitter
11
11
  #ifdef RCT_NEW_ARCH_ENABLED
12
- <RCTCallInvokerModule>
12
+ <NativeAudioAPIModuleSpec, RCTCallInvokerModule>
13
13
  #else
14
14
  <RCTBridgeModule>
15
15
  #endif // RCT_NEW_ARCH_ENABLED
@@ -6,7 +6,7 @@
6
6
  #import <ReactCommon/RCTTurboModule.h>
7
7
  #endif // RCT_NEW_ARCH_ENABLED
8
8
 
9
- #import "AudioAPIInstallerHostObject.h"
9
+ #include "AudioAPIModuleInstaller.h"
10
10
 
11
11
  @implementation AudioAPIModule
12
12
 
@@ -38,11 +38,18 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install)
38
38
 
39
39
  assert(jsiRuntime != nullptr);
40
40
 
41
- auto hostObject = std::make_shared<audioapi::AudioAPIInstallerHostObject>(jsiRuntime, jsCallInvoker);
42
- hostObject->install();
41
+ audioapi::AudioAPIModuleInstaller::injectJSIBindings(jsiRuntime, jsCallInvoker);
43
42
 
44
43
  NSLog(@"Successfully installed JSI bindings for react-native-audio-api!");
45
44
  return @true;
46
45
  }
47
46
 
47
+ #ifdef RCT_NEW_ARCH_ENABLED
48
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
49
+ (const facebook::react::ObjCTurboModule::InitParams &)params
50
+ {
51
+ return std::make_shared<facebook::react::NativeAudioAPIModuleSpecJSI>(params);
52
+ }
53
+ #endif // RCT_NEW_ARCH_ENABLED
54
+
48
55
  @end
@@ -7,7 +7,7 @@
7
7
 
8
8
  namespace audioapi {
9
9
 
10
- AudioBus *AudioDecoder::decodeWithFilePath(const std::string &path) const
10
+ std::shared_ptr<AudioBus> AudioDecoder::decodeWithFilePath(const std::string &path) const
11
11
  {
12
12
  ma_decoder decoder;
13
13
  ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 2, sampleRate_);
@@ -23,7 +23,7 @@ AudioBus *AudioDecoder::decodeWithFilePath(const std::string &path) const
23
23
  ma_uint64 totalFrameCount;
24
24
  ma_decoder_get_length_in_pcm_frames(&decoder, &totalFrameCount);
25
25
 
26
- auto *audioBus = new AudioBus(static_cast<int>(totalFrameCount), 2, sampleRate_);
26
+ auto audioBus = std::make_shared<AudioBus>(static_cast<int>(totalFrameCount), 2, sampleRate_);
27
27
  auto *buffer = new float[totalFrameCount * 2];
28
28
 
29
29
  ma_uint64 framesDecoded;
@@ -32,7 +32,6 @@ AudioBus *AudioDecoder::decodeWithFilePath(const std::string &path) const
32
32
  NSLog(@"Failed to decode audio file: %s", path.c_str());
33
33
 
34
34
  delete[] buffer;
35
- delete audioBus;
36
35
  ma_decoder_uninit(&decoder);
37
36
 
38
37
  return nullptr;
@@ -9,10 +9,12 @@ typedef void (^RenderAudioBlock)(AudioBufferList *outputBuffer, int numFrames);
9
9
 
10
10
  @property (nonatomic, strong) AVAudioEngine *audioEngine;
11
11
  @property (nonatomic, weak) AVAudioSession *audioSession;
12
+ @property (nonatomic, weak) NSNotificationCenter *notificationCenter;
12
13
  @property (nonatomic, strong) AVAudioFormat *format;
13
14
  @property (nonatomic, strong) AVAudioSourceNode *sourceNode;
14
15
  @property (nonatomic, copy) RenderAudioBlock renderAudio;
15
16
  @property (nonatomic, assign) float sampleRate;
17
+ @property (nonatomic, assign) bool isRunning;
16
18
 
17
19
  - (instancetype)initWithRenderAudioBlock:(RenderAudioBlock)renderAudio;
18
20
 
@@ -24,6 +26,18 @@ typedef void (^RenderAudioBlock)(AudioBufferList *outputBuffer, int numFrames);
24
26
 
25
27
  - (void)stop;
26
28
 
29
+ - (void)resume;
30
+
31
+ - (void)suspend;
32
+
27
33
  - (void)cleanup;
28
34
 
35
+ - (void)setupAndInitAudioSession;
36
+
37
+ - (void)setupAndInitNotificationHandlers;
38
+
39
+ - (void)connectAudioEngine;
40
+
41
+ - (void)handleEngineConfigurationChange:(NSNotification *)notification;
42
+
29
43
  @end
@@ -8,15 +8,11 @@
8
8
  self.renderAudio = [renderAudio copy];
9
9
  self.audioEngine = [[AVAudioEngine alloc] init];
10
10
  self.audioEngine.mainMixerNode.outputVolume = 1;
11
+ self.isRunning = true;
11
12
 
12
- self.audioSession = AVAudioSession.sharedInstance;
13
+ [self setupAndInitAudioSession];
14
+ [self setupAndInitNotificationHandlers];
13
15
 
14
- // TODO:
15
- // We will probably want to change it to AVAudioSessionCategoryPlayAndRecord in the future.
16
- // Eventually we to make this a dynamic setting, if user of the lib wants to use recording features.
17
- // But setting a recording category might require some setup first, so lets skip it for now :)
18
- // [self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
19
- // [self.audioSession setActive:true error:&error];
20
16
 
21
17
  self.sampleRate = [self.audioSession sampleRate];
22
18
 
@@ -45,15 +41,10 @@
45
41
  self.renderAudio = [renderAudio copy];
46
42
  self.audioEngine = [[AVAudioEngine alloc] init];
47
43
  self.audioEngine.mainMixerNode.outputVolume = 1;
44
+ self.isRunning = true;
48
45
 
49
- self.audioSession = AVAudioSession.sharedInstance;
50
-
51
- // TODO:
52
- // We will probably want to change it to AVAudioSessionCategoryPlayAndRecord in the future.
53
- // Eventually we to make this a dynamic setting, if user of the lib wants to use recording features.
54
- // But setting a recording category might require some setup first, so lets skip it for now :)
55
- // [self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
56
- // [self.audioSession setActive:true error:&error];
46
+ [self setupAndInitAudioSession];
47
+ [self setupAndInitNotificationHandlers];
57
48
 
58
49
  self.sampleRate = sampleRate;
59
50
 
@@ -83,19 +74,13 @@
83
74
 
84
75
  - (void)start
85
76
  {
86
- [self.audioEngine attachNode:self.sourceNode];
87
- [self.audioEngine connect:self.sourceNode to:self.audioEngine.mainMixerNode format:self.format];
88
-
89
- if (!self.audioEngine.isRunning) {
90
- NSError *error = nil;
91
- if (![self.audioEngine startAndReturnError:&error]) {
92
- NSLog(@"Error starting audio engine: %@", [error localizedDescription]);
93
- }
94
- }
77
+ self.isRunning = true;
78
+ [self connectAudioEngine];
95
79
  }
96
80
 
97
81
  - (void)stop
98
82
  {
83
+ self.isRunning = false;
99
84
  [self.audioEngine detachNode:self.sourceNode];
100
85
 
101
86
  if (self.audioEngine.isRunning) {
@@ -110,6 +95,19 @@
110
95
  }
111
96
  }
112
97
 
98
+ - (void)suspend
99
+ {
100
+ [self.audioEngine pause];
101
+ self.isRunning = false;
102
+ }
103
+
104
+ - (void)resume
105
+ {
106
+ self.isRunning = true;
107
+ [self setupAndInitAudioSession];
108
+ [self connectAudioEngine];
109
+ }
110
+
113
111
  - (void)cleanup
114
112
  {
115
113
  self.audioEngine = nil;
@@ -131,4 +129,67 @@
131
129
  return noErr;
132
130
  }
133
131
 
132
+ - (void)setupAndInitAudioSession
133
+ {
134
+ NSError *error = nil;
135
+
136
+ if (!self.audioSession) {
137
+ self.audioSession = [AVAudioSession sharedInstance];
138
+ }
139
+
140
+ [self.audioSession setCategory:AVAudioSessionCategoryPlayback
141
+ mode:AVAudioSessionModeDefault
142
+ options:AVAudioSessionCategoryOptionDuckOthers|AVAudioSessionCategoryOptionAllowBluetooth|AVAudioSessionCategoryOptionAllowAirPlay
143
+ error:&error];
144
+
145
+ if (error != nil) {
146
+ NSLog(@"Error while configuring audio session: %@", [error localizedDescription]);
147
+ }
148
+
149
+ [self.audioSession setActive:true error:&error];
150
+
151
+ if (error != nil) {
152
+ NSLog(@"Error while activating audio session: %@", [error localizedDescription]);
153
+ }
154
+ }
155
+
156
+ - (void)setupAndInitNotificationHandlers
157
+ {
158
+ if (!self.notificationCenter) {
159
+ self.notificationCenter = [NSNotificationCenter defaultCenter];
160
+ }
161
+
162
+ [self.notificationCenter addObserver:self
163
+ selector:@selector(handleEngineConfigurationChange:)
164
+ name:AVAudioEngineConfigurationChangeNotification
165
+ object:nil];
166
+ }
167
+
168
+ - (void)connectAudioEngine
169
+ {
170
+ if ([self.audioEngine isRunning]) {
171
+ return;
172
+ }
173
+
174
+ [self.audioEngine attachNode:self.sourceNode];
175
+ [self.audioEngine connect:self.sourceNode to:self.audioEngine.mainMixerNode format:self.format];
176
+
177
+ if (![self.audioEngine isRunning]) {
178
+ NSError *error = nil;
179
+
180
+ if (![self.audioEngine startAndReturnError:&error]) {
181
+ NSLog(@"Error starting audio engine: %@", [error localizedDescription]);
182
+ }
183
+ }
184
+ }
185
+
186
+ - (void)handleEngineConfigurationChange:(NSNotification *)notification
187
+ {
188
+ if (!self.isRunning) {
189
+ return;
190
+ }
191
+
192
+ [self connectAudioEngine];
193
+ }
194
+
134
195
  @end
@@ -31,5 +31,7 @@ class IOSAudioPlayer {
31
31
 
32
32
  void start();
33
33
  void stop();
34
+ void resume();
35
+ void suspend();
34
36
  };
35
37
  } // namespace audioapi
@@ -83,6 +83,16 @@ void IOSAudioPlayer::stop()
83
83
  return [audioPlayer_ stop];
84
84
  }
85
85
 
86
+ void IOSAudioPlayer::resume()
87
+ {
88
+ return [audioPlayer_ resume];
89
+ }
90
+
91
+ void IOSAudioPlayer::suspend()
92
+ {
93
+ return [audioPlayer_ suspend];
94
+ }
95
+
86
96
  float IOSAudioPlayer::getSampleRate() const
87
97
  {
88
98
  return [audioPlayer_ getSampleRate];
@@ -7,10 +7,16 @@ export default class AudioContext extends BaseAudioContext {
7
7
  if (options && (options.sampleRate < 8000 || options.sampleRate > 96000)) {
8
8
  throw new NotSupportedError(`The provided sampleRate is not supported: ${options.sampleRate}`);
9
9
  }
10
- super(global.__AudioAPIInstaller.createAudioContext(options?.sampleRate));
10
+ super(global.createAudioContext(options?.sampleRate));
11
11
  }
12
12
  async close() {
13
13
  await this.context.close();
14
14
  }
15
+ async resume() {
16
+ await this.context.resume();
17
+ }
18
+ async suspend() {
19
+ await this.context.suspend();
20
+ }
15
21
  }
16
22
  //# sourceMappingURL=AudioContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseAudioContext","NotSupportedError","AudioContext","constructor","options","sampleRate","global","__AudioAPIInstaller","createAudioContext","close","context"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AAEjD,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,YAAY,SAASF,gBAAgB,CAAC;EACzDG,WAAWA,CAACC,OAA6B,EAAE;IACzC,IAAIA,OAAO,KAAKA,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EAAE;MACxE,MAAM,IAAIJ,iBAAiB,CACzB,6CAA6CG,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IAEA,KAAK,CAACC,MAAM,CAACC,mBAAmB,CAACC,kBAAkB,CAACJ,OAAO,EAAEC,UAAU,CAAC,CAAC;EAC3E;EAEA,MAAMI,KAAKA,CAAA,EAAuB;IAChC,MAAO,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAC/C;AACF","ignoreList":[]}
1
+ {"version":3,"names":["BaseAudioContext","NotSupportedError","AudioContext","constructor","options","sampleRate","global","createAudioContext","close","context","resume","suspend"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AAEjD,SAASC,iBAAiB,QAAQ,oBAAW;AAE7C,eAAe,MAAMC,YAAY,SAASF,gBAAgB,CAAC;EACzDG,WAAWA,CAACC,OAA6B,EAAE;IACzC,IAAIA,OAAO,KAAKA,OAAO,CAACC,UAAU,GAAG,IAAI,IAAID,OAAO,CAACC,UAAU,GAAG,KAAK,CAAC,EAAE;MACxE,MAAM,IAAIJ,iBAAiB,CACzB,6CAA6CG,OAAO,CAACC,UAAU,EACjE,CAAC;IACH;IAEA,KAAK,CAACC,MAAM,CAACC,kBAAkB,CAACH,OAAO,EAAEC,UAAU,CAAC,CAAC;EACvD;EAEA,MAAMG,KAAKA,CAAA,EAAuB;IAChC,MAAO,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EAC/C;EAEA,MAAME,MAAMA,CAAA,EAAuB;IACjC,MAAO,IAAI,CAACD,OAAO,CAAmBC,MAAM,CAAC,CAAC;EAChD;EAEA,MAAMC,OAAOA,CAAA,EAAuB;IAClC,MAAO,IAAI,CAACF,OAAO,CAAmBE,OAAO,CAAC,CAAC;EACjD;AACF","ignoreList":[]}
@@ -1,8 +1,16 @@
1
1
  "use strict";
2
2
 
3
- import { installModule } from "./specs/install.js";
4
- if (global.__AudioAPIInstaller == null) {
5
- installModule();
3
+ import NativeAudioAPIModule from "./specs/NativeAudioAPIModule.js";
4
+
5
+ /* eslint-disable no-var */
6
+
7
+ /* eslint-disable no-var */
8
+
9
+ if (global.createAudioContext == null) {
10
+ if (!NativeAudioAPIModule) {
11
+ throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
12
+ }
13
+ NativeAudioAPIModule.install();
6
14
  }
7
15
  export { default as AudioBuffer } from "./core/AudioBuffer.js";
8
16
  export { default as AudioBufferSourceNode } from "./core/AudioBufferSourceNode.js";
@@ -1 +1 @@
1
- {"version":3,"names":["installModule","global","__AudioAPIInstaller","default","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,oBAAiB;AAE/C,IAAIC,MAAM,CAACC,mBAAmB,IAAI,IAAI,EAAE;EACtCF,aAAa,CAAC,CAAC;AACjB;AAEA,SAASG,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASF,OAAO,IAAIG,YAAY,QAAQ,wBAAqB;AAC7D,SAASH,OAAO,IAAII,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASJ,OAAO,IAAIK,SAAS,QAAQ,qBAAkB;AACvD,SAASL,OAAO,IAAIM,YAAY,QAAQ,wBAAqB;AAC7D,SAASN,OAAO,IAAIO,UAAU,QAAQ,sBAAmB;AACzD,SAASP,OAAO,IAAIQ,wBAAwB,QAAQ,oCAAiC;AACrF,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,4BAAyB;AACrE,SAAST,OAAO,IAAIU,gBAAgB,QAAQ,4BAAyB;AACrE,SAASV,OAAO,IAAIW,QAAQ,QAAQ,oBAAiB;AACrD,SAASX,OAAO,IAAIY,cAAc,QAAQ,0BAAuB;AACjE,SAASZ,OAAO,IAAIa,gBAAgB,QAAQ,4BAAyB;AAErE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,QACZ,mBAAU","ignoreList":[]}
1
+ {"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","Error","install","default","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;;AAG/D;;AAIA;;AAEA,IAAIC,MAAM,CAACC,kBAAkB,IAAI,IAAI,EAAE;EACrC,IAAI,CAACF,oBAAoB,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,iFACF,CAAC;EACH;EAEAH,oBAAoB,CAACI,OAAO,CAAC,CAAC;AAChC;AAEA,SAASC,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASF,OAAO,IAAIG,YAAY,QAAQ,wBAAqB;AAC7D,SAASH,OAAO,IAAII,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASJ,OAAO,IAAIK,SAAS,QAAQ,qBAAkB;AACvD,SAASL,OAAO,IAAIM,YAAY,QAAQ,wBAAqB;AAC7D,SAASN,OAAO,IAAIO,UAAU,QAAQ,sBAAmB;AACzD,SAASP,OAAO,IAAIQ,wBAAwB,QAAQ,oCAAiC;AACrF,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,4BAAyB;AACrE,SAAST,OAAO,IAAIU,gBAAgB,QAAQ,4BAAyB;AACrE,SAASV,OAAO,IAAIW,QAAQ,QAAQ,oBAAiB;AACrD,SAASX,OAAO,IAAIY,cAAc,QAAQ,0BAAuB;AACjE,SAASZ,OAAO,IAAIa,gBAAgB,QAAQ,4BAAyB;AAErE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,QACZ,mBAAU","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.get('AudioAPIModule');
5
+ //# sourceMappingURL=NativeAudioAPIModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAqB,cAAc;AAM/D,eAAeA,mBAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
@@ -68,5 +68,11 @@ export default class AudioContext {
68
68
  async close() {
69
69
  await this.context.close();
70
70
  }
71
+ async resume() {
72
+ await this.context.resume();
73
+ }
74
+ async suspend() {
75
+ await this.context.suspend();
76
+ }
71
77
  }
72
78
  //# sourceMappingURL=AudioContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["InvalidAccessError","NotSupportedError","AnalyserNode","AudioDestinationNode","AudioBuffer","AudioBufferSourceNode","BiquadFilterNode","GainNode","OscillatorNode","PeriodicWave","StereoPannerNode","AudioContext","constructor","options","sampleRate","context","window","destination","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["InvalidAccessError","NotSupportedError","AnalyserNode","AudioDestinationNode","AudioBuffer","AudioBufferSourceNode","BiquadFilterNode","GainNode","OscillatorNode","PeriodicWave","StereoPannerNode","AudioContext","constructor","options","sampleRate","context","window","destination","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close","resume","suspend"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,5 +3,7 @@ import { AudioContextOptions } from '../types';
3
3
  export default class AudioContext extends BaseAudioContext {
4
4
  constructor(options?: AudioContextOptions);
5
5
  close(): Promise<undefined>;
6
+ resume(): Promise<undefined>;
7
+ suspend(): Promise<undefined>;
6
8
  }
7
9
  //# sourceMappingURL=AudioContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/AudioContext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,gBAAgB;gBAC5C,OAAO,CAAC,EAAE,mBAAmB;IAUnC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;CAGlC"}
1
+ {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/AudioContext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,gBAAgB;gBAC5C,OAAO,CAAC,EAAE,mBAAmB;IAUnC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;IAI3B,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAI5B,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;CAGpC"}
@@ -1,3 +1,7 @@
1
+ import type { IAudioContext } from './interfaces';
2
+ declare global {
3
+ var createAudioContext: (sampleRate?: number) => IAudioContext;
4
+ }
1
5
  export { default as AudioBuffer } from './core/AudioBuffer';
2
6
  export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
3
7
  export { default as AudioContext } from './core/AudioContext';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;CAChE;AAaD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { ContextState, BiquadFilterType, OscillatorType, ChannelCountMode, ChannelInterpretation, WindowType } from './types';
2
+ export interface AudioAPIInstaller {
3
+ createAudioContext: (sampleRate?: number) => IAudioContext;
4
+ }
2
5
  export interface IBaseAudioContext {
3
6
  readonly destination: IAudioDestinationNode;
4
7
  readonly state: ContextState;
@@ -15,7 +18,9 @@ export interface IBaseAudioContext {
15
18
  decodeAudioDataSource: (sourcePath: string) => Promise<IAudioBuffer>;
16
19
  }
17
20
  export interface IAudioContext extends IBaseAudioContext {
18
- close(): Promise<undefined>;
21
+ close(): Promise<void>;
22
+ resume(): Promise<void>;
23
+ suspend(): Promise<void>;
19
24
  }
20
25
  export interface IAudioNode {
21
26
  readonly context: BaseAudioContext;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TurboModule } from 'react-native';
2
+ interface Spec extends TurboModule {
3
+ install(): boolean;
4
+ }
5
+ declare const _default: Spec | null;
6
+ export default _default;
7
+ //# sourceMappingURL=NativeAudioAPIModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeAudioAPIModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeAudioAPIModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhE,UAAU,IAAK,SAAQ,WAAW;IAChC,OAAO,IAAI,OAAO,CAAC;CACpB;;AAED,wBAA+D"}
@@ -25,6 +25,8 @@ export default class AudioContext implements BaseAudioContext {
25
25
  createPeriodicWave(real: number[], imag: number[], constraints?: PeriodicWaveConstraints): PeriodicWave;
26
26
  createAnalyser(): AnalyserNode;
27
27
  decodeAudioDataSource(source: string): Promise<AudioBuffer>;
28
- close(): Promise<undefined>;
28
+ close(): Promise<void>;
29
+ resume(): Promise<void>;
30
+ suspend(): Promise<void>;
29
31
  }
30
32
  //# sourceMappingURL=AudioContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB;IAazC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,qBAAqB;IAI3C,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;CAGlC"}
1
+ {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB;IAazC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,qBAAqB;IAI3C,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-audio-api",
3
- "version": "0.4.10",
3
+ "version": "0.4.11",
4
4
  "description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -36,15 +36,17 @@
36
36
  "scripts": {
37
37
  "test": "jest",
38
38
  "typecheck": "tsc --noEmit",
39
- "lint": "yarn lint:js && yarn lint:cpp && yarn lint:kotlin",
40
- "format": "yarn format:android && yarn format:ios && yarn format:common && yarn format:kotlin",
41
- "lint:js": "eslint \"**/*.{js,ts,tsx}\"",
39
+ "lint": "yarn lint:js && yarn lint:cpp & yarn lint:ios && yarn lint:kotlin",
40
+ "lint:js": "eslint src && yarn prettier --check src",
42
41
  "lint:cpp": "./scripts/cpplint.sh",
42
+ "lint:ios": "yarn format:ios --dry-run -Werror",
43
43
  "lint:kotlin": "ktlint 'android/src/main/java/**'",
44
- "format:android": "find android/src/ -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
45
- "format:ios": "find ios/ -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.mm\" -o -iname \"*.cpp\" | xargs clang-format -i --Werror",
44
+ "format": "yarn format:js && yarn format:android:cpp && yarn format:android:kotlin && yarn format:ios && yarn format:common",
45
+ "format:js": "prettier --write --list-different src",
46
+ "format:android:cpp": "find android/src/ -path android/src/cpp/libs -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
47
+ "format:android:kotlin": "ktlint -F 'android/src/main/java/**'",
48
+ "format:ios": "find ios/ -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.mm\" -o -iname \"*.cpp\" | xargs clang-format -i",
46
49
  "format:common": "find common/cpp/ -path 'common/cpp/libs' -prune -iname \"*.h\" -o -iname \"*.cpp\" | xargs clang-format -i",
47
- "format:kotlin": "ktlint -F 'android/src/main/java/**'",
48
50
  "build": "bob build",
49
51
  "prepack": "cp ../../README.md ./README.md",
50
52
  "postpack": "rm ./README.md"