Mercurial > hg > svcore
comparison base/Selection.cpp @ 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 | d397ea0a79f5 |
| children | 70a232b1f12a |
comparison
equal
deleted
inserted
replaced
| 299:576be0d0d218 | 300:5877d68815c7 |
|---|---|
| 170 if (!m_selections.empty()) { | 170 if (!m_selections.empty()) { |
| 171 m_selections.clear(); | 171 m_selections.clear(); |
| 172 } | 172 } |
| 173 } | 173 } |
| 174 | 174 |
| 175 void | |
| 176 MultiSelection::getExtents(size_t &startFrame, size_t &endFrame) const | |
| 177 { | |
| 178 startFrame = 0; | |
| 179 endFrame = 0; | |
| 180 | |
| 181 for (SelectionList::const_iterator i = m_selections.begin(); | |
| 182 i != m_selections.end(); ++i) { | |
| 183 | |
| 184 if (i == m_selections.begin() || i->getStartFrame() < startFrame) { | |
| 185 startFrame = i->getStartFrame(); | |
| 186 } | |
| 187 | |
| 188 if (i == m_selections.begin() || i->getEndFrame() > endFrame) { | |
| 189 endFrame = i->getEndFrame(); | |
| 190 } | |
| 191 } | |
| 192 } | |
| 193 | |
| 175 Selection | 194 Selection |
| 176 MultiSelection::getContainingSelection(size_t frame, bool defaultToFollowing) const | 195 MultiSelection::getContainingSelection(size_t frame, bool defaultToFollowing) const |
| 177 { | 196 { |
| 178 // This scales very badly with the number of selections, but it's | 197 // This scales very badly with the number of selections, but it's |
| 179 // more efficient for very small numbers of selections than a more | 198 // more efficient for very small numbers of selections than a more |
