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" 161 int64_t timeoutNanoseconds) = 0;
176 return Result::ErrorUnimplemented;
283 int64_t *framePosition,
284 int64_t *timeNanoseconds) {
285 return Result::ErrorUnimplemented;
304 return Result::ErrorUnimplemented;
322 int64_t timeoutNanoseconds) {
340 int64_t timeoutNanoseconds) {
387 int64_t timeoutNanoseconds);
397 return DataCallbackResult::Stop;
424 return mDataCallbackEnabled;
432 mDataCallbackEnabled = enabled;
454 int mPreviousScheduler = -1;
456 std::atomic<bool> mDataCallbackEnabled{};
virtual Result stop(int64_t timeoutNanoseconds=kDefaultTimeoutNanos)
Definition: AudioStreamBuilder.h:28
void setDataCallbackEnabled(bool enabled)
Definition: AudioStream.h:431
bool usesAAudio() const
Definition: AudioStream.h:356
virtual Result flush(int64_t timeoutNanoseconds=kDefaultTimeoutNanos)
int32_t getBytesPerFrame() const
Definition: AudioStream.h:214
virtual Result start(int64_t timeoutNanoseconds=kDefaultTimeoutNanos)
constexpr int64_t kDefaultTimeoutNanos
Definition: AudioStream.h:39
virtual ResultWithValue< int32_t > getXRunCount() const
Definition: AudioStream.h:191
std::atomic< int64_t > mFramesWritten
Definition: AudioStream.h:441
DataCallbackResult fireDataCallback(void *audioData, int numFrames)
virtual void * getUnderlyingStream() const
Definition: AudioStream.h:368
virtual void updateFramesWritten()=0
virtual int64_t getFramesWritten()
virtual ResultWithValue< int32_t > setBufferSizeInFrames(int32_t requestedFrames)
Definition: AudioStream.h:175
virtual StreamState getState()=0
int32_t mChannelCount
Definition: AudioStreamBase.h:135
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< double > calculateLatencyMillis()
Definition: AudioStream.h:263
virtual int64_t getFramesRead()
Definition: AudioStream.h:44
bool isDataCallbackEnabled()
Definition: AudioStream.h:423
virtual ResultWithValue< FrameTimestamp > getTimestamp(clockid_t clockId)
Definition: AudioStream.h:303
virtual Result requestPause()=0
std::atomic< int64_t > mFramesRead
Definition: AudioStream.h:449
Definition: AudioStreamBase.h:29
virtual ResultWithValue< int32_t > read(void *buffer, int32_t numFrames, int64_t timeoutNanoseconds)
Definition: AudioStream.h:338
constexpr int64_t kNanosPerMillisecond
Definition: Definitions.h:43
virtual ResultWithValue< int32_t > write(const void *buffer, int32_t numFrames, int64_t timeoutNanoseconds)
Definition: AudioStream.h:320
virtual DataCallbackResult onDefaultCallback(void *audioData, int numFrames)
Definition: AudioStream.h:396
virtual Result requestStop()=0
virtual AudioApi getAudioApi() const =0
virtual Result getTimestamp(clockid_t clockId, int64_t *framePosition, int64_t *timeNanoseconds)
Definition: AudioStream.h:282
virtual Result waitForStateChange(StreamState inputState, StreamState *nextState, int64_t timeoutNanoseconds)=0
Result
Definition: Definitions.h:131
Definition: AudioStream.h:31
virtual bool isXRunCountSupported() const =0
virtual Result requestStart()=0
StreamState
Definition: Definitions.h:58
virtual Result pause(int64_t timeoutNanoseconds=kDefaultTimeoutNanos)
virtual Result requestFlush()=0
virtual void updateFramesRead()=0
int32_t getBytesPerSample() const
Definition: ResultWithValue.h:47