annotate base/RangeMapper.h @ 0:fc9323a41f5a

start base : Sonic Visualiser sv1-1.0rc1
author lbajardsilogic
date Fri, 11 May 2007 09:08:14 +0000
parents
children
rev   line source
lbajardsilogic@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@0 2
lbajardsilogic@0 3 /*
lbajardsilogic@0 4 Sonic Visualiser
lbajardsilogic@0 5 An audio file viewer and annotation editor.
lbajardsilogic@0 6 Centre for Digital Music, Queen Mary, University of London.
lbajardsilogic@0 7 This file copyright 2006 QMUL.
lbajardsilogic@0 8
lbajardsilogic@0 9 This program is free software; you can redistribute it and/or
lbajardsilogic@0 10 modify it under the terms of the GNU General Public License as
lbajardsilogic@0 11 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@0 12 License, or (at your option) any later version. See the file
lbajardsilogic@0 13 COPYING included with this distribution for more information.
lbajardsilogic@0 14 */
lbajardsilogic@0 15
lbajardsilogic@0 16 #ifndef _RANGE_MAPPER_H_
lbajardsilogic@0 17 #define _RANGE_MAPPER_H_
lbajardsilogic@0 18
lbajardsilogic@0 19 #include <QString>
lbajardsilogic@0 20
lbajardsilogic@0 21
lbajardsilogic@0 22 class RangeMapper
lbajardsilogic@0 23 {
lbajardsilogic@0 24 public:
lbajardsilogic@0 25 virtual ~RangeMapper() { }
lbajardsilogic@0 26 virtual int getPositionForValue(float value) const = 0;
lbajardsilogic@0 27 virtual float getValueForPosition(int position) const = 0;
lbajardsilogic@0 28 virtual QString getUnit() const { return ""; }
lbajardsilogic@0 29 };
lbajardsilogic@0 30
lbajardsilogic@0 31
lbajardsilogic@0 32 class LinearRangeMapper : public RangeMapper
lbajardsilogic@0 33 {
lbajardsilogic@0 34 public:
lbajardsilogic@0 35 LinearRangeMapper(int minpos, int maxpos,
lbajardsilogic@0 36 float minval, float maxval,
lbajardsilogic@0 37 QString unit = "");
lbajardsilogic@0 38
lbajardsilogic@0 39 virtual int getPositionForValue(float value) const;
lbajardsilogic@0 40 virtual float getValueForPosition(int position) const;
lbajardsilogic@0 41
lbajardsilogic@0 42 virtual QString getUnit() const { return m_unit; }
lbajardsilogic@0 43
lbajardsilogic@0 44 protected:
lbajardsilogic@0 45 int m_minpos;
lbajardsilogic@0 46 int m_maxpos;
lbajardsilogic@0 47 float m_minval;
lbajardsilogic@0 48 float m_maxval;
lbajardsilogic@0 49 QString m_unit;
lbajardsilogic@0 50 };
lbajardsilogic@0 51
lbajardsilogic@0 52
lbajardsilogic@0 53 class LogRangeMapper : public RangeMapper
lbajardsilogic@0 54 {
lbajardsilogic@0 55 public:
lbajardsilogic@0 56 LogRangeMapper(int minpos, int maxpos,
lbajardsilogic@0 57 float ratio, float minlog,
lbajardsilogic@0 58 QString m_unit = "");
lbajardsilogic@0 59
lbajardsilogic@0 60 virtual int getPositionForValue(float value) const;
lbajardsilogic@0 61 virtual float getValueForPosition(int position) const;
lbajardsilogic@0 62
lbajardsilogic@0 63 virtual QString getUnit() const { return m_unit; }
lbajardsilogic@0 64
lbajardsilogic@0 65 protected:
lbajardsilogic@0 66 int m_minpos;
lbajardsilogic@0 67 int m_maxpos;
lbajardsilogic@0 68 float m_ratio;
lbajardsilogic@0 69 float m_minlog;
lbajardsilogic@0 70 float m_maxlog;
lbajardsilogic@0 71 QString m_unit;
lbajardsilogic@0 72 };
lbajardsilogic@0 73
lbajardsilogic@0 74
lbajardsilogic@0 75 #endif