#include "devicemanager.hpp"
#include "data/analog.hpp"
-#include "data/analogsnapshot.hpp"
+#include "data/analogsegment.hpp"
#include "data/decoderstack.hpp"
#include "data/logic.hpp"
-#include "data/logicsnapshot.hpp"
+#include "data/logicsegment.hpp"
#include "data/decode/decoder.hpp"
#include "view/analogsignal.hpp"
#include <QDebug>
-#include <libsigrok/libsigrok.hpp>
+#include <libsigrokcxx/libsigrokcxx.hpp>
using boost::shared_lock;
using boost::shared_mutex;
stop_capture();
// Are we setting a session device?
- auto session_device = dynamic_pointer_cast<SessionDevice>(device);
+ const auto session_device =
+ dynamic_pointer_cast<SessionDevice>(device);
+
// Did we have a session device selected previously?
- auto prev_session_device = dynamic_pointer_cast<SessionDevice>(device_);
+ const auto prev_session_device =
+ dynamic_pointer_cast<SessionDevice>(device_);
if (device_) {
session_->remove_datafeed_callbacks();
(shared_ptr<Device> device, shared_ptr<Packet> packet) {
data_feed_in(device, packet);
});
+ device_manager_.update_display_name(device);
update_signals(device);
} else
device_ = nullptr;
device_selected();
}
-void Session::set_file(const string &name)
+void Session::set_session_file(const string &name)
{
- session_ = device_manager_.context()->load_session(name);
- device_ = session_->devices()[0];
- decode_traces_.clear();
- session_->add_datafeed_callback([=]
- (shared_ptr<Device> device, shared_ptr<Packet> packet) {
- data_feed_in(device, packet);
- });
- device_manager_.update_display_name(device_);
- update_signals(device_);
- device_selected();
+ const shared_ptr<sigrok::Session> session =
+ device_manager_.context()->load_session(name);
+ set_device(session->devices()[0]);
}
void Session::set_default_device()
[] (shared_ptr<Channel> channel) {
return channel->type() == ChannelType::LOGIC; });
- // Create data containers for the logic data snapshots
+ // Create data containers for the logic data segments
{
lock_guard<mutex> data_lock(data_mutex_);
set_capture_state(Stopped);
// Confirm that SR_DF_END was received
- if (cur_logic_snapshot_)
+ if (cur_logic_segment_)
{
qDebug("SR_DF_END was not received.");
assert(0);
void Session::feed_in_frame_begin()
{
- if (cur_logic_snapshot_ || !cur_analog_snapshots_.empty())
+ if (cur_logic_segment_ || !cur_analog_segments_.empty())
frame_began();
}
return;
}
- if (!cur_logic_snapshot_)
+ if (!cur_logic_segment_)
{
// This could be the first packet after a trigger
set_capture_state(Running);
VariantBase::cast_dynamic<Variant<guint64>>(
device_->config_get(ConfigKey::LIMIT_SAMPLES)).get() : 0;
- // Create a new data snapshot
- cur_logic_snapshot_ = shared_ptr<data::LogicSnapshot>(
- new data::LogicSnapshot(
+ // Create a new data segment
+ cur_logic_segment_ = shared_ptr<data::LogicSegment>(
+ new data::LogicSegment(
logic, cur_samplerate_, sample_limit));
- logic_data_->push_snapshot(cur_logic_snapshot_);
+ logic_data_->push_segment(cur_logic_segment_);
// @todo Putting this here means that only listeners querying
// for logic will be notified. Currently the only user of
}
else
{
- // Append to the existing data snapshot
- cur_logic_snapshot_->append_payload(logic);
+ // Append to the existing data segment
+ cur_logic_segment_->append_payload(logic);
}
data_received();
for (auto channel : channels)
{
- shared_ptr<data::AnalogSnapshot> snapshot;
+ shared_ptr<data::AnalogSegment> segment;
- // Try to get the snapshot of the channel
- const map< shared_ptr<Channel>, shared_ptr<data::AnalogSnapshot> >::
- iterator iter = cur_analog_snapshots_.find(channel);
- if (iter != cur_analog_snapshots_.end())
- snapshot = (*iter).second;
+ // Try to get the segment of the channel
+ const map< shared_ptr<Channel>, shared_ptr<data::AnalogSegment> >::
+ iterator iter = cur_analog_segments_.find(channel);
+ if (iter != cur_analog_segments_.end())
+ segment = (*iter).second;
else
{
- // If no snapshot was found, this means we havn't
+ // If no segment was found, this means we havn't
// created one yet. i.e. this is the first packet
- // in the sweep containing this snapshot.
+ // in the sweep containing this segment.
sweep_beginning = true;
// Get sample limit.
sample_limit = 0;
}
- // Create a snapshot, keep it in the maps of channels
- snapshot = shared_ptr<data::AnalogSnapshot>(
- new data::AnalogSnapshot(
+ // Create a segment, keep it in the maps of channels
+ segment = shared_ptr<data::AnalogSegment>(
+ new data::AnalogSegment(
cur_samplerate_, sample_limit));
- cur_analog_snapshots_[channel] = snapshot;
+ cur_analog_segments_[channel] = segment;
// Find the annalog data associated with the channel
shared_ptr<view::AnalogSignal> sig =
shared_ptr<data::Analog> data(sig->analog_data());
assert(data);
- // Push the snapshot into the analog data.
- data->push_snapshot(snapshot);
+ // Push the segment into the analog data.
+ data->push_segment(segment);
}
- assert(snapshot);
+ assert(segment);
- // Append the samples in the snapshot
- snapshot->append_interleaved_samples(data++, sample_count,
+ // Append the samples in the segment
+ segment->append_interleaved_samples(data++, sample_count,
channel_count);
}
{
{
lock_guard<mutex> lock(data_mutex_);
- cur_logic_snapshot_.reset();
- cur_analog_snapshots_.clear();
+ cur_logic_segment_.reset();
+ cur_analog_segments_.clear();
}
frame_ended();
break;