#include "stream_wrapper.h" #include "ringbuffer.h" #include #pragma once class logger_record : public pwstream { public: logger_record(pw_loop* lp, ringbuffer* ring_buffer, const char* strm_name="aec-sink", const char* category="Sink"); void on_process() override; void request_noise(bool flag, float stddef=0.1f); // Add -20dB noise private: ringbuffer* rb; bool do_noise; std::mt19937_64 rd; std::normal_distribution nd; }; class logger_playback : public pwstream { public: logger_playback(pw_loop* lp, ringbuffer* ring_buffer, bool cutLeft=false,bool cutRight=false, bool noisy=false); void on_process() override; private: ringbuffer* rb; bool lcut,rcut; };