#include <libsigrok/libsigrok.hpp>
+using boost::shared_lock;
+using boost::shared_mutex;
+
using std::deque;
using std::dynamic_pointer_cast;
using std::lock_guard;
{
set< shared_ptr<data::SignalData> > data_set =
_session.get_data();
- const vector< shared_ptr<view::Signal> > sigs =
- _session.get_signals();
+
+ shared_lock<shared_mutex> lock(_session.signals_mutex());
+ const vector< shared_ptr<view::Signal> > &sigs(_session.signals());
// Check we have logic data
if (data_set.empty() || sigs.empty()) {
}
// Get the logic data
- //shared_ptr<data::SignalData
shared_ptr<data::Logic> data;
if (!(data = dynamic_pointer_cast<data::Logic>(*data_set.begin()))) {
_error = tr("PulseView currently only has support for "
// Begin storing
try {
- auto context = _session._sr_session->context();
+ auto context = _session.session()->context();
auto output_format = context->output_formats()["srzip"];
- auto device = _session.get_device();
+ auto device = _session.device();
_output = output_format->create_output(device,
{{"filename",
Glib::Variant<Glib::ustring>::create(_file_name)}});
size_t length = end_sample - start_sample;
try {
- auto context = _session._sr_session->context();
+ auto context = _session.session()->context();
auto logic = context->create_logic_packet(data, length, unit_size);
_output->receive(logic);
} catch (Error error) {