Renamed pv::view::LogicSignal::LogicSignalColours to SignalColours
[pulseview.git] / pv / view / analogsignal.cpp
index 136080694bbb03029c21691efe0b9b3293ac5c3c..a6f032b5793aa0422e8e71b07f5e5b2f56fb3e2d 100644 (file)
@@ -46,6 +46,8 @@ void AnalogSignal::paint(QPainter &p, int y, int left, int right, double scale,
        assert(_data);
        assert(right >= left);
 
+       paint_axis(p, y, left, right);
+
        const deque< shared_ptr<pv::data::AnalogSnapshot> > &snapshots =
                _data->get_snapshots();
        if (snapshots.empty())
@@ -66,20 +68,24 @@ void AnalogSignal::paint(QPainter &p, int y, int left, int right, double scale,
                (int64_t)0), last_sample);
        const int64_t end_sample = min(max((int64_t)ceil(end),
                (int64_t)0), last_sample);
+       const int64_t sample_count = end_sample - start_sample;
 
-       const float* samples = snapshot->get_samples();
+       const float* samples = snapshot->get_samples(
+               start_sample, end_sample);
        assert(samples);
 
-       QPointF *points = new QPointF[end_sample - start_sample];
+       QPointF *points = new QPointF[sample_count];
        QPointF *point = points;
 
        for (int64_t sample = start_sample;
                sample != end_sample; sample++) {
                const float x = (sample / samples_per_pixel -
                        pixels_offset) + left;
-               *point++ = QPointF(x, samples[sample] + y);
+               *point++ = QPointF(x,
+                       samples[sample - start_sample] + y);
        }
 
+       p.setPen(_colour);
        p.drawPoints(points, point - points);
 
        delete[] points;