#include <algorithm>
-#include <boost/foreach.hpp>
-
#include "analogsnapshot.h"
-using boost::lock_guard;
-using boost::recursive_mutex;
+using std::lock_guard;
+using std::recursive_mutex;
using std::max;
using std::max_element;
using std::min;
logf(EnvelopeScaleFactor);
const uint64_t AnalogSnapshot::EnvelopeDataUnit = 64*1024; // bytes
-AnalogSnapshot::AnalogSnapshot() :
+AnalogSnapshot::AnalogSnapshot(const uint64_t expected_num_samples) :
Snapshot(sizeof(float))
{
+ set_capacity(expected_num_samples);
+
lock_guard<recursive_mutex> lock(_mutex);
memset(_envelope_levels, 0, sizeof(_envelope_levels));
}
AnalogSnapshot::~AnalogSnapshot()
{
lock_guard<recursive_mutex> lock(_mutex);
- BOOST_FOREACH(Envelope &e, _envelope_levels)
+ for (Envelope &e : _envelope_levels)
free(e.samples);
}
lock_guard<recursive_mutex> lock(_mutex);
- _data = realloc(_data, (_sample_count + sample_count) * sizeof(float));
+ _data.resize((_sample_count + sample_count) * sizeof(float));
- float *dst = (float*)_data + _sample_count;
+ float *dst = (float*)_data.data() + _sample_count;
const float *dst_end = dst + sample_count;
while (dst != dst_end)
{
lock_guard<recursive_mutex> lock(_mutex);
float *const data = new float[end_sample - start_sample];
- memcpy(data, (float*)_data + start_sample, sizeof(float) *
+ memcpy(data, (float*)_data.data() + start_sample, sizeof(float) *
(end_sample - start_sample));
return data;
}
dest_ptr = e0.samples + prev_length;
// Iterate through the samples to populate the first level mipmap
- const float *const end_src_ptr = (float*)_data +
+ const float *const end_src_ptr = (float*)_data.data() +
e0.length * EnvelopeScaleFactor;
- for (const float *src_ptr = (float*)_data +
+ for (const float *src_ptr = (float*)_data.data() +
prev_length * EnvelopeScaleFactor;
src_ptr < end_src_ptr; src_ptr += EnvelopeScaleFactor)
{