| 308 | } |
| 309 | |
| 310 | TrackMarkerPtr |
| 311 | TrackerContext::getNextMarker(const TrackMarkerPtr& marker, |
| 312 | bool loop) const |
| 313 | { |
| 314 | QMutexLocker k(&_imp->trackerContextMutex); |
| 315 | |
| 316 | for (std::size_t i = 0; i < _imp->markers.size(); ++i) { |
| 317 | if (_imp->markers[i] == marker) { |
| 318 | if ( i < (_imp->markers.size() - 1) ) { |
| 319 | return _imp->markers[i + 1]; |
| 320 | } else if (!loop) { |
| 321 | return TrackMarkerPtr(); |
| 322 | } |
| 323 | } |
| 324 | } |
| 325 | |
| 326 | return (_imp->markers.size() == 0 || !loop || _imp->markers[0] == marker) ? TrackMarkerPtr() : _imp->markers[0]; |
| 327 | } |
| 328 | |
| 329 | void |
| 330 | TrackerContext::appendMarker(const TrackMarkerPtr& marker) |