#include "signal.h"
-#include <boost/shared_ptr.hpp>
+#include <memory>
class QToolBar;
+namespace sigrok {
+ class Device;
+ class TriggerMatchType;
+}
+
namespace pv {
namespace data {
Q_OBJECT
private:
+ static const int SignalHeight;
+ static const int SignalMargin;
+
static const float Oversampling;
static const QColor EdgeColour;
static const QColor SignalColours[10];
public:
- LogicSignal(pv::SigSession &session, sr_probe *const probe,
- boost::shared_ptr<pv::data::Logic> data);
+ LogicSignal(pv::SigSession &session,
+ std::shared_ptr<sigrok::Device> device,
+ std::shared_ptr<sigrok::Channel> channel,
+ std::shared_ptr<pv::data::Logic> data);
virtual ~LogicSignal();
- boost::shared_ptr<pv::data::Logic> logic_data() const;
+ std::shared_ptr<pv::data::SignalData> data() const;
+
+ std::shared_ptr<pv::data::Logic> logic_data() const;
+
+ /**
+ * Computes the vertical extents of the contents of this row item.
+ * @return A pair containing the minimum and maximum y-values.
+ */
+ std::pair<int, int> v_extents() const;
/**
* Paints the background layer of the signal with a QPainter
void paint_mid(QPainter &p, int left, int right);
private:
-
void paint_caps(QPainter &p, QLineF *const lines,
std::vector< std::pair<int64_t, bool> > &edges,
bool level, double samples_per_pixel, double pixels_offset,
void init_trigger_actions(QWidget *parent);
+ QAction* match_action(const sigrok::TriggerMatchType *match);
+ const sigrok::TriggerMatchType *action_match(QAction *action);
void populate_popup_form(QWidget *parent, QFormLayout *form);
-
- void add_trigger_action(const char *trig_types, char type,
- QAction *action);
-
- void update_trigger_actions();
-
- void set_trigger(char type);
+ void modify_trigger();
-private slots:
- void on_trigger_none();
- void on_trigger_rising();
- void on_trigger_high();
- void on_trigger_falling();
- void on_trigger_low();
- void on_trigger_change();
+private Q_SLOTS:
+ void on_trigger();
private:
- boost::shared_ptr<pv::data::Logic> _data;
-
- QToolBar *_trigger_bar;
- QAction *_trigger_none;
- QAction *_trigger_rising;
- QAction *_trigger_high;
- QAction *_trigger_falling;
- QAction *_trigger_low;
- QAction *_trigger_change;
+ std::shared_ptr<sigrok::Device> device_;
+ std::shared_ptr<pv::data::Logic> data_;
+
+ const sigrok::TriggerMatchType *trigger_match_;
+ QToolBar *trigger_bar_;
+ QAction *trigger_none_;
+ QAction *trigger_rising_;
+ QAction *trigger_high_;
+ QAction *trigger_falling_;
+ QAction *trigger_low_;
+ QAction *trigger_change_;
};
} // namespace view