mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-09 13:07:03 +03:00
20 lines
521 B
C++
20 lines
521 B
C++
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <istream>
|
|
#include <streambuf>
|
|
|
|
namespace bell {
|
|
struct MemoryBuffer : std::streambuf {
|
|
MemoryBuffer(std::byte const* base, size_t size) {
|
|
std::byte* p(const_cast<std::byte*>(base));
|
|
this->setg((char*)p, (char*)p, (char*)p + size);
|
|
}
|
|
};
|
|
struct IMemoryStream : virtual MemoryBuffer, std::istream {
|
|
IMemoryStream(std::byte const* base, size_t size)
|
|
: MemoryBuffer(base, size),
|
|
std::istream(static_cast<std::streambuf*>(this)) {}
|
|
};
|
|
} // namespace bell
|