]> sigrok.org Git - pulseview.git/blobdiff - pv/view/analogsignal.hpp
AnalogSignal: Use correct scaling factor for the grid to work
[pulseview.git] / pv / view / analogsignal.hpp
index 06867a557db644f82fe5d01a7a16634a3420c10d..7fdddf2d16880678f222c845fd306b2ee4ce4e31 100644 (file)
@@ -37,8 +37,8 @@ namespace view {
 class AnalogSignal : public Signal
 {
 private:
-       static const int NominalHeight;
        static const QColor SignalColours[4];
+       static const QColor GridMajorColor, GridMinorColor;
 
        static const float EnvelopeThreshold;
 
@@ -90,6 +90,8 @@ public:
        void paint_mid(QPainter &p, const ViewItemPaintParams &pp);
 
 private:
+       void paint_grid(QPainter &p, int y, int left, int right);
+
        void paint_trace(QPainter &p,
                const std::shared_ptr<pv::data::AnalogSegment> &segment,
                int y, int left, const int64_t start, const int64_t end,
@@ -101,15 +103,20 @@ private:
                const double pixels_offset, const double samples_per_pixel);
 
        /**
-        * Computes the scale factor from the scale index.
+        * Computes the scale factor from the scale index and vdiv settings.
         */
-       float scale() const;
+       void update_scale();
 
 private:
        std::shared_ptr<pv::data::Analog> data_;
 
+       float scale_;
        int scale_index_;
        int scale_index_drag_offset_;
+
+       int div_height_;
+       int vdivs_;  // divs per positive/negative side
+       float resolution_; // e.g. 10 for 10 V/div
 };
 
 } // namespace view