diff layer/PianoScale.h @ 1238:4d0ca1ab4cd0

Some work to make spectrum layers (and slice layers generally) zoomable in the frequency axis. Also fixes a number of view id mixups in SliceLayer which broke offset calculations for the x axis scale.
author Chris Cannam
date Tue, 07 Feb 2017 14:55:19 +0000
parents 4fe7a09be0fe
children b4cb11ca8233
line wrap: on
line diff
--- a/layer/PianoScale.h	Fri Jan 27 13:19:21 2017 +0000
+++ b/layer/PianoScale.h	Tue Feb 07 14:55:19 2017 +0000
@@ -26,6 +26,16 @@
 public:
     void paintPianoVertical
     (LayerGeometryProvider *v, QPainter &paint, QRect rect, double minf, double maxf);
+
+    class HorizontalScaleProvider {
+    public:
+        virtual double getFrequencyForX(const LayerGeometryProvider *, double x) const = 0;
+        virtual double getXForFrequency(const LayerGeometryProvider *, double freq) const = 0;
+    };
+    
+    void paintPianoHorizontal
+    (LayerGeometryProvider *v, const HorizontalScaleProvider *p,
+     QPainter &paint, QRect rect);
 };
 
 #endif