17#ifndef OBOE_STREAM_BASE_H_
18#define OBOE_STREAM_BASE_H_
23#include "oboe/AudioStreamCallback.h"
24#include "oboe/Definitions.h"
108 return mDeviceIds.empty() ? kUnspecified : mDeviceIds[0];
111 std::vector<int32_t> getDeviceIds()
const {
136 return mSharedPresentationCallback;
159 return mSharedPresentationCallback !=
nullptr;
243 return mChannelConversionAllowed;
250 return mFormatConversionAllowed;
257 return mSampleRateConversionQuality;
285 std::shared_ptr<AudioStreamDataCallback> mSharedDataCallback;
289 std::shared_ptr<AudioStreamErrorCallback> mSharedErrorCallback;
291 std::shared_ptr<AudioStreamPresentationCallback> mSharedPresentationCallback;
309 AudioFormat
mFormat = AudioFormat::Unspecified;
350 bool mChannelConversionAllowed =
false;
352 bool mFormatConversionAllowed =
false;
354 SampleRateConversionQuality mSampleRateConversionQuality = SampleRateConversionQuality::Medium;
356 std::vector<int32_t> mDeviceIds;
361 case AudioFormat::Unspecified:
362 case AudioFormat::I16:
363 case AudioFormat::Float:
364 case AudioFormat::I24:
365 case AudioFormat::I32:
366 case AudioFormat::IEC61937:
367 case AudioFormat::MP3:
368 case AudioFormat::AAC_LC:
369 case AudioFormat::AAC_HE_V1:
370 case AudioFormat::AAC_HE_V2:
371 case AudioFormat::AAC_ELD:
372 case AudioFormat::AAC_XHE:
373 case AudioFormat::OPUS:
377 return Result::ErrorInvalidFormat;
380 switch (mSampleRateConversionQuality) {
381 case SampleRateConversionQuality::None:
382 case SampleRateConversionQuality::Fastest:
383 case SampleRateConversionQuality::Low:
384 case SampleRateConversionQuality::Medium:
385 case SampleRateConversionQuality::High:
386 case SampleRateConversionQuality::Best:
389 return Result::ErrorIllegalArgument;
Definition AudioStreamBase.h:31
int32_t mHardwareSampleRate
Definition AudioStreamBase.h:345
int32_t getDeviceId() const
Definition AudioStreamBase.h:107
Usage getUsage() const
Definition AudioStreamBase.h:165
AudioFormat mHardwareFormat
Definition AudioStreamBase.h:347
SpatializationBehavior mSpatializationBehavior
Definition AudioStreamBase.h:340
AudioStreamDataCallback * getDataCallback() const
Definition AudioStreamBase.h:119
SampleRateConversionQuality getSampleRateConversionQuality() const
Definition AudioStreamBase.h:256
InputPreset mInputPreset
Definition AudioStreamBase.h:322
SharingMode getSharingMode() const
Definition AudioStreamBase.h:97
std::string getAttributionTag() const
Definition AudioStreamBase.h:237
Direction mDirection
Definition AudioStreamBase.h:311
PerformanceMode getPerformanceMode() const
Definition AudioStreamBase.h:102
int32_t mFramesPerCallback
Definition AudioStreamBase.h:294
int32_t mBufferSizeInFrames
Definition AudioStreamBase.h:302
PrivacySensitiveMode getPrivacySensitiveMode() const
Definition AudioStreamBase.h:215
AudioFormat getHardwareFormat() const
Definition AudioStreamBase.h:280
Usage mUsage
Definition AudioStreamBase.h:316
InputPreset getInputPreset() const
Definition AudioStreamBase.h:175
virtual Result isValidConfig()
Definition AudioStreamBase.h:359
ContentType mContentType
Definition AudioStreamBase.h:318
int32_t mChannelCount
Definition AudioStreamBase.h:296
PrivacySensitiveMode mPrivacySensitiveMode
Definition AudioStreamBase.h:330
int32_t getHardwareSampleRate() const
Definition AudioStreamBase.h:275
AudioStreamDataCallback * mDataCallback
Definition AudioStreamBase.h:284
AllowedCapturePolicy mAllowedCapturePolicy
Definition AudioStreamBase.h:327
Direction getDirection() const
Definition AudioStreamBase.h:59
AudioStreamErrorCallback * getErrorCallback() const
Definition AudioStreamBase.h:127
AudioFormat mFormat
Definition AudioStreamBase.h:309
std::shared_ptr< AudioStreamPresentationCallback > getPresentationCallback() const
Definition AudioStreamBase.h:135
int32_t mHardwareChannelCount
Definition AudioStreamBase.h:343
int32_t getChannelCount() const
Definition AudioStreamBase.h:54
int32_t getFramesPerCallback() const
Definition AudioStreamBase.h:69
ChannelMask getChannelMask() const
Definition AudioStreamBase.h:263
int32_t mSampleRate
Definition AudioStreamBase.h:298
bool isDataCallbackSpecified() const
Definition AudioStreamBase.h:142
bool mIsContentSpatialized
Definition AudioStreamBase.h:338
bool isContentSpatialized() const
Definition AudioStreamBase.h:185
SessionId getSessionId() const
Definition AudioStreamBase.h:180
ChannelMask mChannelMask
Definition AudioStreamBase.h:304
bool isChannelConversionAllowed() const
Definition AudioStreamBase.h:242
AudioStreamBase(const AudioStreamBase &)=default
ContentType getContentType() const
Definition AudioStreamBase.h:170
virtual int32_t getBufferCapacityInFrames() const
Definition AudioStreamBase.h:92
AudioFormat getFormat() const
Definition AudioStreamBase.h:79
PerformanceMode mPerformanceMode
Definition AudioStreamBase.h:313
bool isPresentationCallbackSpecified() const
Definition AudioStreamBase.h:158
int32_t getFramesPerDataCallback() const
Definition AudioStreamBase.h:74
SessionId mSessionId
Definition AudioStreamBase.h:324
std::string mPackageName
Definition AudioStreamBase.h:333
int32_t mBufferCapacityInFrames
Definition AudioStreamBase.h:300
bool isFormatConversionAllowed() const
Definition AudioStreamBase.h:249
AllowedCapturePolicy getAllowedCapturePolicy() const
Definition AudioStreamBase.h:202
int32_t getHardwareChannelCount() const
Definition AudioStreamBase.h:270
std::string getPackageName() const
Definition AudioStreamBase.h:226
AudioStreamErrorCallback * mErrorCallback
Definition AudioStreamBase.h:288
SpatializationBehavior getSpatializationBehavior() const
Definition AudioStreamBase.h:190
AudioStreamBase & operator=(const AudioStreamBase &)=default
std::string mAttributionTag
Definition AudioStreamBase.h:335
SharingMode mSharingMode
Definition AudioStreamBase.h:307
int32_t getSampleRate() const
Definition AudioStreamBase.h:64
bool isErrorCallbackSpecified() const
Definition AudioStreamBase.h:151
virtual int32_t getBufferSizeInFrames()
Definition AudioStreamBase.h:87
Definition AudioStreamCallback.h:34
Definition AudioStreamCallback.h:102