| 301 | } |
| 302 | |
| 303 | double TimePeriod::FindNextTransition(double begin) |
| 304 | { |
| 305 | ObjectLock olock(this); |
| 306 | |
| 307 | Array::Ptr segments = GetSegments(); |
| 308 | |
| 309 | double closestTransition = -1; |
| 310 | |
| 311 | if (segments) { |
| 312 | ObjectLock dlock(segments); |
| 313 | for (Dictionary::Ptr segment : segments) { |
| 314 | if (segment->Get("begin") > begin && (segment->Get("begin") < closestTransition || closestTransition == -1)) |
| 315 | closestTransition = segment->Get("begin"); |
| 316 | |
| 317 | if (segment->Get("end") > begin && (segment->Get("end") < closestTransition || closestTransition == -1)) |
| 318 | closestTransition = segment->Get("end"); |
| 319 | } |
| 320 | } |
| 321 | |
| 322 | return closestTransition; |
| 323 | } |
| 324 | |
| 325 | void TimePeriod::UpdateTimerHandler() |
| 326 | { |