16 #ifndef AACE_AUDIO_AUDIO_FORMAT_H 17 #define AACE_AUDIO_AUDIO_FORMAT_H 30 enum class Encoding { UNKNOWN, LPCM, MP3, OPUS };
32 enum class SampleFormat { UNKNOWN, SIGNED, UNSIGNED, FLOAT };
34 enum class Layout { UNKNOWN, NON_INTERLEAVED, INTERLEAVED };
36 enum class Endianness { UNKNOWN, LITTLE, BIG };
38 static AudioFormat UNKNOWN;
41 AudioFormat() =
default;
46 SampleFormat sampleFormat,
48 Endianness endianness,
59 Encoding getEncoding();
61 SampleFormat getSampleFormat();
65 Endianness getEndianness();
67 uint32_t getSampleRate();
69 uint8_t getSampleSize();
71 uint8_t getNumChannels();
75 SampleFormat m_sampleFormat;
77 Endianness m_endianness;
78 uint32_t m_sampleRate;
83 inline std::ostream& operator<<(std::ostream& stream,
const AudioFormat::Encoding& encoding) {
85 case AudioFormat::Encoding::UNKNOWN:
88 case AudioFormat::Encoding::LPCM:
91 case AudioFormat::Encoding::MP3:
94 case AudioFormat::Encoding::OPUS:
101 inline std::ostream& operator<<(std::ostream& stream,
const AudioFormat::SampleFormat& sampleFormat) {
102 switch (sampleFormat) {
103 case AudioFormat::SampleFormat::UNKNOWN:
106 case AudioFormat::SampleFormat::SIGNED:
109 case AudioFormat::SampleFormat::UNSIGNED:
110 stream <<
"UNSIGNED";
112 case AudioFormat::SampleFormat::FLOAT:
119 inline std::ostream& operator<<(std::ostream& stream,
const AudioFormat::Layout& layout) {
121 case AudioFormat::Layout::UNKNOWN:
124 case AudioFormat::Layout::NON_INTERLEAVED:
125 stream <<
"NON_INTERLEAVED";
127 case AudioFormat::Layout::INTERLEAVED:
128 stream <<
"INTERLEAVED";
134 inline std::ostream& operator<<(std::ostream& stream,
const AudioFormat::Endianness& endianness) {
135 switch (endianness) {
136 case AudioFormat::Endianness::UNKNOWN:
139 case AudioFormat::Endianness::LITTLE:
142 case AudioFormat::Endianness::BIG:
152 #endif // AACE_AUDIO_AUDIO_FORMAT_H Definition: AddressBook.h:26