3#include <BufferStream.h>
9XWV::XWV(std::span<const std::byte> xwvData) {
10 BufferStreamReadOnly stream{xwvData.data(), xwvData.size()};
15 stream.set_big_endian(
true);
16 if (stream.read<uint32_t>() != 4) {
19 stream.skip<uint32_t>(2);
21 const auto dataOffset = stream.read<uint32_t>();
22 const auto dataLength = stream.read<uint32_t>();
23 this->
data = stream.at_bytes(dataLength, dataOffset);
26 stream.skip<uint16_t>();
34 :
XWV(fs::readFileBuffer(xwvPath)) {}
36XWV::operator bool()
const {
uint8_t getQuality() const
std::vector< std::byte > data
const std::vector< std::byte > & getData() const
int32_t getLoopStart() const
uint8_t getChannelCount() const
uint16_t getLoopBlock() const
Frequency getFrequency() const
uint16_t trailingSampleCount
uint32_t decodedSampleCount
uint16_t leadingSampleCount
XWV(std::span< const std::byte > xwvData)
uint8_t getBitsPerSample() const
uint16_t getLeadingSampleCount() const
uint16_t getTrailingSampleCount() const
uint32_t getDecodedSampleCount() const
constexpr auto XWV_SIGNATURE