Files
QMKhost/src/utility/buffer.hpp
2022-06-24 21:07:30 -07:00

40 lines
645 B
C++

#pragma once
#include <cstdint>
#include <vector>
#include <math.h>
// For reading FIFO
#include <fcntl.h>
#include <unistd.h>
#include "rollingbuffer.hpp"
class Buffer {
public:
Buffer(
const char *pipe_file,
size_t buffer_size,
size_t output_size
);
void update();
const std::vector<int16_t>& get_output() const {
return output;
};
private:
std::vector<int16_t> incoming;
RollingBuffer<int16_t> rolling_buffer;
std::vector<int16_t> output;
size_t buffer_size;
size_t output_size;
const char *pipe_file;
size_t sample_con_rate;
size_t sample_con_rate_up_ctr;
size_t sample_con_rate_dn_ctr;
};