#include "oboe/OboeExt.h"
namespace oboe {
void AudioStreamBuilder_create(AudioStreamBuilder *builder) {
new(builder) AudioStreamBuilder(); }
void AudioStreamBuilder_delete(AudioStreamBuilder *builder) {
builder->~AudioStreamBuilder(); }
AudioApi AudioStreamBuilder_getAudioApi(const AudioStreamBuilder *builder) {
return builder->getAudioApi();
}
void AudioStreamBuilder_setAudioApi(AudioStreamBuilder *builder, AudioApi api) {
builder->setAudioApi(api);
}
void AudioStreamBuilder_setCallback(AudioStreamBuilder *builder,
void *context,
const DropContextHandler drop_context,
const AudioReadyHandler audio_ready,
const ErrorCloseHandler before_close,
const ErrorCloseHandler after_close) {
auto s = std::make_shared<AudioStreamCallbackWrapper>(
context,
drop_context,
audio_ready,
before_close,
after_close);
builder->setDataCallback(s);
builder->setErrorCallback(s);
}
AudioStreamBase* AudioStreamBuilder_getBase(AudioStreamBuilder *builder) {
return static_cast<AudioStreamBase*>(builder);
}
Result AudioStreamBuilder_openStreamShared(AudioStreamBuilder *builder,
AudioStreamShared *sharedStream) {
new(sharedStream) std::shared_ptr<AudioStream>(); return builder->openStream(*sharedStream);
}
}