]> sigrok.org Git - pulseview.git/blobdiff - logicsignal.h
Initial interractive zoom support
[pulseview.git] / logicsignal.h
index 9daf65005f3d35d4eaf6c71319a958877a1cf56b..324d072cc92e2bc90f274fe434e82616d4fa1b07 100644 (file)
@@ -26,10 +26,32 @@ class LogicData;
 
 class LogicSignal : public Signal
 {
+private:
+       struct Point2F
+       {
+               GLfloat x, y;
+       };
+
 public:
-       LogicSignal(QString name, boost::shared_ptr<SignalData> data,
+       LogicSignal(QString name,
+               boost::shared_ptr<LogicData> data,
                int probe_index);
 
+       /**
+        * Paints the signal into a QGLWidget.
+        * @param widget the QGLWidget to paint into.
+        * @param rect the rectangular area to draw the trace into.
+        * @param scale the scale in femtoseconds per pixel.
+        * @param offset the time to show at the left hand edge of
+        *   the view in femtoseconds.
+        **/
+       void paint(QGLWidget &widget, const QRect &rect, uint64_t scale,
+               int64_t offset);
+
+private:
+       static void paint_lines(Point2F *points, int count);
+
 private:
        int _probe_index;
+       boost::shared_ptr<LogicData> _data;
 };