40 lines
586 B
C++
40 lines
586 B
C++
#include <psemek/audio/wave/silence.hpp>
|
|
|
|
namespace psemek::audio
|
|
{
|
|
|
|
namespace
|
|
{
|
|
|
|
struct silence_impl
|
|
: stream
|
|
{
|
|
std::size_t read(float * data, std::size_t sample_count) override
|
|
{
|
|
std::fill(data, data + sample_count, 0.f);
|
|
played_ += sample_count;
|
|
return sample_count;
|
|
}
|
|
|
|
std::optional<std::size_t> length() const override
|
|
{
|
|
return std::nullopt;
|
|
}
|
|
|
|
std::size_t played() const override
|
|
{
|
|
return played_;
|
|
}
|
|
|
|
private:
|
|
std::size_t played_ = 0;
|
|
};
|
|
|
|
}
|
|
|
|
stream_ptr silence()
|
|
{
|
|
return std::make_shared<silence_impl>();
|
|
}
|
|
|
|
}
|