17#ifndef OBOE_STREAM_BUILDER_H_
18#define OBOE_STREAM_BUILDER_H_
20#include "oboe/Definitions.h"
21#include "oboe/AudioStreamBase.h"
22#include "oboe/Utilities.h"
23#include "ResultWithValue.h"
28 struct StreamDeleterFunctor;
29 using ManagedStream = std::unique_ptr<AudioStream, StreamDeleterFunctor>;
190 mAudioApi = audioApi;
348 if (deviceId != kUnspecified) {
349 mDeviceIds.push_back(deviceId);
454 std::shared_ptr<AudioStreamDataCallback> sharedDataCallback) {
458 mSharedDataCallback = sharedDataCallback;
459 mSharedPartialDataCallback.reset();
483 mSharedDataCallback =
nullptr;
485 mSharedPartialDataCallback.reset();
525 const std::shared_ptr<AudioStreamPartialDataCallback>& partialDataCallback) {
526 mSharedDataCallback.reset();
528 mSharedPartialDataCallback = partialDataCallback;
560 mSharedErrorCallback = sharedErrorCallback;
574 mSharedErrorCallback =
nullptr;
597 std::shared_ptr<AudioStreamPresentationCallback> sharedPresentationCallback) {
598 mSharedPresentationCallback = sharedPresentationCallback;
617 std::shared_ptr<AudioStreamRoutingCallback> sharedRoutingCallback) {
618 mSharedRoutingCallback = sharedRoutingCallback;
641 mSharedPartialDataCallback.reset();
656 mChannelConversionAllowed = allowed;
668 mFormatConversionAllowed = allowed;
684 mSampleRateConversionQuality = quality;
757 Result
openStream(std::shared_ptr<oboe::AudioStream> &stream);
797 AudioApi mAudioApi = AudioApi::Unspecified;
Definition AudioStreamBase.h:31
SpatializationBehavior mSpatializationBehavior
Definition AudioStreamBase.h:377
InputPreset mInputPreset
Definition AudioStreamBase.h:359
Direction mDirection
Definition AudioStreamBase.h:348
int32_t mFramesPerCallback
Definition AudioStreamBase.h:331
Usage mUsage
Definition AudioStreamBase.h:353
ContentType mContentType
Definition AudioStreamBase.h:355
int32_t mChannelCount
Definition AudioStreamBase.h:333
PrivacySensitiveMode mPrivacySensitiveMode
Definition AudioStreamBase.h:367
AudioStreamDataCallback * mDataCallback
Definition AudioStreamBase.h:315
AllowedCapturePolicy mAllowedCapturePolicy
Definition AudioStreamBase.h:364
AudioFormat mFormat
Definition AudioStreamBase.h:346
int32_t mSampleRate
Definition AudioStreamBase.h:335
bool mIsContentSpatialized
Definition AudioStreamBase.h:375
bool isContentSpatialized() const
Definition AudioStreamBase.h:216
ChannelMask mChannelMask
Definition AudioStreamBase.h:341
PerformanceMode mPerformanceMode
Definition AudioStreamBase.h:350
SessionId mSessionId
Definition AudioStreamBase.h:361
std::string mPackageName
Definition AudioStreamBase.h:370
int32_t mBufferCapacityInFrames
Definition AudioStreamBase.h:337
AudioStreamErrorCallback * mErrorCallback
Definition AudioStreamBase.h:323
AudioStreamPartialDataCallback * mPartialDataCallback
Definition AudioStreamBase.h:319
std::string mAttributionTag
Definition AudioStreamBase.h:372
SharingMode mSharingMode
Definition AudioStreamBase.h:344
Definition AudioStreamBuilder.h:34
AudioStreamBuilder * setSampleRateConversionQuality(SampleRateConversionQuality quality)
Definition AudioStreamBuilder.h:683
AudioStreamBuilder * setChannelMask(ChannelMask channelMask)
Definition AudioStreamBuilder.h:70
static bool isAAudioSupported()
AudioStreamBuilder * setChannelCount(int channelCount)
Definition AudioStreamBuilder.h:51
AudioStreamBuilder * setFramesPerCallback(int framesPerCallback)
Definition AudioStreamBuilder.h:105
AudioStreamBuilder * setAudioApi(AudioApi audioApi)
Definition AudioStreamBuilder.h:189
AudioStreamBuilder * setErrorCallback(AudioStreamErrorCallback *errorCallback)
Definition AudioStreamBuilder.h:572
AudioStreamBuilder * setInputPreset(InputPreset inputPreset)
Definition AudioStreamBuilder.h:291
AudioStreamBuilder * setSessionId(SessionId sessionId)
Definition AudioStreamBuilder.h:320
AudioStreamBuilder * setSpatializationBehavior(SpatializationBehavior spatializationBehavior)
Definition AudioStreamBuilder.h:427
Result openStream(std::shared_ptr< oboe::AudioStream > &stream)
AudioStreamBuilder * setPrivacySensitiveMode(PrivacySensitiveMode privacySensitiveMode)
Definition AudioStreamBuilder.h:391
AudioStreamBuilder * setRoutingCallback(std::shared_ptr< AudioStreamRoutingCallback > sharedRoutingCallback)
Definition AudioStreamBuilder.h:616
AudioStreamBuilder * setChannelConversionAllowed(bool allowed)
Definition AudioStreamBuilder.h:655
static bool isAAudioRecommended()
AudioStreamBuilder * setDeviceId(int32_t deviceId)
Definition AudioStreamBuilder.h:346
AudioStreamBuilder * setPackageName(std::string packageName)
Definition AudioStreamBuilder.h:706
AudioStreamBuilder * setSampleRate(int32_t sampleRate)
Definition AudioStreamBuilder.h:97
AudioStreamBuilder * setAllowedCapturePolicy(AllowedCapturePolicy allowedCapturePolicy)
Definition AudioStreamBuilder.h:367
Result openManagedStream(ManagedStream &stream)
AudioStreamBuilder * setDataCallback(std::shared_ptr< AudioStreamDataCallback > sharedDataCallback)
Definition AudioStreamBuilder.h:453
AudioStreamBuilder * setErrorCallback(std::shared_ptr< AudioStreamErrorCallback > sharedErrorCallback)
Definition AudioStreamBuilder.h:556
Result openStream(AudioStream **stream)
AudioStreamBuilder * setUsage(Usage usage)
Definition AudioStreamBuilder.h:253
AudioStreamBuilder * setAttributionTag(std::string attributionTag)
Definition AudioStreamBuilder.h:722
bool willUseAAudio() const
Definition AudioStreamBuilder.h:730
AudioStreamBuilder * setFormatConversionAllowed(bool allowed)
Definition AudioStreamBuilder.h:667
AudioStreamBuilder * setDirection(Direction direction)
Definition AudioStreamBuilder.h:81
AudioStreamBuilder * setSharingMode(SharingMode sharingMode)
Definition AudioStreamBuilder.h:221
AudioStreamBuilder * setFormat(AudioFormat format)
Definition AudioStreamBuilder.h:142
AudioStreamBuilder * setPresentationCallback(std::shared_ptr< AudioStreamPresentationCallback > sharedPresentationCallback)
Definition AudioStreamBuilder.h:596
AudioApi getAudioApi() const
Definition AudioStreamBuilder.h:174
AudioStreamBuilder * setPartialDataCallback(const std::shared_ptr< AudioStreamPartialDataCallback > &partialDataCallback)
Definition AudioStreamBuilder.h:524
AudioStreamBuilder * setPerformanceMode(PerformanceMode performanceMode)
Definition AudioStreamBuilder.h:234
AudioStreamBuilder * setBufferCapacityInFrames(int32_t bufferCapacityInFrames)
Definition AudioStreamBuilder.h:159
AudioStreamBuilder * setContentType(ContentType contentType)
Definition AudioStreamBuilder.h:271
AudioStreamBuilder * setDataCallback(AudioStreamDataCallback *dataCallback)
Definition AudioStreamBuilder.h:481
AudioStreamBuilder * setFramesPerDataCallback(int framesPerCallback)
Definition AudioStreamBuilder.h:131
AudioStreamBuilder * setCallback(AudioStreamCallback *streamCallback)
Definition AudioStreamBuilder.h:637
AudioStreamBuilder * setIsContentSpatialized(bool isContentSpatialized)
Definition AudioStreamBuilder.h:409
Definition AudioStreamCallback.h:304
Definition AudioStreamCallback.h:34
Definition AudioStreamCallback.h:102
Definition AudioStream.h:43