VIANC/pw_plugin/passthrough.h

30 lines
698 B
C++

#include "stream_wrapper.h"
#include "ringbuffer.h"
#include <random>
#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<float> 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;
};