30 lines
698 B
C++
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;
|
|
};
|