3#include "AUI/Audio/ISoundPipe.h"
4#include "AUI/IO/ADynamicPipe.h"
5#include "AUI/Util/APimpl.h"
7typedef struct vorbis_info vorbis_info;
8typedef struct vorbis_comment vorbis_comment;
9typedef struct vorbis_dsp_state vorbis_dsp_state;
10typedef struct vorbis_block vorbis_block;
16 void write(
const char *src,
size_t size)
override;
18 size_t read(
char* dst,
size_t)
override;
23 bool isLastWriteSuccessful()
const {
24 return mLastWriteSuccessful;
30 enum class WaitingTarget {
37 WaitingTarget mWaitingTarget;
38 aui::fast_pimpl<vorbis_info, 8 * std::max(
sizeof(
long),
sizeof(
void*))> mInfo;
39 aui::fast_pimpl<vorbis_comment, 4 *
sizeof(
void*)> mComment;
40 aui::fast_pimpl<vorbis_dsp_state, 160> mState;
41 aui::fast_pimpl<vorbis_block, 200> mBlock;
43 ADynamicPipe mDecodedSamples;
44 bool mLastWriteSuccessful =
true;
void write(const char *src, size_t size) override
Writes exact size bytes to stream. Blocking (waiting for write all data) is allowed.
size_t read(char *dst, size_t) override
Reads up to size bytes from stream. Blocking (waiting for new data) is allowed.
AAudioFormat info() override
Get general info about sound stream.
ISoundPipe accepts sound data and outputs sound samples, useful for decoded audio passed in packets.
Definition ISoundPipe.h:10
ASampleFormat
Sample formats supported for mixing.
Definition ASampleFormat.h:12
@ I16
Signed 16-bit integer.
Definition ASampleFormat.h:16