]> sigrok.org Git - pulseview.git/blobdiff - pv/view/logicsignal.h
View: Create trace groups from channel groups
[pulseview.git] / pv / view / logicsignal.h
index de1f2ec8e50b4a24da231843bd47d5e44c85c6fa..a275f177783ac211ea6279ab0e04e3f5510d7cc3 100644 (file)
 
 class QToolBar;
 
+namespace sigrok {
+       class Device;
+       class TriggerMatchType;
+}
+
 namespace pv {
 
 namespace data {
@@ -40,6 +45,9 @@ class LogicSignal : public Signal
        Q_OBJECT
 
 private:
+       static const int SignalHeight;
+       static const int SignalMargin;
+
        static const float Oversampling;
 
        static const QColor EdgeColour;
@@ -49,8 +57,9 @@ private:
        static const QColor SignalColours[10];
 
 public:
-       LogicSignal(std::shared_ptr<pv::device::DevInst> dev_inst,
-               const sr_channel *const probe,
+       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();
@@ -59,6 +68,12 @@ public:
 
        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.
@@ -83,17 +98,19 @@ private:
 
        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 slots:
+private Q_SLOTS:
        void on_trigger();
 
 private:
+       std::shared_ptr<sigrok::Device> _device;
        std::shared_ptr<pv::data::Logic> _data;
 
-       int _trigger_match;
+       const sigrok::TriggerMatchType *_trigger_match;
        QToolBar *_trigger_bar;
        QAction *_trigger_none;
        QAction *_trigger_rising;