17 #ifndef OBOE_STREAM_H_ 18 #define OBOE_STREAM_H_ 24 #include "oboe/Definitions.h" 25 #include "oboe/ResultWithValue.h" 26 #include "oboe/AudioStreamBuilder.h" 27 #include "oboe/AudioStreamBase.h" 163 int64_t timeoutNanoseconds) = 0;
178 return Result::ErrorUnimplemented;
289 return Result::ErrorUnimplemented;
401 return previousCallback;
419 int64_t timeoutNanoseconds);
433 return mErrorCallbackCalled.exchange(
true);
444 int64_t timeoutNanoseconds);
454 return DataCallbackResult::Stop;
471 return mDataCallbackEnabled;
479 mDataCallbackEnabled = enabled;
501 int mPreviousScheduler = -1;
503 std::atomic<bool> mDataCallbackEnabled{
false};
504 std::atomic<bool> mErrorCallbackCalled{
false};
516 audioStream->
close();
virtual DataCallbackResult onDefaultCallback(void *, int)
Definition: AudioStream.h:453
virtual Result stop(int64_t timeoutNanoseconds=kDefaultTimeoutNanos)
Definition: AudioStreamBuilder.h:31
ResultWithValue< int32_t > getAvailableFrames()
void setDataCallbackEnabled(bool enabled)
Definition: AudioStream.h:478
bool usesAAudio() const
Definition: AudioStream.h:358
virtual Result flush(int64_t timeoutNanoseconds=kDefaultTimeoutNanos)
int32_t getBytesPerFrame() const
Definition: AudioStream.h:216
virtual Result start(int64_t timeoutNanoseconds=kDefaultTimeoutNanos)
constexpr int64_t kDefaultTimeoutNanos
Definition: AudioStream.h:39
virtual ResultWithValue< int32_t > getXRunCount() const
Definition: AudioStream.h:193
std::atomic< int64_t > mFramesWritten
Definition: AudioStream.h:488
DataCallbackResult fireDataCallback(void *audioData, int numFrames)
virtual void * getUnderlyingStream() const
Definition: AudioStream.h:370
virtual void updateFramesWritten()=0
virtual int64_t getFramesWritten()
ResultWithValue< int32_t > waitForAvailableFrames(int32_t numFrames, int64_t timeoutNanoseconds)
Definition: AudioStreamCallback.h:33
int32_t mChannelCount
Definition: AudioStreamBase.h:156
DataCallbackResult
Definition: Definitions.h:119
AudioApi
Definition: Definitions.h:213
virtual Result waitForStateTransition(StreamState startingState, StreamState endingState, int64_t timeoutNanoseconds)
virtual int32_t getFramesPerBurst()=0
virtual ResultWithValue< int32_t > setBufferSizeInFrames(int32_t)
Definition: AudioStream.h:177
virtual ResultWithValue< double > calculateLatencyMillis()
Definition: AudioStream.h:265
virtual Result getTimestamp(clockid_t, int64_t *, int64_t *)
Definition: AudioStream.h:286
virtual Result open()
Definition: AudioStream.h:66
virtual int64_t getFramesRead()
Definition: AudioStream.h:44
bool isDataCallbackEnabled()
Definition: AudioStream.h:470
virtual ResultWithValue< int32_t > read(void *, int32_t, int64_t)
Definition: AudioStream.h:340
virtual Result requestPause()=0
virtual ResultWithValue< int32_t > write(const void *, int32_t, int64_t)
Definition: AudioStream.h:322
std::atomic< int64_t > mFramesRead
Definition: AudioStream.h:496
Definition: AudioStreamBase.h:29
constexpr int64_t kNanosPerMillisecond
Definition: Definitions.h:43
virtual Result requestStop()=0
virtual AudioApi getAudioApi() const =0
virtual Result waitForStateChange(StreamState inputState, StreamState *nextState, int64_t timeoutNanoseconds)=0
Result
Definition: Definitions.h:131
Definition: AudioStream.h:513
Definition: AudioStream.h:31
bool wasErrorCallbackCalled()
Definition: AudioStream.h:432
virtual bool isXRunCountSupported() const =0
AudioStreamCallback * mStreamCallback
Definition: AudioStreamBase.h:152
virtual Result requestStart()=0
StreamState
Definition: Definitions.h:58
virtual StreamState getState() const =0
virtual Result pause(int64_t timeoutNanoseconds=kDefaultTimeoutNanos)
virtual Result requestFlush()=0
virtual void updateFramesRead()=0
int32_t getBytesPerSample() const
Definition: ResultWithValue.h:47