Skip to content

Commit 234ec6e

Browse files
committed
feat: options as references
1 parent 97d464e commit 234ec6e

34 files changed

+148
-135
lines changed

packages/react-native-audio-api/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,8 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createRecorderAdapter) {
161161
}
162162

163163
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createOscillator) {
164-
auto options = args[0].asObject(runtime);
165-
auto oscillatorOptions = audioapi::option_parser::parseOscillatorOptions(runtime, options);
164+
const auto options = args[0].asObject(runtime);
165+
const auto oscillatorOptions = audioapi::option_parser::parseOscillatorOptions(runtime, options);
166166
auto oscillator = context_->createOscillator(oscillatorOptions);
167167
auto oscillatorHostObject = std::make_shared<OscillatorNodeHostObject>(oscillator);
168168
return jsi::Object::createFromHostObject(runtime, oscillatorHostObject);
@@ -172,7 +172,7 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createStreamer) {
172172
#if !RN_AUDIO_API_FFMPEG_DISABLED
173173
auto streamerOptions = StreamerOptions();
174174
if (!args[0].isUndefined()) {
175-
auto options = args[0].asObject(runtime);
175+
const auto options = args[0].asObject(runtime);
176176
streamerOptions = audioapi::option_parser::parseStreamerOptions(runtime, options);
177177
}
178178
auto streamer = context_->createStreamer(streamerOptions);
@@ -186,25 +186,25 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createStreamer) {
186186
}
187187

188188
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createConstantSource) {
189-
auto options = args[0].asObject(runtime);
190-
auto constantSourceOptions =
189+
const auto options = args[0].asObject(runtime);
190+
const auto constantSourceOptions =
191191
audioapi::option_parser::parseConstantSourceOptions(runtime, options);
192192
auto constantSource = context_->createConstantSource(constantSourceOptions);
193193
auto constantSourceHostObject = std::make_shared<ConstantSourceNodeHostObject>(constantSource);
194194
return jsi::Object::createFromHostObject(runtime, constantSourceHostObject);
195195
}
196196

197197
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createGain) {
198-
auto options = args[0].asObject(runtime);
199-
auto gainOptions = audioapi::option_parser::parseGainOptions(runtime, options);
198+
const auto options = args[0].asObject(runtime);
199+
const auto gainOptions = audioapi::option_parser::parseGainOptions(runtime, options);
200200
auto gain = context_->createGain(std::move(gainOptions));
201201
auto gainHostObject = std::make_shared<GainNodeHostObject>(gain);
202202
return jsi::Object::createFromHostObject(runtime, gainHostObject);
203203
}
204204

205205
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createDelay) {
206-
auto options = args[0].asObject(runtime);
207-
auto delayOptions = audioapi::option_parser::parseDelayOptions(runtime, options);
206+
const auto options = args[0].asObject(runtime);
207+
const auto delayOptions = audioapi::option_parser::parseDelayOptions(runtime, options);
208208
auto delayNode = context_->createDelay(delayOptions);
209209
auto delayNodeHostObject = std::make_shared<DelayNodeHostObject>(delayNode);
210210
auto jsiObject = jsi::Object::createFromHostObject(runtime, delayNodeHostObject);
@@ -213,41 +213,41 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createDelay) {
213213
}
214214

215215
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createStereoPanner) {
216-
auto options = args[0].asObject(runtime);
217-
auto stereoPannerOptions = audioapi::option_parser::parseStereoPannerOptions(runtime, options);
216+
const auto options = args[0].asObject(runtime);
217+
const auto stereoPannerOptions = audioapi::option_parser::parseStereoPannerOptions(runtime, options);
218218
auto stereoPanner = context_->createStereoPanner(stereoPannerOptions);
219219
auto stereoPannerHostObject = std::make_shared<StereoPannerNodeHostObject>(stereoPanner);
220220
return jsi::Object::createFromHostObject(runtime, stereoPannerHostObject);
221221
}
222222

223223
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBiquadFilter) {
224-
auto options = args[0].asObject(runtime);
225-
auto biquadFilterOptions = audioapi::option_parser::parseBiquadFilterOptions(runtime, options);
224+
const auto options = args[0].asObject(runtime);
225+
const auto biquadFilterOptions = audioapi::option_parser::parseBiquadFilterOptions(runtime, options);
226226
auto biquadFilter = context_->createBiquadFilter(biquadFilterOptions);
227227
auto biquadFilterHostObject = std::make_shared<BiquadFilterNodeHostObject>(biquadFilter);
228228
return jsi::Object::createFromHostObject(runtime, biquadFilterHostObject);
229229
}
230230

231231
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createIIRFilter) {
232-
auto options = args[0].asObject(runtime);
233-
auto iirFilterOptions = audioapi::option_parser::parseIIRFilterOptions(runtime, options);
232+
const auto options = args[0].asObject(runtime);
233+
const auto iirFilterOptions = audioapi::option_parser::parseIIRFilterOptions(runtime, options);
234234
auto iirFilter = context_->createIIRFilter(iirFilterOptions);
235235
auto iirFilterHostObject = std::make_shared<IIRFilterNodeHostObject>(iirFilter);
236236
return jsi::Object::createFromHostObject(runtime, iirFilterHostObject);
237237
}
238238

239239
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBufferSource) {
240-
auto options = args[0].asObject(runtime);
241-
auto audioBufferSourceOptions =
240+
const auto options = args[0].asObject(runtime);
241+
const auto audioBufferSourceOptions =
242242
audioapi::option_parser::parseAudioBufferSourceOptions(runtime, options);
243243
auto bufferSource = context_->createBufferSource(audioBufferSourceOptions);
244244
auto bufferSourceHostObject = std::make_shared<AudioBufferSourceNodeHostObject>(bufferSource);
245245
return jsi::Object::createFromHostObject(runtime, bufferSourceHostObject);
246246
}
247247

248248
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBufferQueueSource) {
249-
auto options = args[0].asObject(runtime);
250-
auto baseAudioBufferSourceOptions =
249+
const auto options = args[0].asObject(runtime);
250+
const auto baseAudioBufferSourceOptions =
251251
audioapi::option_parser::parseBaseAudioBufferSourceOptions(runtime, options);
252252
auto bufferSource = context_->createBufferQueueSource(baseAudioBufferSourceOptions);
253253
auto bufferStreamSourceHostObject =
@@ -256,8 +256,8 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBufferQueueSource) {
256256
}
257257

258258
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createBuffer) {
259-
auto options = args[0].asObject(runtime);
260-
auto audioBufferOptions = audioapi::option_parser::parseAudioBufferOptions(runtime, options);
259+
const auto options = args[0].asObject(runtime);
260+
const auto audioBufferOptions = audioapi::option_parser::parseAudioBufferOptions(runtime, options);
261261
auto buffer = BaseAudioContext::createBuffer(audioBufferOptions);
262262
auto bufferHostObject = std::make_shared<AudioBufferHostObject>(buffer);
263263

@@ -292,16 +292,16 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createPeriodicWave) {
292292
}
293293

294294
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createAnalyser) {
295-
auto options = args[0].asObject(runtime);
296-
auto analyserOptions = audioapi::option_parser::parseAnalyserOptions(runtime, options);
295+
const auto options = args[0].asObject(runtime);
296+
const auto analyserOptions = audioapi::option_parser::parseAnalyserOptions(runtime, options);
297297
auto analyser = context_->createAnalyser(analyserOptions);
298298
auto analyserHostObject = std::make_shared<AnalyserNodeHostObject>(analyser);
299299
return jsi::Object::createFromHostObject(runtime, analyserHostObject);
300300
}
301301

302302
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createConvolver) {
303-
auto options = args[0].asObject(runtime);
304-
auto convolverOptions = audioapi::option_parser::parseConvolverOptions(runtime, options);
303+
const auto options = args[0].asObject(runtime);
304+
const auto convolverOptions = audioapi::option_parser::parseConvolverOptions(runtime, options);
305305
auto convolver = context_->createConvolver(convolverOptions);
306306
auto convolverHostObject = std::make_shared<ConvolverNodeHostObject>(convolver);
307307
auto jsiObject = jsi::Object::createFromHostObject(runtime, convolverHostObject);
@@ -313,8 +313,8 @@ JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createConvolver) {
313313
}
314314

315315
JSI_HOST_FUNCTION_IMPL(BaseAudioContextHostObject, createWaveShaper) {
316-
auto options = args[0].asObject(runtime);
317-
auto waveShaperOptions = audioapi::option_parser::parseWaveShaperOptions(runtime, options);
316+
const auto options = args[0].asObject(runtime);
317+
const auto waveShaperOptions = audioapi::option_parser::parseWaveShaperOptions(runtime, options);
318318
auto waveShaper = context_->createWaveShaper(waveShaperOptions);
319319
auto waveShaperHostObject = std::make_shared<WaveShaperNodeHostObject>(waveShaper);
320320
return jsi::Object::createFromHostObject(runtime, waveShaperHostObject);

packages/react-native-audio-api/common/cpp/audioapi/HostObjects/utils/NodeOptions.h

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -16,76 +16,76 @@
1616

1717
namespace audioapi {
1818
struct AudioNodeOptions {
19-
int channelCount = 2;
20-
ChannelCountMode channelCountMode = ChannelCountMode::MAX;
21-
ChannelInterpretation channelInterpretation = ChannelInterpretation::SPEAKERS;
19+
int channelCount;
20+
ChannelCountMode channelCountMode;
21+
ChannelInterpretation channelInterpretation;
2222
};
2323

2424
struct GainOptions : AudioNodeOptions {
25-
float gain = 1.0f;
25+
float gain;
2626
};
2727

2828
struct StereoPannerOptions : AudioNodeOptions {
29-
float pan = 0.0f;
29+
float pan;
3030
};
3131

3232
struct ConvolverOptions : AudioNodeOptions {
33-
std::shared_ptr<AudioBuffer> bus = nullptr;
34-
bool disableNormalization = false;
33+
std::shared_ptr<AudioBuffer> bus;
34+
bool disableNormalization;
3535
};
3636

3737
struct ConstantSourceOptions {
38-
float offset = 1.0f;
38+
float offset;
3939
};
4040

4141
struct AnalyserOptions : AudioNodeOptions {
42-
int fftSize = 2048;
43-
float minDecibels = -100.0f;
44-
float maxDecibels = -30.0f;
45-
float smoothingTimeConstant = 0.8f;
42+
int fftSize;
43+
float minDecibels;
44+
float maxDecibels;
45+
float smoothingTimeConstant;
4646
};
4747

4848
struct BiquadFilterOptions : AudioNodeOptions {
49-
BiquadFilterType type = BiquadFilterType::LOWPASS;
50-
float frequency = 350.0f;
51-
float detune = 0.0f;
52-
float Q = 1.0f;
53-
float gain = 0.0f;
49+
BiquadFilterType type;
50+
float frequency;
51+
float detune;
52+
float Q;
53+
float gain;
5454
};
5555

5656
struct OscillatorOptions {
57-
std::shared_ptr<PeriodicWave> periodicWave = nullptr;
58-
float frequency = 440.0f;
59-
float detune = 0.0f;
60-
OscillatorType type = OscillatorType::SINE;
57+
std::shared_ptr<PeriodicWave> periodicWave;
58+
float frequency;
59+
float detune;
60+
OscillatorType type;
6161
};
6262

6363
struct BaseAudioBufferSourceOptions {
64-
float detune = 0.0f;
65-
bool pitchCorrection = false;
66-
float playbackRate = 1.0f;
64+
float detune;
65+
bool pitchCorrection;
66+
float playbackRate;
6767
};
6868

6969
struct AudioBufferSourceOptions : BaseAudioBufferSourceOptions {
70-
std::shared_ptr<AudioBuffer> buffer = nullptr;
71-
bool loop = false;
72-
float loopStart = 0.0f;
73-
float loopEnd = 0.0f;
70+
std::shared_ptr<AudioBuffer> buffer;
71+
bool loop;
72+
float loopStart;
73+
float loopEnd;
7474
};
7575

7676
struct StreamerOptions {
77-
std::string streamPath = "";
77+
std::string streamPath;
7878
};
7979

8080
struct AudioBufferOptions {
81-
int numberOfChannels = 1;
82-
size_t length = 0;
83-
float sampleRate = 44100.0f;
81+
int numberOfChannels;
82+
size_t length;
83+
float sampleRate;
8484
};
8585

8686
struct DelayOptions : AudioNodeOptions {
87-
float maxDelayTime = 1.0f;
88-
float delayTime = 0.0f;
87+
float maxDelayTime;
88+
float delayTime;
8989
};
9090

9191
struct IIRFilterOptions : AudioNodeOptions {
@@ -104,8 +104,8 @@ struct IIRFilterOptions : AudioNodeOptions {
104104
};
105105

106106
struct WaveShaperOptions : AudioNodeOptions {
107-
std::shared_ptr<AudioArray> curve = nullptr;
108-
OverSampleType oversample = OverSampleType::OVERSAMPLE_NONE;
107+
std::shared_ptr<AudioArray> curve;
108+
OverSampleType oversample;
109109
};
110110

111111
} // namespace audioapi

packages/react-native-audio-api/common/cpp/audioapi/core/BaseAudioContext.cpp

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -117,77 +117,77 @@ std::shared_ptr<RecorderAdapterNode> BaseAudioContext::createRecorderAdapter() {
117117
return recorderAdapter;
118118
}
119119

120-
std::shared_ptr<OscillatorNode> BaseAudioContext::createOscillator(OscillatorOptions options) {
121-
auto oscillator = std::make_shared<OscillatorNode>(shared_from_this(), std::move(options));
120+
std::shared_ptr<OscillatorNode> BaseAudioContext::createOscillator(const OscillatorOptions &options) {
121+
auto oscillator = std::make_shared<OscillatorNode>(shared_from_this(), options);
122122
nodeManager_->addSourceNode(oscillator);
123123
return oscillator;
124124
}
125125

126126
std::shared_ptr<ConstantSourceNode> BaseAudioContext::createConstantSource(
127-
ConstantSourceOptions options) {
128-
auto constantSource = std::make_shared<ConstantSourceNode>(shared_from_this(), std::move(options));
127+
const ConstantSourceOptions &options) {
128+
auto constantSource = std::make_shared<ConstantSourceNode>(shared_from_this(), options);
129129
nodeManager_->addSourceNode(constantSource);
130130
return constantSource;
131131
}
132132

133-
std::shared_ptr<StreamerNode> BaseAudioContext::createStreamer(StreamerOptions options) {
133+
std::shared_ptr<StreamerNode> BaseAudioContext::createStreamer(const StreamerOptions &options) {
134134
#if !RN_AUDIO_API_FFMPEG_DISABLED
135-
auto streamer = std::make_shared<StreamerNode>(shared_from_this(), std::move(options));
135+
auto streamer = std::make_shared<StreamerNode>(shared_from_this(), options);
136136
nodeManager_->addSourceNode(streamer);
137137
return streamer;
138138
#else
139139
return nullptr;
140140
#endif // RN_AUDIO_API_FFMPEG_DISABLED
141141
}
142142

143-
std::shared_ptr<GainNode> BaseAudioContext::createGain(GainOptions options) {
144-
auto gain = std::make_shared<GainNode>(shared_from_this(), std::move(options));
143+
std::shared_ptr<GainNode> BaseAudioContext::createGain(const GainOptions &options) {
144+
auto gain = std::make_shared<GainNode>(shared_from_this(), options);
145145
nodeManager_->addProcessingNode(gain);
146146
return gain;
147147
}
148148

149149
std::shared_ptr<StereoPannerNode> BaseAudioContext::createStereoPanner(
150-
StereoPannerOptions options) {
151-
auto stereoPanner = std::make_shared<StereoPannerNode>(shared_from_this(), std::move(options));
150+
const StereoPannerOptions &options) {
151+
auto stereoPanner = std::make_shared<StereoPannerNode>(shared_from_this(), options);
152152
nodeManager_->addProcessingNode(stereoPanner);
153153
return stereoPanner;
154154
}
155155

156-
std::shared_ptr<DelayNode> BaseAudioContext::createDelay(DelayOptions options) {
157-
auto delay = std::make_shared<DelayNode>(shared_from_this(), std::move(options));
156+
std::shared_ptr<DelayNode> BaseAudioContext::createDelay(const DelayOptions &options) {
157+
auto delay = std::make_shared<DelayNode>(shared_from_this(), options);
158158
nodeManager_->addProcessingNode(delay);
159159
return delay;
160160
}
161161

162162
std::shared_ptr<BiquadFilterNode> BaseAudioContext::createBiquadFilter(
163-
BiquadFilterOptions options) {
164-
auto biquadFilter = std::make_shared<BiquadFilterNode>(shared_from_this(), std::move(options));
163+
const BiquadFilterOptions &options) {
164+
auto biquadFilter = std::make_shared<BiquadFilterNode>(shared_from_this(), options);
165165
nodeManager_->addProcessingNode(biquadFilter);
166166
return biquadFilter;
167167
}
168168

169169
std::shared_ptr<AudioBufferSourceNode> BaseAudioContext::createBufferSource(
170-
AudioBufferSourceOptions options) {
171-
auto bufferSource = std::make_shared<AudioBufferSourceNode>(shared_from_this(), std::move(options));
170+
const AudioBufferSourceOptions &options) {
171+
auto bufferSource = std::make_shared<AudioBufferSourceNode>(shared_from_this(), options);
172172
nodeManager_->addSourceNode(bufferSource);
173173
return bufferSource;
174174
}
175175

176-
std::shared_ptr<IIRFilterNode> BaseAudioContext::createIIRFilter(IIRFilterOptions options) {
177-
auto iirFilter = std::make_shared<IIRFilterNode>(shared_from_this(), std::move(options));
176+
std::shared_ptr<IIRFilterNode> BaseAudioContext::createIIRFilter(const IIRFilterOptions &options) {
177+
auto iirFilter = std::make_shared<IIRFilterNode>(shared_from_this(), options);
178178
nodeManager_->addProcessingNode(iirFilter);
179179
return iirFilter;
180180
}
181181

182182
std::shared_ptr<AudioBufferQueueSourceNode> BaseAudioContext::createBufferQueueSource(
183-
BaseAudioBufferSourceOptions options) {
184-
auto bufferSource = std::make_shared<AudioBufferQueueSourceNode>(shared_from_this(), std::move(options));
183+
const BaseAudioBufferSourceOptions &options) {
184+
auto bufferSource = std::make_shared<AudioBufferQueueSourceNode>(shared_from_this(), options);
185185
nodeManager_->addSourceNode(bufferSource);
186186
return bufferSource;
187187
}
188188

189-
std::shared_ptr<AudioBuffer> BaseAudioContext::createBuffer(AudioBufferOptions options) {
190-
return std::make_shared<AudioBuffer>(std::move(options));
189+
std::shared_ptr<AudioBuffer> BaseAudioContext::createBuffer(const AudioBufferOptions &options) {
190+
return std::make_shared<AudioBuffer>(options);
191191
}
192192

193193
std::shared_ptr<PeriodicWave> BaseAudioContext::createPeriodicWave(
@@ -197,20 +197,20 @@ std::shared_ptr<PeriodicWave> BaseAudioContext::createPeriodicWave(
197197
return std::make_shared<PeriodicWave>(sampleRate_, complexData, length, disableNormalization);
198198
}
199199

200-
std::shared_ptr<AnalyserNode> BaseAudioContext::createAnalyser(AnalyserOptions options) {
201-
auto analyser = std::make_shared<AnalyserNode>(shared_from_this(), std::move(options));
200+
std::shared_ptr<AnalyserNode> BaseAudioContext::createAnalyser(const AnalyserOptions &options) {
201+
auto analyser = std::make_shared<AnalyserNode>(shared_from_this(), options);
202202
nodeManager_->addProcessingNode(analyser);
203203
return analyser;
204204
}
205205

206-
std::shared_ptr<ConvolverNode> BaseAudioContext::createConvolver(ConvolverOptions options) {
207-
auto convolver = std::make_shared<ConvolverNode>(shared_from_this(), std::move(options));
206+
std::shared_ptr<ConvolverNode> BaseAudioContext::createConvolver(const ConvolverOptions &options) {
207+
auto convolver = std::make_shared<ConvolverNode>(shared_from_this(), options);
208208
nodeManager_->addProcessingNode(convolver);
209209
return convolver;
210210
}
211211

212-
std::shared_ptr<WaveShaperNode> BaseAudioContext::createWaveShaper(WaveShaperOptions options) {
213-
auto waveShaper = std::make_shared<WaveShaperNode>(shared_from_this(), std::move(options));
212+
std::shared_ptr<WaveShaperNode> BaseAudioContext::createWaveShaper(const WaveShaperOptions &options) {
213+
auto waveShaper = std::make_shared<WaveShaperNode>(shared_from_this(), options);
214214
nodeManager_->addProcessingNode(waveShaper);
215215
return waveShaper;
216216
}

0 commit comments

Comments
 (0)