#include "logicsnapshot.h"
-using namespace boost;
-using namespace std;
+using boost::lock_guard;
+using boost::recursive_mutex;
+using std::max;
+using std::min;
+using std::pair;
namespace pv {
namespace data {
append_payload_to_mipmap();
}
+void LogicSnapshot::get_samples(uint8_t *const data,
+ int64_t start_sample, int64_t end_sample) const
+{
+ assert(data);
+ assert(start_sample >= 0);
+ assert(start_sample <= (int64_t)_sample_count);
+ assert(end_sample >= 0);
+ assert(end_sample <= (int64_t)_sample_count);
+ assert(start_sample <= end_sample);
+
+ lock_guard<recursive_mutex> lock(_mutex);
+
+ const size_t size = (end_sample - start_sample) * _unit_size;
+ memcpy(data, (const uint8_t*)_data + start_sample, size);
+}
+
void LogicSnapshot::reallocate_mipmap_level(MipMapLevel &m)
{
const uint64_t new_data_length = ((m.length + MipMapDataUnit - 1) /
}
// Add the final state
- edges.push_back(pair<int64_t, bool>(end,
- get_sample(end) & sig_mask));
+ const bool end_sample = get_sample(end) & sig_mask;
+ if (last_sample != end_sample)
+ edges.push_back(pair<int64_t, bool>(end, end_sample));
+ edges.push_back(pair<int64_t, bool>(end + 1, end_sample));
}
uint64_t LogicSnapshot::get_subsample(int level, uint64_t offset) const