#pragma once #include #include #include namespace vorbis{ class header{ public: header(); bool read(char* newData, unsigned int length); int getHeaderType(); long unsigned int getVorbisVersion(); char getAudioChannels(); long unsigned int getAudioSampleRate(); long unsigned int getBitrateMaximum(); long unsigned int getBitrateNominal(); long unsigned int getBitrateMinimum(); char getBlockSize0(); char getBlockSize1(); char getFramingFlag(); std::string toPrettyString(size_t indent = 0); protected: uint32_t getInt32(size_t index); uint32_t getInt24(size_t index); uint16_t getInt16(size_t index); private: char* data; unsigned int datasize; bool checkDataSize(unsigned int size); bool validate(); }; }