Mercurial > hg > svcore
comparison data/model/RangeSummarisableTimeValueModel.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 | c022976d18e8 |
children | 3ff8f571da09 |
comparison
equal
deleted
inserted
replaced
299:576be0d0d218 | 300:5877d68815c7 |
---|---|
51 }; | 51 }; |
52 | 52 |
53 typedef std::vector<Range> RangeBlock; | 53 typedef std::vector<Range> RangeBlock; |
54 | 54 |
55 /** | 55 /** |
56 * Return ranges between the given start and end frames, | 56 * Return ranges from the given start frame, corresponding to the |
57 * summarised at the given block size. ((end - start + 1) / | 57 * given number of underlying sample frames, summarised at the |
58 * blockSize) ranges should ideally be returned. | 58 * given block size. duration / blockSize ranges should ideally |
59 * be returned. | |
59 * | 60 * |
60 * If the given block size is not supported by this model | 61 * If the given block size is not supported by this model |
61 * (according to its zoom constraint), also modify the blockSize | 62 * (according to its zoom constraint), also modify the blockSize |
62 * parameter so as to return the block size that was actually | 63 * parameter so as to return the block size that was actually |
63 * obtained. | 64 * obtained. |
64 */ | 65 */ |
65 virtual void getRanges(size_t channel, size_t start, size_t end, | 66 virtual void getSummaries(size_t channel, size_t start, size_t count, |
66 RangeBlock &ranges, | 67 RangeBlock &ranges, |
67 size_t &blockSize) const = 0; | 68 size_t &blockSize) const = 0; |
68 | 69 |
69 /** | 70 /** |
70 * Return the range between the given start and end frames, | 71 * Return the range from the given start frame, corresponding to |
71 * summarised at a block size equal to the distance between start | 72 * the given number of underlying sample frames, summarised at a |
72 * and end frames. | 73 * block size equal to the distance between start and end frames. |
73 */ | 74 */ |
74 virtual Range getRange(size_t channel, size_t start, size_t end) const = 0; | 75 virtual Range getSummary(size_t channel, size_t start, size_t count) const = 0; |
75 | 76 |
76 virtual void setAlignment(AlignmentModel *alignment); // I take ownership | 77 virtual void setAlignment(AlignmentModel *alignment); // I take ownership |
77 virtual const Model *getAlignmentReference() const; | 78 virtual const Model *getAlignmentReference() const; |
78 virtual size_t alignToReference(size_t frame) const; | 79 virtual size_t alignToReference(size_t frame) const; |
79 virtual size_t alignFromReference(size_t referenceFrame) const; | 80 virtual size_t alignFromReference(size_t referenceFrame) const; |