Contains the last ALSA specific error code.
Buffer for outputting audio data.
Contains buffer size in samples.
Due to how ALSA works, the pcm handle is accessed from there directly, also keeps a reference of it to avoid calling the destructor.
The ID of the audio thread if there's any.
The last error code that was encountered, or 0 if none.
Internal state flags.
Returns the thread ID of the stream thread. Warning: It is not advised to join this thread.
Called periodically request more data to device output. Target must not call any functions that either suspend the thread, or would impact real-time performance (disk operations, etc).
Called when a buffer underflow error have occured. (Optional)
Runs the audio thread. This either means that it'll create a new low-level thread to feed the stream a steady amount of data, or use whatever the backend on the OS has.
Suspends the audio thread by allowing it to escape normally and close things safely, or suspending it on the backend.
Implements an ALSA output stream.