21 has_new_data_ =
false;
31 has_new_data_ =
false;
50 std::atomic_bool has_new_data_{
false};
72 if ( buffer_.has_new_data() && !has_frames_left() )
75 buffer_.swap_read_buffer( current_buffer_ );
78 const auto size = frames_to_copy( frames_per_buffer );
79 std::memcpy( data, current_frame(), size * frame_size_in_bytes() );
80 increase_frame_index( size );
85 return continue_reading_ || has_frames_left();
90 continue_reading_ = continue_reading;
95 bool continue_reading_ =
true;
Definition: double_buffer.hpp:59
Definition: sample.hpp:28
double_buffer_t & operator=(const double_buffer_t &)=delete
constexpr void set_continue_reading(bool continue_reading) noexcept
Definition: double_buffer.hpp:88
void swap(sample_t &lhs, sample_t &rhs)
Definition: sample.hpp:65
void read_data() noexcept
Definition: double_buffer.hpp:29
void swap_buffers() noexcept
Definition: double_buffer.hpp:39
void read(frame_rep *data, std::size_t frames_per_buffer)
Definition: double_buffer.hpp:70
Definition: sample.hpp:74
double_buffer_reader_t(double_buffer_t &buffer) noexcept
Definition: double_buffer.hpp:65
Definition: double_buffer.hpp:53
void swap_write_buffer(sample_t &buffer)
Definition: double_buffer.hpp:24
sample_t::size_type size_type
Definition: double_buffer.hpp:63
constexpr bool continue_reading() const noexcept
Definition: double_buffer.hpp:83
sample_t::frame_rep frame_rep
Definition: double_buffer.hpp:62
Definition: sample.hpp:103
void swap_read_buffer(sample_t &buffer) noexcept
Definition: double_buffer.hpp:18
float frame_rep
Definition: sample.hpp:30
Definition: double_buffer.hpp:11
read_write_lockable< sample_t > current_buffer_
Definition: double_buffer.hpp:56
std::vector< frame_rep >::size_type size_type
Definition: sample.hpp:31
double_buffer_t()=default
bool has_new_data() const noexcept
Definition: double_buffer.hpp:34