- LocationStartEarlierComparison cmp;
- locs.sort (cmp);
-
- /* locs is now sorted earliest..latest */
-
- for (LocationList::iterator i = locs.begin(); i != locs.end(); ++i) {
- if (!include_special_ranges && ((*i)->is_auto_loop() || (*i)->is_auto_punch())) {
- continue;
- }
- if (!(*i)->is_hidden()) {
- if ((*i)->is_mark()) {
- /* MARK, start == end so just compare start */
- if ((*i)->start() > frame) {
- return (*i)->start();
- }
- } else {
- /* RANGE, start != end, compare start and end */
- if ((*i)->start() > frame ) {
- return (*i)->start ();
- }
- if ((*i)->end() > frame) {
- return (*i)->end ();
- }
- }
- }