]> sigrok.org Git - pulseview.git/blobdiff - pv/data/signalbase.hpp
Prepare for generated signals
[pulseview.git] / pv / data / signalbase.hpp
index d6f11d82929ca40584cfbcaa78b5c154d3188bef..7e1196521d0d3ae303a8b6258e6f62dce71cb798 100644 (file)
@@ -35,6 +35,8 @@
 
 #include <libsigrokcxx/libsigrokcxx.hpp>
 
+#include "segment.hpp"
+
 using std::atomic;
 using std::condition_variable;
 using std::map;
@@ -55,6 +57,7 @@ class AnalogSegment;
 class DecoderStack;
 class Logic;
 class LogicSegment;
+class Segment;
 class SignalData;
 
 class SignalBase : public QObject
@@ -97,6 +100,7 @@ public:
 public:
        /**
         * Returns the underlying SR channel.
+        * Generated channels don't have a SR channel.
         */
        shared_ptr<sigrok::Channel> channel() const;
 
@@ -122,6 +126,13 @@ public:
         */
        unsigned int index() const;
 
+       /**
+        * Sets the index number of this channel, i.e. a unique ID assigned by
+        * the device driver or the logic bit index (see below).
+        * Only use immediately after creating the signal and leave it untouched after.
+        */
+       void set_index(unsigned int index);
+
        /**
         * Returns which bit of a given sample for this signal represents the
         * signal itself. This is relevant for compound signals like logic,
@@ -136,10 +147,16 @@ public:
        QString name() const;
 
        /**
-        * Gets the internal name of this signal, i.e. how the device calls it.
+        * Gets the internal name of this signal, i.e. how the device/generator calls it.
         */
        QString internal_name() const;
 
+       /**
+        * Sets the internal name of this signal, i.e. how the device/generator calls it.
+        * Only use immediately after creating the signal and leave it untouched after.
+        */
+       void set_internal_name(QString internal_name);
+
        /**
         * Produces a string for this signal that can be used for display,
         * i.e. it contains one or both of the signal/internal names.
@@ -322,7 +339,7 @@ Q_SIGNALS:
 private Q_SLOTS:
        void on_samples_cleared();
 
-       void on_samples_added(QObject* segment, uint64_t start_sample,
+       void on_samples_added(SharedPtrToSegment segment, uint64_t start_sample,
                uint64_t end_sample);
 
        void on_min_max_changed(float min, float max);
@@ -349,6 +366,7 @@ protected:
 
        QString internal_name_, name_;
        QColor color_, bgcolor_;
+       unsigned int index_;
 };
 
 } // namespace data