annotate data/model/DenseTimeValueModel.h @ 167:665342c6ec57

* Add a bit of resistance to pane dragging so as to make it harder to inadvertently drag in the other axis from the one you intended
author Chris Cannam
date Fri, 22 Sep 2006 16:46:10 +0000
parents 4b2ea82fd0ed
children 0ed2b2e26b44
rev   line source
Chris@147 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@147 2
Chris@147 3 /*
Chris@147 4 Sonic Visualiser
Chris@147 5 An audio file viewer and annotation editor.
Chris@147 6 Centre for Digital Music, Queen Mary, University of London.
Chris@147 7 This file copyright 2006 Chris Cannam.
Chris@147 8
Chris@147 9 This program is free software; you can redistribute it and/or
Chris@147 10 modify it under the terms of the GNU General Public License as
Chris@147 11 published by the Free Software Foundation; either version 2 of the
Chris@147 12 License, or (at your option) any later version. See the file
Chris@147 13 COPYING included with this distribution for more information.
Chris@147 14 */
Chris@147 15
Chris@147 16 #ifndef _DENSE_TIME_VALUE_MODEL_H_
Chris@147 17 #define _DENSE_TIME_VALUE_MODEL_H_
Chris@147 18
Chris@147 19 #include <QObject>
Chris@147 20
Chris@150 21 #include "Model.h"
Chris@147 22
Chris@147 23 /**
Chris@147 24 * Base class for models containing dense two-dimensional data (value
Chris@147 25 * against time). For example, audio waveform data.
Chris@147 26 */
Chris@147 27
Chris@147 28 class DenseTimeValueModel : public Model,
Chris@147 29 virtual public QObject
Chris@147 30 {
Chris@147 31 Q_OBJECT
Chris@147 32
Chris@147 33 public:
Chris@147 34 DenseTimeValueModel();
Chris@147 35
Chris@147 36 /**
Chris@147 37 * Return the minimum possible value found in this model type.
Chris@147 38 * (That is, the minimum that would be valid, not the minimum
Chris@147 39 * actually found in a particular model).
Chris@147 40 */
Chris@147 41 virtual float getValueMinimum() const = 0;
Chris@147 42
Chris@147 43 /**
Chris@147 44 * Return the minimum possible value found in this model type.
Chris@147 45 * (That is, the minimum that would be valid, not the minimum
Chris@147 46 * actually found in a particular model).
Chris@147 47 */
Chris@147 48 virtual float getValueMaximum() const = 0;
Chris@147 49
Chris@147 50 /**
Chris@147 51 * Return the number of distinct channels for this model.
Chris@147 52 */
Chris@147 53 virtual size_t getChannelCount() const = 0;
Chris@147 54
Chris@147 55 /**
Chris@147 56 * Get the specified set of samples from the given channel of the
Chris@147 57 * model in single-precision floating-point format. Return the
Chris@147 58 * number of samples actually retrieved.
Chris@147 59 * If the channel is given as -1, mix all available channels and
Chris@147 60 * return the result.
Chris@147 61 */
Chris@147 62 virtual size_t getValues(int channel, size_t start, size_t end,
Chris@147 63 float *buffer) const = 0;
Chris@147 64
Chris@147 65 /**
Chris@147 66 * Get the specified set of samples from the given channel of the
Chris@147 67 * model in double-precision floating-point format. Return the
Chris@147 68 * number of samples actually retrieved.
Chris@147 69 * If the channel is given as -1, mix all available channels and
Chris@147 70 * return the result.
Chris@147 71 */
Chris@147 72 virtual size_t getValues(int channel, size_t start, size_t end,
Chris@147 73 double *buffer) const = 0;
Chris@147 74 };
Chris@147 75
Chris@147 76 #endif