- lock_guard<recursive_mutex> lock(_mutex);
- append_data(analog.data, analog.num_samples);
+ assert(unit_size_ == sizeof(float));
+
+ lock_guard<recursive_mutex> lock(mutex_);
+
+ data_.resize((sample_count_ + sample_count) * sizeof(float));
+
+ float *dst = (float*)data_.data() + sample_count_;
+ const float *dst_end = dst + sample_count;
+ while (dst != dst_end)
+ {
+ *dst++ = *data;
+ data += stride;
+ }
+
+ sample_count_ += sample_count;