Mercurial > hg > svcore
diff data/model/Model.h @ 1453:4b496a258782
Merge from branch streaming-csv-writer
author | Chris Cannam |
---|---|
date | Tue, 17 Apr 2018 10:52:06 +0100 |
parents | 6e9615bde1f9 |
children | 9d37c8cf9686 |
line wrap: on
line diff
--- a/data/model/Model.h Thu Mar 01 18:02:22 2018 +0000 +++ b/data/model/Model.h Tue Apr 17 10:52:06 2018 +0100 @@ -53,7 +53,11 @@ virtual sv_frame_t getStartFrame() const = 0; /** - * Return the last audio frame spanned by the model. + * Return the audio frame at the end of the model, i.e. 1 more + * than the final frame contained within the model. The end frame + * minus the start frame should yield the total duration in frames + * spanned by the model. This is consistent with the definition of + * the end frame of a Selection object. */ virtual sv_frame_t getEndFrame() const = 0; @@ -91,6 +95,11 @@ virtual QString getTypeName() const = 0; /** + * Return true if this is a sparse model. + */ + virtual bool isSparse() const { return false; } + + /** * Mark the model as abandoning. This means that the application * no longer needs it, so it can stop doing any background * calculations it may be involved in. Note that as far as the @@ -220,11 +229,11 @@ virtual QString toDelimitedDataString(QString delimiter) const { return toDelimitedDataStringSubset - (delimiter, getStartFrame(), getEndFrame() + 1); + (delimiter, getStartFrame(), getEndFrame()); } virtual QString toDelimitedDataStringWithOptions(QString delimiter, DataExportOptions opts) const { return toDelimitedDataStringSubsetWithOptions - (delimiter, opts, getStartFrame(), getEndFrame() + 1); + (delimiter, opts, getStartFrame(), getEndFrame()); } virtual QString toDelimitedDataStringSubset(QString, sv_frame_t /* f0 */, sv_frame_t /* f1 */) const { return "";