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(std::shared_ptr<pv::device::DevInst> dev_inst,
- const sr_channel *const channel,
+ 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();
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
* @param p the QPainter to paint into.
void init_trigger_actions(QWidget *parent);
- QAction* match_action(int match);
- int action_match(QAction *action);
+ QAction* match_action(const sigrok::TriggerMatchType *match);
+ const sigrok::TriggerMatchType *action_match(QAction *action);
void populate_popup_form(QWidget *parent, QFormLayout *form);
+ void modify_trigger();
private Q_SLOTS:
void on_trigger();
private:
- std::shared_ptr<pv::data::Logic> _data;
-
- int _trigger_match;
- 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