diff data/model/WritableWaveFileModel.h @ 300:5877d68815c7

* Change WaveFileModel API from getValues(start,end) to getData(start,count). It's much less error-prone to pass in frame counts instead of start/end locations. Should have done this ages ago. This closes #1794563. * Add option to apply a transform to only the selection region, instead of the whole audio. * (to make the above work properly) Add start frame offset to wave models
author Chris Cannam
date Mon, 01 Oct 2007 13:48:38 +0000
parents 7b96b3bd4bae
children 700cd3350391 6f6ab834449d
line wrap: on
line diff
--- a/data/model/WritableWaveFileModel.h	Fri Sep 28 16:15:06 2007 +0000
+++ b/data/model/WritableWaveFileModel.h	Mon Oct 01 13:48:38 2007 +0000
@@ -57,19 +57,21 @@
     float getValueMinimum() const { return -1.0f; }
     float getValueMaximum() const { return  1.0f; }
 
-    virtual size_t getStartFrame() const { return 0; }
-    virtual size_t getEndFrame() const { return getFrameCount(); }
+    virtual size_t getStartFrame() const { return m_startFrame; }
+    virtual size_t getEndFrame() const { return m_startFrame + getFrameCount(); }
 
-    virtual size_t getValues(int channel, size_t start, size_t end,
-			     float *buffer) const;
+    void setStartFrame(size_t startFrame);
 
-    virtual size_t getValues(int channel, size_t start, size_t end,
-			     double *buffer) const;
+    virtual size_t getData(int channel, size_t start, size_t count,
+                           float *buffer) const;
 
-    virtual void getRanges(size_t channel, size_t start, size_t end,
-                           RangeBlock &ranges, size_t &blockSize) const;
+    virtual size_t getData(int channel, size_t start, size_t count,
+                           double *buffer) const;
 
-    virtual Range getRange(size_t channel, size_t start, size_t end) const;
+    virtual void getSummaries(size_t channel, size_t start, size_t count,
+                              RangeBlock &ranges, size_t &blockSize) const;
+
+    virtual Range getSummary(size_t channel, size_t start, size_t count) const;
 
     virtual void toXml(QTextStream &out,
                        QString indent = "",
@@ -82,6 +84,7 @@
     size_t m_sampleRate;
     size_t m_channels;
     size_t m_frameCount;
+    size_t m_startFrame;
     int m_completion;
 };