Mercurial > hg > svgui
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