Use bool literals for boolean values.
[pulseview.git] / pv / view / analogsignal.cpp
index d9ac2f60afcf853d1b225a18c139854ec94ed824..399802b5e0f754ca0eebded3393344f52bb2e053 100644 (file)
@@ -80,7 +80,7 @@ AnalogSignal::AnalogSignal(
        pos_vdivs_(1),
        neg_vdivs_(1),
        resolution_(0),
-       autoranging_(1)
+       autoranging_(true)
 {
        pv::data::Analog* analog_data =
                dynamic_cast<pv::data::Analog*>(data().get());
@@ -389,6 +389,12 @@ void AnalogSignal::perform_autoranging(bool force_update)
                neg_vdivs_ = 0;
        }
 
+       // Split up the divs if there are negative values but no negative divs
+       if ((min < 0) && (neg_vdivs_ == 0)) {
+               neg_vdivs_ = pos_vdivs_ / 2;
+               pos_vdivs_ -= neg_vdivs_;
+       }
+
        double min_value_per_div;
        if ((pos_vdivs_ > 0) && (neg_vdivs_ >  0))
                min_value_per_div = std::max(max / pos_vdivs_, -min / neg_vdivs_);