annotate layer/ColourMapper.h @ 1088:c520f90bbf2e spectrogram-minor-refactor

One FFT model per spectrogram (again!) - but we do still need a magnitude range per view, as views could be showing different regions
author Chris Cannam
date Tue, 05 Jul 2016 08:58:28 +0100
parents 65b183494331
children 73d43e410a6b
rev   line source
Chris@376 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@376 2
Chris@376 3 /*
Chris@376 4 Sonic Visualiser
Chris@376 5 An audio file viewer and annotation editor.
Chris@376 6 Centre for Digital Music, Queen Mary, University of London.
Chris@376 7 This file copyright 2006-2007 Chris Cannam and QMUL.
Chris@376 8
Chris@376 9 This program is free software; you can redistribute it and/or
Chris@376 10 modify it under the terms of the GNU General Public License as
Chris@376 11 published by the Free Software Foundation; either version 2 of the
Chris@376 12 License, or (at your option) any later version. See the file
Chris@376 13 COPYING included with this distribution for more information.
Chris@376 14 */
Chris@376 15
Chris@376 16 #ifndef _COLOUR_MAPPER_H_
Chris@376 17 #define _COLOUR_MAPPER_H_
Chris@376 18
Chris@376 19 #include <QObject>
Chris@376 20 #include <QColor>
Chris@376 21 #include <QString>
Chris@376 22
Chris@376 23 /**
Chris@376 24 * A class for mapping intensity values onto various colour maps.
Chris@376 25 */
Chris@1071 26 class ColourMapper
Chris@376 27 {
Chris@376 28 public:
Chris@902 29 ColourMapper(int map, double minValue, double maxValue);
Chris@1071 30 ~ColourMapper();
Chris@1071 31
Chris@1071 32 ColourMapper(const ColourMapper &) = default;
Chris@1071 33 ColourMapper &operator=(const ColourMapper &) = default;
Chris@376 34
Chris@376 35 enum StandardMap {
Chris@1017 36 Green,
Chris@376 37 Sunset,
Chris@376 38 WhiteOnBlack,
Chris@376 39 BlackOnWhite,
Chris@1017 40 Cherry,
Chris@1017 41 Wasp,
Chris@1017 42 Ice,
Chris@376 43 FruitSalad,
Chris@376 44 Banded,
Chris@376 45 Highlight,
Chris@536 46 Printer,
Chris@1015 47 HighGain
Chris@376 48 };
Chris@376 49
Chris@376 50 int getMap() const { return m_map; }
Chris@902 51 double getMinValue() const { return m_min; }
Chris@902 52 double getMaxValue() const { return m_max; }
Chris@376 53
Chris@376 54 static int getColourMapCount();
Chris@376 55 static QString getColourMapName(int n);
Chris@376 56
Chris@902 57 QColor map(double value) const;
Chris@376 58
Chris@376 59 QColor getContrastingColour() const; // for cursors etc
Chris@376 60 bool hasLightBackground() const;
Chris@376 61
Chris@376 62 protected:
Chris@376 63 int m_map;
Chris@902 64 double m_min;
Chris@902 65 double m_max;
Chris@376 66 };
Chris@376 67
Chris@376 68 #endif
Chris@376 69