Sha256: 6dca5f97db36ae0b339be85f1b6f0b4208c86b2771823137c73ba7a926342991
Contents?: true
Size: 1.22 KB
Versions: 22
Compression:
Stored size: 1.22 KB
Contents
#ifndef GOSUIMPL_AUDIO_AUDIOFILE_HPP #define GOSUIMPL_AUDIO_AUDIOFILE_HPP #include <boost/noncopyable.hpp> #include <vector> #import <OpenAL/al.h> namespace Gosu { class AudioFile : boost::noncopyable { std::vector<char> decodedData_; public: virtual ~AudioFile() {} virtual ALenum format() const = 0; virtual ALuint sampleRate() const = 0; virtual std::size_t readData(void* dest, std::size_t length) = 0; virtual void rewind() = 0; const std::vector<char>& decodedData() { static const unsigned INCREMENT = 512*1024; if (!decodedData_.empty()) return decodedData_; for (;;) { decodedData_.resize(decodedData_.size() + INCREMENT); int readBytes = readData(&decodedData_[decodedData_.size() - INCREMENT], INCREMENT); if (readBytes < INCREMENT) { decodedData_.resize(decodedData_.size() - INCREMENT + readBytes); break; } } return decodedData_; } }; } #endif
Version data entries
22 entries across 22 versions & 1 rubygems