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