Chris@696: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
Chris@696: 
Chris@696: /*
Chris@696:     Sonic Visualiser
Chris@696:     An audio file viewer and annotation editor.
Chris@696:     Centre for Digital Music, Queen Mary, University of London.
Chris@696:     This file copyright 2006-2013 Chris Cannam and QMUL.
Chris@696:     
Chris@696:     This program is free software; you can redistribute it and/or
Chris@696:     modify it under the terms of the GNU General Public License as
Chris@696:     published by the Free Software Foundation; either version 2 of the
Chris@696:     License, or (at your option) any later version.  See the file
Chris@696:     COPYING included with this distribution for more information.
Chris@696: */
Chris@696: 
Chris@696: #ifndef VERTICAL_SCALE_LAYER_H
Chris@696: #define VERTICAL_SCALE_LAYER_H
Chris@696: 
Chris@1066: /**
Chris@1066:  * Interface for layers in which the Y axis represents (or can
Chris@1066:  * sometimes represent, depending on the display mode) the sample
Chris@1067:  * value. For example, TimeValueLayer uses vertical scale when in
Chris@1067:  * point mode and so provides this interface.
Chris@1066:  */
Chris@696: class VerticalScaleLayer
Chris@696: {
Chris@696: public:
Chris@916:     virtual int getYForValue(LayerGeometryProvider *, double value) const = 0;
Chris@916:     virtual double getValueForY(LayerGeometryProvider *, int y) const = 0;
Chris@696:     virtual QString getScaleUnits() const = 0;
Chris@696: };
Chris@696: 
Chris@696: #endif
Chris@696: