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