diff options
Diffstat (limited to 'ClickStream.h')
-rw-r--r-- | ClickStream.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/ClickStream.h b/ClickStream.h new file mode 100644 index 0000000..c94f8de --- /dev/null +++ b/ClickStream.h @@ -0,0 +1,57 @@ +#pragma once + +#include "config.h" + +#include <libreichwein/file.h> + +#include <cstring> +#include <string> +#include <vector> + +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<uint16_t> m_data; + size_t m_phase; + int16_t buffer[nframes]; +}; + |