projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added pv::view::RowItemIterator
[pulseview.git]
/
pv
/
data
/
logicsnapshot.cpp
diff --git
a/pv/data/logicsnapshot.cpp
b/pv/data/logicsnapshot.cpp
index f896ed178718dd2dc6f840c6567dcba15c4220e2..a00a22ede0cd33ee5aa3b43042f51b59c37d8376 100644
(file)
--- a/
pv/data/logicsnapshot.cpp
+++ b/
pv/data/logicsnapshot.cpp
@@
-28,11
+28,16
@@
#include "config.h"
#include "logicsnapshot.h"
#include "config.h"
#include "logicsnapshot.h"
-using boost::lock_guard;
-using boost::recursive_mutex;
+#include <libsigrok/libsigrok.hpp>
+
+using std::lock_guard;
+using std::recursive_mutex;
using std::max;
using std::min;
using std::pair;
using std::max;
using std::min;
using std::pair;
+using std::shared_ptr;
+
+using sigrok::Logic;
namespace pv {
namespace data {
namespace pv {
namespace data {
@@
-42,9
+47,9
@@
const int LogicSnapshot::MipMapScaleFactor = 1 << MipMapScalePower;
const float LogicSnapshot::LogMipMapScaleFactor = logf(MipMapScaleFactor);
const uint64_t LogicSnapshot::MipMapDataUnit = 64*1024; // bytes
const float LogicSnapshot::LogMipMapScaleFactor = logf(MipMapScaleFactor);
const uint64_t LogicSnapshot::MipMapDataUnit = 64*1024; // bytes
-LogicSnapshot::LogicSnapshot(
const sr_datafeed_logic &
logic,
+LogicSnapshot::LogicSnapshot(
shared_ptr<Logic>
logic,
const uint64_t expected_num_samples) :
const uint64_t expected_num_samples) :
- Snapshot(logic
.unitsize
),
+ Snapshot(logic
->unit_size()
),
_last_append_sample(0)
{
set_capacity(expected_num_samples);
_last_append_sample(0)
{
set_capacity(expected_num_samples);
@@
-135,15
+140,15
@@
void LogicSnapshot::pack_sample(uint8_t *ptr, uint64_t value)
#endif
}
#endif
}
-void LogicSnapshot::append_payload(
- const sr_datafeed_logic &logic)
+void LogicSnapshot::append_payload(shared_ptr<Logic> logic)
{
{
- assert(_unit_size == logic
.unitsize
);
- assert((logic
.length
% _unit_size) == 0);
+ assert(_unit_size == logic
->unit_size()
);
+ assert((logic
->data_length()
% _unit_size) == 0);
lock_guard<recursive_mutex> lock(_mutex);
lock_guard<recursive_mutex> lock(_mutex);
- append_data(logic.data, logic.length / _unit_size);
+ append_data(logic->data_pointer(),
+ logic->data_length() / _unit_size);
// Generate the first mip-map from the data
append_payload_to_mipmap();
// Generate the first mip-map from the data
append_payload_to_mipmap();
@@
-162,7
+167,7
@@
void LogicSnapshot::get_samples(uint8_t *const data,
lock_guard<recursive_mutex> lock(_mutex);
const size_t size = (end_sample - start_sample) * _unit_size;
lock_guard<recursive_mutex> lock(_mutex);
const size_t size = (end_sample - start_sample) * _unit_size;
- memcpy(data, (const uint8_t*)_data + start_sample * _unit_size, size);
+ memcpy(data, (const uint8_t*)_data
.data()
+ start_sample * _unit_size, size);
}
void LogicSnapshot::reallocate_mipmap_level(MipMapLevel &m)
}
void LogicSnapshot::reallocate_mipmap_level(MipMapLevel &m)
@@
-201,9
+206,9
@@
void LogicSnapshot::append_payload_to_mipmap()
dest_ptr = (uint8_t*)m0.data + prev_length * _unit_size;
// Iterate through the samples to populate the first level mipmap
dest_ptr = (uint8_t*)m0.data + prev_length * _unit_size;
// Iterate through the samples to populate the first level mipmap
- const uint8_t *const end_src_ptr = (uint8_t*)_data +
+ const uint8_t *const end_src_ptr = (uint8_t*)_data
.data()
+
m0.length * _unit_size * MipMapScaleFactor;
m0.length * _unit_size * MipMapScaleFactor;
- for (src_ptr = (uint8_t*)_data +
+ for (src_ptr = (uint8_t*)_data
.data()
+
prev_length * _unit_size * MipMapScaleFactor;
src_ptr < end_src_ptr;)
{
prev_length * _unit_size * MipMapScaleFactor;
src_ptr < end_src_ptr;)
{
@@
-263,10
+268,9
@@
void LogicSnapshot::append_payload_to_mipmap()
uint64_t LogicSnapshot::get_sample(uint64_t index) const
{
uint64_t LogicSnapshot::get_sample(uint64_t index) const
{
- assert(_data);
assert(index < _sample_count);
assert(index < _sample_count);
- return unpack_sample((uint8_t*)_data + index * _unit_size);
+ return unpack_sample((uint8_t*)_data
.data()
+ index * _unit_size);
}
void LogicSnapshot::get_subsampled_edges(
}
void LogicSnapshot::get_subsampled_edges(