summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-04-29 07:54:21 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2015-04-29 07:54:21 -0400
commit5ab699f8986456ae9bd43e83f5ba0a3411802e28 (patch)
treefb4ccd0d20532cc439437a06e5f73f0109150de5 /libs
parent96371c83277f4618138264302c7ea62e017f4a82 (diff)
manually apply grygorii's waveform amplitude implementation
Diffstat (limited to 'libs')
-rw-r--r--libs/canvas/wave_view.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/libs/canvas/wave_view.cc b/libs/canvas/wave_view.cc
index 8fda5ff0aa..c418a37f7c 100644
--- a/libs/canvas/wave_view.cc
+++ b/libs/canvas/wave_view.cc
@@ -834,7 +834,13 @@ WaveView::get_image (Cairo::RefPtr<Cairo::ImageSurface>& image, framepos_t start
sample_start, sample_end - sample_start,
_channel,
_samples_per_pixel);
-
+
+ // apply waveform amplitude zoom multiplier
+ for (int i = 0; i < n_peaks; ++i) {
+ peaks[i].max *= _amplitude_above_axis;
+ peaks[i].min *= _amplitude_above_axis;
+ }
+
image = Cairo::ImageSurface::create (Cairo::FORMAT_ARGB32, n_peaks, _height);
if (peaks_read > 0) {
@@ -1039,7 +1045,7 @@ WaveView::set_shape (Shape s)
void
WaveView::set_amplitude_above_axis (double a)
{
- if (_amplitude_above_axis != a) {
+ if (abs (_amplitude_above_axis - a) > 0.01) {
begin_visual_change ();
invalidate_image_cache ();
_amplitude_above_axis = a;