bpmdetect 0.8.11
Automatic BPM detection tool
Loading...
Searching...
No Matches
sampleringbuffer.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-3.0-or-later
3#pragma once
4#include <atomic>
5#include <cstddef>
6#include <span>
7#include <vector>
8
16public:
19 explicit SampleRingBuffer(std::size_t capacity);
27 void discardAll();
28
29private:
30 std::vector<float> storage_;
31 std::size_t mask_ = 0;
32 std::atomic<std::size_t> readPosition_{0};
33 std::atomic<std::size_t> writePosition_{0};
34};
SampleRingBuffer(std::size_t capacity)
Definition sampleringbuffer.cpp:7
std::size_t read(std::span< float > destination)
Definition sampleringbuffer.cpp:25
std::size_t write(std::span< const float > samples)
Definition sampleringbuffer.cpp:11
void discardAll()
Definition sampleringbuffer.cpp:37