#include <extdef.h>
-#include <math.h>
+#include <cassert>
+#include <cmath>
#include <QFormLayout>
#include <QToolBar>
#include "logicsignal.h"
#include "view.h"
-#include "pv/sigsession.h"
-#include "pv/data/logic.h"
-#include "pv/data/logicsnapshot.h"
-#include "pv/view/view.h"
+#include <pv/sigsession.h>
+#include <pv/device/devinst.h>
+#include <pv/data/logic.h>
+#include <pv/data/logicsnapshot.h>
+#include <pv/view/view.h>
-using namespace boost;
-using namespace std;
+using std::deque;
+using std::max;
+using std::min;
+using std::pair;
+using std::shared_ptr;
+using std::vector;
namespace pv {
namespace view {
QColor(0xEE, 0xEE, 0xEC), // White
};
-LogicSignal::LogicSignal(pv::SigSession &session, sr_probe *const probe,
- shared_ptr<data::Logic> data) :
- Signal(session, probe),
+LogicSignal::LogicSignal(shared_ptr<pv::device::DevInst> dev_inst,
+ const sr_channel *const probe, shared_ptr<data::Logic> data) :
+ Signal(dev_inst, probe),
_data(data),
_trigger_none(NULL),
_trigger_rising(NULL),
{
}
-boost::shared_ptr<pv::data::SignalData> LogicSignal::data() const
+shared_ptr<pv::data::SignalData> LogicSignal::data() const
{
return _data;
}
-boost::shared_ptr<pv::data::Logic> LogicSignal::logic_data() const
+shared_ptr<pv::data::Logic> LogicSignal::logic_data() const
{
return _data;
}
QLineF *const edge_lines = new QLineF[edge_count];
line = edge_lines;
- for (vector<pv::data::LogicSnapshot::EdgePair>::const_iterator i =
- edges.begin() + 1;
- i != edges.end() - 1; i++) {
+ for (auto i = edges.cbegin() + 1; i != edges.cend() - 1; i++) {
const float x = ((*i).first / samples_per_pixel -
pixels_offset) + left;
*line++ = QLineF(x, high_offset, x, low_offset);
delete[] edge_lines;
// Paint the caps
- const unsigned int max_cap_line_count = (edges.size() - 1);
+ const unsigned int max_cap_line_count = edges.size();
QLineF *const cap_lines = new QLineF[max_cap_line_count];
p.setPen(HighColour);
{
QLineF *line = lines;
- for (vector<pv::data::LogicSnapshot::EdgePair>::const_iterator i =
- edges.begin(); i != (edges.end() - 1); i++)
+ for (auto i = edges.begin(); i != (edges.end() - 1); i++)
if ((*i).second == level) {
*line++ = QLineF(
((*i).first / samples_per_pixel -
Signal::populate_popup_form(parent, form);
// Add the trigger actions
- const sr_dev_inst *const sdi = _session.get_device();
- if (sr_config_list(sdi->driver, sdi, NULL, SR_CONF_TRIGGER_TYPE,
- &gvar) == SR_OK)
+ assert(_dev_inst);
+ if ((gvar = _dev_inst->list_config(NULL, SR_CONF_TRIGGER_TYPE)))
{
const char *const trig_types =
g_variant_get_string(gvar, NULL);
const char *const trigger_string =
(type != 0) ? trigger_type_string : NULL;
- const sr_dev_inst *const sdi = _session.get_device();
- const int probe_count = g_slist_length(sdi->probes);
+ assert(_dev_inst);
+ const sr_dev_inst *const sdi = _dev_inst->dev_inst();
+ assert(sdi);
+
+ const int probe_count = g_slist_length(sdi->channels);
assert(probe_count > 0);
assert(_probe && _probe->index < probe_count);