#include 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 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(); } }