#include <algorithm>
+#include "analog.hpp"
#include "analogsegment.hpp"
using std::lock_guard;
logf(EnvelopeScaleFactor);
const uint64_t AnalogSegment::EnvelopeDataUnit = 64*1024; // bytes
-AnalogSegment::AnalogSegment(uint64_t samplerate) :
+AnalogSegment::AnalogSegment(Analog& owner, uint64_t samplerate) :
Segment(samplerate, sizeof(float)),
+ owner_(owner),
min_value_(0),
max_value_(0)
{
lock_guard<recursive_mutex> lock(mutex_);
+ uint64_t prev_sample_count = sample_count_;
+
for (uint32_t i=0; i < sample_count; i++) {
append_single_sample((void*)data);
data += stride;
// Generate the first mip-map from the data
append_payload_to_envelope_levels();
+
+ if (sample_count > 1)
+ owner_.notify_samples_added(this, prev_sample_count + 1,
+ prev_sample_count + 1 + sample_count);
+ else
+ owner_.notify_samples_added(this, prev_sample_count + 1,
+ prev_sample_count + 1);
}
const float* AnalogSegment::get_samples(