Patch for libs/canvas/wave_view.cc

Nimal Ratnayake <[email protected]>
Newsgroups gmane.comp.audio.ardour.devel
Message-ID <[email protected]>
Hi Paul,

Attached is the small patch to correct the logic for showing the zero 
line of the waveforms.

Rgds,

Nimal R.

_______________________________________________
ardour-dev mailing list
[email protected]
http://lists.ardour.org/listinfo.cgi/ardour-dev-ardour.org
patch (text/plain, 1 KB)
diff --git a/libs/canvas/wave_view.cc b/libs/canvas/wave_view.cc
index 9dca22e..5ca1981 100644
--- a/libs/canvas/wave_view.cc
+++ b/libs/canvas/wave_view.cc
@@ -564,7 +564,7 @@ WaveView::draw_image (Cairo::RefPtr<Cairo::ImageSurface>& image, PeakData* _peak
 		outline_context->stroke ();
 
 	} else {
-		const double height_2 = _height * .5;
+		const int height_zero = floor( _height * .5);
 
 		for (int i = 0; i < n_peaks; ++i) {
 
@@ -590,10 +590,11 @@ WaveView::draw_image (Cairo::RefPtr<Cairo::ImageSurface>& image, PeakData* _peak
 				}
 			}
 
-			/* zero line, show only if there is enough spread */
+			/* zero line, show only if there is enough spread 
+			or the waveform line does not cross zero line */
 
-			if (tips[i].spread >= 5.0 && show_zero_line()) {
-				zero_context->move_to (i, floor(height_2));
+			if (show_zero_line() && ((tips[i].spread >= 5.0) || (tips[i].top > height_zero ) || (tips[i].bot < height_zero)) ) {
+				zero_context->move_to (i, height_zero);
 				zero_context->rel_line_to (1.0, 0);
 			}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.