MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ write_series()

void MayaFlux::Kakshya::PlotContainer::write_series ( uint32_t  index,
std::span< const double >  samples 
)

Write the full sample buffer for a series.

Parameters
indexSeries index from add_series().
samplesSource data. Must match the series sample count.

Definition at line 60 of file PlotContainer.cpp.

61{
62 if (index >= m_data.size()) {
63 MF_ERROR(C, X, "PlotContainer::write_series: index {} out of range", index);
64 return;
65 }
66
67 auto* vec = std::get_if<std::vector<double>>(&m_data[index]);
68 if (!vec) {
69 MF_ERROR(C, X, "PlotContainer::write_series: series {} has unexpected variant type", index);
70 return;
71 }
72
73 const uint64_t n = std::min<uint64_t>(samples.size(), vec->size());
74 Memory::SeqlockWriteGuard g(m_series_locks[index]);
75 std::copy_n(samples.begin(), n, vec->begin());
76}
#define MF_ERROR(comp, ctx,...)
std::vector< DataVariant > m_data
Memory::SeqlockArray m_series_locks

References m_data, m_series_locks, and MF_ERROR.