From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/libvp6/include/Aud.hpp | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 Src/libvp6/include/Aud.hpp (limited to 'Src/libvp6/include/Aud.hpp') diff --git a/Src/libvp6/include/Aud.hpp b/Src/libvp6/include/Aud.hpp new file mode 100644 index 00000000..1dd97687 --- /dev/null +++ b/Src/libvp6/include/Aud.hpp @@ -0,0 +1,79 @@ +#ifndef AUD_HPP +#define AUD_HPP + +#include +#include +#include + +namespace Aud +{ + class FileError : public exception + { + public: + explicit FileError(const char* message); + const char* what() const; + private: + const std::string message; + }; + + + enum { samplesPerSec = 48000 }; + + enum { sampleSizeInBits = 16, sampleSizeInBytes = 2 }; + + enum { numberOfChannels = 2 }; + + enum { blockAlign = numberOfChannels * sampleSizeInBytes }; + + + class File + { + public: + + enum mode_t { in, out }; + + File(); + File(const char* name, mode_t mode); + + ~File(); + + void open(const char* name, mode_t mode); + void close(); + + bool isOpen() const; + bool eof() const; + + mode_t mode() const; + const char* name() const; + + int sampleCount() const; + + void seekSample(int sampleNum) const; + + size_t read(void* buffer, size_t size) const; + + void write(const void* buffer, size_t size); + + typedef __int64 offset_t; + offset_t offset() const; + + void seekOffset(offset_t) const; + + private: + + File(const File&); + File& operator=(const File&); + + void init(); + + int handle_; + + char name_[_MAX_PATH]; + mode_t mode_; + + int m_sampleCount; + }; + +} //end namespace Aud + +#endif -- cgit