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 {
144 return mSharedPresentationCallback;
181 return mSharedPresentationCallback !=
nullptr;
265 return mChannelConversionAllowed;
272 return mFormatConversionAllowed;
279 return mSampleRateConversionQuality;
307 std::shared_ptr<AudioStreamDataCallback> mSharedDataCallback;
311 std::shared_ptr<AudioStreamPartialDataCallback> mSharedPartialDataCallback;
315 std::shared_ptr<AudioStreamErrorCallback> mSharedErrorCallback;
317 std::shared_ptr<AudioStreamPresentationCallback> mSharedPresentationCallback;
335 AudioFormat
mFormat = AudioFormat::Unspecified;
376 bool mChannelConversionAllowed =
false;
378 bool mFormatConversionAllowed =
false;
380 SampleRateConversionQuality mSampleRateConversionQuality = SampleRateConversionQuality::Medium;
382 std::vector<int32_t> mDeviceIds;
387 case AudioFormat::Unspecified:
388 case AudioFormat::I16:
389 case AudioFormat::Float:
390 case AudioFormat::I24:
391 case AudioFormat::I32:
392 case AudioFormat::IEC61937:
393 case AudioFormat::MP3:
394 case AudioFormat::AAC_LC:
395 case AudioFormat::AAC_HE_V1:
396 case AudioFormat::AAC_HE_V2:
397 case AudioFormat::AAC_ELD:
398 case AudioFormat::AAC_XHE:
399 case AudioFormat::OPUS:
403 return Result::ErrorInvalidFormat;
406 switch (mSampleRateConversionQuality) {
407 case SampleRateConversionQuality::None:
408 case SampleRateConversionQuality::Fastest:
409 case SampleRateConversionQuality::Low:
410 case SampleRateConversionQuality::Medium:
411 case SampleRateConversionQuality::High:
412 case SampleRateConversionQuality::Best:
415 return Result::ErrorIllegalArgument;
Definition AudioStreamBase.h:31
bool isPartialDataCallbackSpecified() const
Definition AudioStreamBase.h:157
int32_t mHardwareSampleRate
Definition AudioStreamBase.h:371
int32_t getDeviceId() const
Definition AudioStreamBase.h:107
Usage getUsage() const
Definition AudioStreamBase.h:187
AudioFormat mHardwareFormat
Definition AudioStreamBase.h:373
SpatializationBehavior mSpatializationBehavior
Definition AudioStreamBase.h:366
AudioStreamDataCallback * getDataCallback() const
Definition AudioStreamBase.h:119
SampleRateConversionQuality getSampleRateConversionQuality() const
Definition AudioStreamBase.h:278
InputPreset mInputPreset
Definition AudioStreamBase.h:348
SharingMode getSharingMode() const
Definition AudioStreamBase.h:97
std::string getAttributionTag() const
Definition AudioStreamBase.h:259
Direction mDirection
Definition AudioStreamBase.h:337
PerformanceMode getPerformanceMode() const
Definition AudioStreamBase.h:102
int32_t mFramesPerCallback
Definition AudioStreamBase.h:320
int32_t mBufferSizeInFrames
Definition AudioStreamBase.h:328
PrivacySensitiveMode getPrivacySensitiveMode() const
Definition AudioStreamBase.h:237
AudioFormat getHardwareFormat() const
Definition AudioStreamBase.h:302
Usage mUsage
Definition AudioStreamBase.h:342
InputPreset getInputPreset() const
Definition AudioStreamBase.h:197
virtual Result isValidConfig()
Definition AudioStreamBase.h:385
ContentType mContentType
Definition AudioStreamBase.h:344
int32_t mChannelCount
Definition AudioStreamBase.h:322
PrivacySensitiveMode mPrivacySensitiveMode
Definition AudioStreamBase.h:356
int32_t getHardwareSampleRate() const
Definition AudioStreamBase.h:297
AudioStreamDataCallback * mDataCallback
Definition AudioStreamBase.h:306
AllowedCapturePolicy mAllowedCapturePolicy
Definition AudioStreamBase.h:353
Direction getDirection() const
Definition AudioStreamBase.h:59
AudioStreamErrorCallback * getErrorCallback() const
Definition AudioStreamBase.h:135
bool anyDataCallbackSpecified() const
Definition AudioStreamBase.h:164
AudioFormat mFormat
Definition AudioStreamBase.h:335
std::shared_ptr< AudioStreamPresentationCallback > getPresentationCallback() const
Definition AudioStreamBase.h:143
int32_t mHardwareChannelCount
Definition AudioStreamBase.h:369
int32_t getChannelCount() const
Definition AudioStreamBase.h:54
int32_t getFramesPerCallback() const
Definition AudioStreamBase.h:69
ChannelMask getChannelMask() const
Definition AudioStreamBase.h:285
int32_t mSampleRate
Definition AudioStreamBase.h:324
bool isDataCallbackSpecified() const
Definition AudioStreamBase.h:150
bool mIsContentSpatialized
Definition AudioStreamBase.h:364
bool isContentSpatialized() const
Definition AudioStreamBase.h:207
SessionId getSessionId() const
Definition AudioStreamBase.h:202
ChannelMask mChannelMask
Definition AudioStreamBase.h:330
bool isChannelConversionAllowed() const
Definition AudioStreamBase.h:264
AudioStreamBase(const AudioStreamBase &)=default
ContentType getContentType() const
Definition AudioStreamBase.h:192
virtual int32_t getBufferCapacityInFrames() const
Definition AudioStreamBase.h:92
AudioFormat getFormat() const
Definition AudioStreamBase.h:79
PerformanceMode mPerformanceMode
Definition AudioStreamBase.h:339
bool isPresentationCallbackSpecified() const
Definition AudioStreamBase.h:180
int32_t getFramesPerDataCallback() const
Definition AudioStreamBase.h:74
SessionId mSessionId
Definition AudioStreamBase.h:350
std::string mPackageName
Definition AudioStreamBase.h:359
int32_t mBufferCapacityInFrames
Definition AudioStreamBase.h:326
bool isFormatConversionAllowed() const
Definition AudioStreamBase.h:271
AllowedCapturePolicy getAllowedCapturePolicy() const
Definition AudioStreamBase.h:224
int32_t getHardwareChannelCount() const
Definition AudioStreamBase.h:292
std::string getPackageName() const
Definition AudioStreamBase.h:248
AudioStreamErrorCallback * mErrorCallback
Definition AudioStreamBase.h:314
AudioStreamPartialDataCallback * getPartialDataCallback() const
Definition AudioStreamBase.h:127
SpatializationBehavior getSpatializationBehavior() const
Definition AudioStreamBase.h:212
AudioStreamBase & operator=(const AudioStreamBase &)=default
AudioStreamPartialDataCallback * mPartialDataCallback
Definition AudioStreamBase.h:310
std::string mAttributionTag
Definition AudioStreamBase.h:361
SharingMode mSharingMode
Definition AudioStreamBase.h:333
int32_t getSampleRate() const
Definition AudioStreamBase.h:64
bool isErrorCallbackSpecified() const
Definition AudioStreamBase.h:173
virtual int32_t getBufferSizeInFrames()
Definition AudioStreamBase.h:87
Definition AudioStreamCallback.h:34
Definition AudioStreamCallback.h:102
Definition AudioStreamCallback.h:210