Mercurial > hg > svcore
comparison data/model/WritableWaveFileModel.h @ 1126:39019ce29178 tony-2.0-integration
Merge through to branch for Tony 2.0
| author | Chris Cannam |
|---|---|
| date | Thu, 20 Aug 2015 14:54:21 +0100 |
| parents | efea94b04d5a |
| children | e994747fb9dd |
comparison
equal
deleted
inserted
replaced
| 1119:e22bfe8ca248 | 1126:39019ce29178 |
|---|---|
| 11 published by the Free Software Foundation; either version 2 of the | 11 published by the Free Software Foundation; either version 2 of the |
| 12 License, or (at your option) any later version. See the file | 12 License, or (at your option) any later version. See the file |
| 13 COPYING included with this distribution for more information. | 13 COPYING included with this distribution for more information. |
| 14 */ | 14 */ |
| 15 | 15 |
| 16 #ifndef _WRITABLE_WAVE_FILE_MODEL_H_ | 16 #ifndef WRITABLE_WAVE_FILE_MODEL_H |
| 17 #define _WRITABLE_WAVE_FILE_MODEL_H_ | 17 #define WRITABLE_WAVE_FILE_MODEL_H |
| 18 | 18 |
| 19 #include "WaveFileModel.h" | 19 #include "WaveFileModel.h" |
| 20 #include "ReadOnlyWaveFileModel.h" | |
| 21 #include "PowerOfSqrtTwoZoomConstraint.h" | |
| 20 | 22 |
| 21 class WavFileWriter; | 23 class WavFileWriter; |
| 22 class WavFileReader; | 24 class WavFileReader; |
| 23 | 25 |
| 24 class WritableWaveFileModel : public RangeSummarisableTimeValueModel | 26 class WritableWaveFileModel : public WaveFileModel |
| 25 { | 27 { |
| 26 Q_OBJECT | 28 Q_OBJECT |
| 27 | 29 |
| 28 public: | 30 public: |
| 29 WritableWaveFileModel(sv_samplerate_t sampleRate, int channels, QString path = ""); | 31 WritableWaveFileModel(sv_samplerate_t sampleRate, int channels, QString path = ""); |
| 49 } | 51 } |
| 50 | 52 |
| 51 sv_frame_t getFrameCount() const; | 53 sv_frame_t getFrameCount() const; |
| 52 int getChannelCount() const { return m_channels; } | 54 int getChannelCount() const { return m_channels; } |
| 53 sv_samplerate_t getSampleRate() const { return m_sampleRate; } | 55 sv_samplerate_t getSampleRate() const { return m_sampleRate; } |
| 56 sv_samplerate_t getNativeRate() const { return m_sampleRate; } | |
| 57 | |
| 58 QString getTitle() const { | |
| 59 if (m_model) return m_model->getTitle(); | |
| 60 else return ""; | |
| 61 } | |
| 62 QString getMaker() const { | |
| 63 if (m_model) return m_model->getMaker(); | |
| 64 else return ""; | |
| 65 } | |
| 66 QString getLocation() const { | |
| 67 if (m_model) return m_model->getLocation(); | |
| 68 else return ""; | |
| 69 } | |
| 54 | 70 |
| 55 float getValueMinimum() const { return -1.0f; } | 71 float getValueMinimum() const { return -1.0f; } |
| 56 float getValueMaximum() const { return 1.0f; } | 72 float getValueMaximum() const { return 1.0f; } |
| 57 | 73 |
| 58 virtual sv_frame_t getStartFrame() const { return m_startFrame; } | 74 virtual sv_frame_t getStartFrame() const { return m_startFrame; } |
| 59 virtual sv_frame_t getEndFrame() const { return m_startFrame + getFrameCount(); } | 75 virtual sv_frame_t getEndFrame() const { return m_startFrame + getFrameCount(); } |
| 60 | 76 |
| 61 void setStartFrame(sv_frame_t startFrame); | 77 void setStartFrame(sv_frame_t startFrame); |
| 62 | 78 |
| 63 virtual sv_frame_t getData(int channel, sv_frame_t start, sv_frame_t count, | 79 virtual std::vector<float> getData(int channel, sv_frame_t start, sv_frame_t count) const; |
| 64 float *buffer) const; | |
| 65 | 80 |
| 66 virtual sv_frame_t getData(int channel, sv_frame_t start, sv_frame_t count, | 81 virtual std::vector<std::vector<float>> getMultiChannelData(int fromchannel, int tochannel, sv_frame_t start, sv_frame_t count) const; |
| 67 double *buffer) const; | |
| 68 | |
| 69 virtual sv_frame_t getData(int fromchannel, int tochannel, | |
| 70 sv_frame_t start, sv_frame_t count, | |
| 71 float **buffer) const; | |
| 72 | 82 |
| 73 virtual int getSummaryBlockSize(int desired) const; | 83 virtual int getSummaryBlockSize(int desired) const; |
| 74 | 84 |
| 75 virtual void getSummaries(int channel, sv_frame_t start, sv_frame_t count, | 85 virtual void getSummaries(int channel, sv_frame_t start, sv_frame_t count, |
| 76 RangeBlock &ranges, int &blockSize) const; | 86 RangeBlock &ranges, int &blockSize) const; |
| 82 virtual void toXml(QTextStream &out, | 92 virtual void toXml(QTextStream &out, |
| 83 QString indent = "", | 93 QString indent = "", |
| 84 QString extraAttributes = "") const; | 94 QString extraAttributes = "") const; |
| 85 | 95 |
| 86 protected: | 96 protected: |
| 87 WaveFileModel *m_model; | 97 ReadOnlyWaveFileModel *m_model; |
| 88 WavFileWriter *m_writer; | 98 WavFileWriter *m_writer; |
| 89 WavFileReader *m_reader; | 99 WavFileReader *m_reader; |
| 90 sv_samplerate_t m_sampleRate; | 100 sv_samplerate_t m_sampleRate; |
| 91 int m_channels; | 101 int m_channels; |
| 92 sv_frame_t m_frameCount; | 102 sv_frame_t m_frameCount; |
