Mercurial > hg > svcore
comparison base/EventSeries.cpp @ 1638:b57a75aa5ae3 single-point
Add getEventsStartingWithin
author | Chris Cannam |
---|---|
date | Wed, 13 Mar 2019 10:55:02 +0000 |
parents | 05e3ea2237f5 |
children | e7f557789f99 |
comparison
equal
deleted
inserted
replaced
1637:e8099be64726 | 1638:b57a75aa5ae3 |
---|---|
255 | 255 |
256 return span; | 256 return span; |
257 } | 257 } |
258 | 258 |
259 EventVector | 259 EventVector |
260 EventSeries::getEventsStartingWithin(sv_frame_t frame, | |
261 sv_frame_t duration) const | |
262 { | |
263 EventVector span; | |
264 | |
265 const sv_frame_t start = frame; | |
266 const sv_frame_t end = frame + duration; | |
267 | |
268 // because we don't need to "look back" at events that started | |
269 // earlier than the start of the given range, we can do this | |
270 // entirely from m_events | |
271 | |
272 auto pitr = lower_bound(m_events.begin(), m_events.end(), | |
273 Event(start)); | |
274 while (pitr != m_events.end() && pitr->getFrame() < end) { | |
275 span.push_back(*pitr); | |
276 ++pitr; | |
277 } | |
278 | |
279 return span; | |
280 } | |
281 | |
282 EventVector | |
260 EventSeries::getEventsCovering(sv_frame_t frame) const | 283 EventSeries::getEventsCovering(sv_frame_t frame) const |
261 { | 284 { |
262 EventVector cover; | 285 EventVector cover; |
263 | 286 |
264 // first find any zero-duration events | 287 // first find any zero-duration events |