Chris@277: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@277: Chris@277: /* Chris@277: Sonic Visualiser Chris@277: An audio file viewer and annotation editor. Chris@277: Centre for Digital Music, Queen Mary, University of London. Chris@277: This file copyright 2006-2007 Chris Cannam and QMUL. Chris@277: Chris@277: This program is free software; you can redistribute it and/or Chris@277: modify it under the terms of the GNU General Public License as Chris@277: published by the Free Software Foundation; either version 2 of the Chris@277: License, or (at your option) any later version. See the file Chris@277: COPYING included with this distribution for more information. Chris@277: */ Chris@277: Chris@277: #ifndef _COLOUR_MAPPER_H_ Chris@277: #define _COLOUR_MAPPER_H_ Chris@277: Chris@277: #include Chris@277: #include Chris@277: #include Chris@277: Chris@277: /** Chris@277: * A class for mapping intensity values onto various colour maps. Chris@277: */ Chris@277: Chris@277: class ColourMapper : public QObject Chris@277: { Chris@277: Q_OBJECT Chris@277: Chris@277: public: Chris@277: ColourMapper(int map, float minValue, float maxValue); Chris@277: virtual ~ColourMapper(); Chris@277: Chris@277: enum StandardMap { Chris@277: DefaultColours, Chris@277: Sunset, Chris@277: WhiteOnBlack, Chris@277: BlackOnWhite, Chris@277: RedOnBlue, Chris@277: YellowOnBlack, Chris@277: BlueOnBlack, Chris@277: FruitSalad, Chris@277: Banded, Chris@277: Highlight, Chris@277: Printer Chris@277: }; Chris@277: Chris@277: int getMap() const { return m_map; } Chris@277: float getMinValue() const { return m_min; } Chris@277: float getMaxValue() const { return m_max; } Chris@277: Chris@277: static int getColourMapCount(); Chris@277: static QString getColourMapName(int n); Chris@277: Chris@277: QColor map(float value) const; Chris@277: Chris@277: QColor getContrastingColour() const; // for cursors etc Chris@277: bool hasLightBackground() const; Chris@277: Chris@277: protected: Chris@277: int m_map; Chris@277: float m_min; Chris@277: float m_max; Chris@277: }; Chris@277: Chris@277: #endif Chris@277: