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 virtual std::vector<int32_t> getDeviceIds()
const {
144 return mSharedPresentationCallback;
152 return mSharedRoutingCallback;
189 return mSharedPresentationCallback !=
nullptr;
274 return mChannelConversionAllowed;
281 return mFormatConversionAllowed;
288 return mSampleRateConversionQuality;
316 std::shared_ptr<AudioStreamDataCallback> mSharedDataCallback;
320 std::shared_ptr<AudioStreamPartialDataCallback> mSharedPartialDataCallback;
324 std::shared_ptr<AudioStreamErrorCallback> mSharedErrorCallback;
326 std::shared_ptr<AudioStreamPresentationCallback> mSharedPresentationCallback;
328 std::shared_ptr<AudioStreamRoutingCallback> mSharedRoutingCallback;
346 AudioFormat
mFormat = AudioFormat::Unspecified;
387 bool mChannelConversionAllowed =
false;
389 bool mFormatConversionAllowed =
false;
391 SampleRateConversionQuality mSampleRateConversionQuality = SampleRateConversionQuality::Medium;
393 std::vector<int32_t> mDeviceIds;
398 case AudioFormat::Unspecified:
399 case AudioFormat::I16:
400 case AudioFormat::Float:
401 case AudioFormat::I24:
402 case AudioFormat::I32:
403 case AudioFormat::IEC61937:
404 case AudioFormat::MP3:
405 case AudioFormat::AAC_LC:
406 case AudioFormat::AAC_HE_V1:
407 case AudioFormat::AAC_HE_V2:
408 case AudioFormat::AAC_ELD:
409 case AudioFormat::AAC_XHE:
410 case AudioFormat::OPUS:
414 return Result::ErrorInvalidFormat;
417 switch (mSampleRateConversionQuality) {
418 case SampleRateConversionQuality::None:
419 case SampleRateConversionQuality::Fastest:
420 case SampleRateConversionQuality::Low:
421 case SampleRateConversionQuality::Medium:
422 case SampleRateConversionQuality::High:
423 case SampleRateConversionQuality::Best:
426 return Result::ErrorIllegalArgument;
Definition AudioStreamBase.h:31
bool isPartialDataCallbackSpecified() const
Definition AudioStreamBase.h:165
int32_t mHardwareSampleRate
Definition AudioStreamBase.h:382
Usage getUsage() const
Definition AudioStreamBase.h:195
AudioFormat mHardwareFormat
Definition AudioStreamBase.h:384
SpatializationBehavior mSpatializationBehavior
Definition AudioStreamBase.h:377
virtual int32_t getDeviceId() const
Definition AudioStreamBase.h:107
AudioStreamDataCallback * getDataCallback() const
Definition AudioStreamBase.h:119
SampleRateConversionQuality getSampleRateConversionQuality() const
Definition AudioStreamBase.h:287
InputPreset mInputPreset
Definition AudioStreamBase.h:359
SharingMode getSharingMode() const
Definition AudioStreamBase.h:97
std::string getAttributionTag() const
Definition AudioStreamBase.h:268
Direction mDirection
Definition AudioStreamBase.h:348
PerformanceMode getPerformanceMode() const
Definition AudioStreamBase.h:102
int32_t mFramesPerCallback
Definition AudioStreamBase.h:331
int32_t mBufferSizeInFrames
Definition AudioStreamBase.h:339
PrivacySensitiveMode getPrivacySensitiveMode() const
Definition AudioStreamBase.h:246
AudioFormat getHardwareFormat() const
Definition AudioStreamBase.h:311
Usage mUsage
Definition AudioStreamBase.h:353
InputPreset getInputPreset() const
Definition AudioStreamBase.h:205
virtual Result isValidConfig()
Definition AudioStreamBase.h:396
ContentType mContentType
Definition AudioStreamBase.h:355
int32_t mChannelCount
Definition AudioStreamBase.h:333
PrivacySensitiveMode mPrivacySensitiveMode
Definition AudioStreamBase.h:367
int32_t getHardwareSampleRate() const
Definition AudioStreamBase.h:306
AudioStreamDataCallback * mDataCallback
Definition AudioStreamBase.h:315
AllowedCapturePolicy mAllowedCapturePolicy
Definition AudioStreamBase.h:364
Direction getDirection() const
Definition AudioStreamBase.h:59
std::shared_ptr< AudioStreamRoutingCallback > getRoutingCallback() const
Definition AudioStreamBase.h:151
AudioStreamErrorCallback * getErrorCallback() const
Definition AudioStreamBase.h:135
bool anyDataCallbackSpecified() const
Definition AudioStreamBase.h:172
AudioFormat mFormat
Definition AudioStreamBase.h:346
std::shared_ptr< AudioStreamPresentationCallback > getPresentationCallback() const
Definition AudioStreamBase.h:143
int32_t mHardwareChannelCount
Definition AudioStreamBase.h:380
int32_t getChannelCount() const
Definition AudioStreamBase.h:54
int32_t getFramesPerCallback() const
Definition AudioStreamBase.h:69
ChannelMask getChannelMask() const
Definition AudioStreamBase.h:294
int32_t mSampleRate
Definition AudioStreamBase.h:335
bool isDataCallbackSpecified() const
Definition AudioStreamBase.h:158
bool mIsContentSpatialized
Definition AudioStreamBase.h:375
bool isContentSpatialized() const
Definition AudioStreamBase.h:216
SessionId getSessionId() const
Definition AudioStreamBase.h:211
ChannelMask mChannelMask
Definition AudioStreamBase.h:341
bool isChannelConversionAllowed() const
Definition AudioStreamBase.h:273
AudioStreamBase(const AudioStreamBase &)=default
ContentType getContentType() const
Definition AudioStreamBase.h:200
virtual int32_t getBufferCapacityInFrames() const
Definition AudioStreamBase.h:92
AudioFormat getFormat() const
Definition AudioStreamBase.h:79
PerformanceMode mPerformanceMode
Definition AudioStreamBase.h:350
bool isPresentationCallbackSpecified() const
Definition AudioStreamBase.h:188
int32_t getFramesPerDataCallback() const
Definition AudioStreamBase.h:74
SessionId mSessionId
Definition AudioStreamBase.h:361
std::string mPackageName
Definition AudioStreamBase.h:370
int32_t mBufferCapacityInFrames
Definition AudioStreamBase.h:337
bool isFormatConversionAllowed() const
Definition AudioStreamBase.h:280
AllowedCapturePolicy getAllowedCapturePolicy() const
Definition AudioStreamBase.h:233
int32_t getHardwareChannelCount() const
Definition AudioStreamBase.h:301
std::string getPackageName() const
Definition AudioStreamBase.h:257
AudioStreamErrorCallback * mErrorCallback
Definition AudioStreamBase.h:323
AudioStreamPartialDataCallback * getPartialDataCallback() const
Definition AudioStreamBase.h:127
SpatializationBehavior getSpatializationBehavior() const
Definition AudioStreamBase.h:221
AudioStreamBase & operator=(const AudioStreamBase &)=default
AudioStreamPartialDataCallback * mPartialDataCallback
Definition AudioStreamBase.h:319
std::string mAttributionTag
Definition AudioStreamBase.h:372
SharingMode mSharingMode
Definition AudioStreamBase.h:344
int32_t getSampleRate() const
Definition AudioStreamBase.h:64
bool isErrorCallbackSpecified() const
Definition AudioStreamBase.h:181
virtual int32_t getBufferSizeInFrames()
Definition AudioStreamBase.h:87
Definition AudioStreamCallback.h:34
Definition AudioStreamCallback.h:102
Definition AudioStreamCallback.h:230