#pragma once #include "config.h" #include #include #include #include class ClickStream { public: ClickStream(): m_phase(1000000) { std::string data_s = Reichwein::File::getFile("media/click.s16le"); m_data.resize(data_s.size() / 2); // src is in bytes memcpy(m_data.data(), data_s.data(), data_s.size()); } // generate 1 buffer size void generate() { int i; size_t j = m_phase; for (i = 0; i < nframes; i++) { if (j >= m_data.size()) { buffer[i] = 0; } else { buffer[i] = m_data[j]; } j++; } m_phase = j; } void click() { m_phase = 0; } int16_t* get_buffer() { return buffer; } private: std::vector m_data; size_t m_phase; int16_t buffer[nframes]; };