13
0

add method (taken from GTK GUI) to goto_nth_marker() to BasicUI

This commit is contained in:
Paul Davis 2016-06-17 01:55:36 -04:00
parent 93dd5414d6
commit ac9b5f872d
2 changed files with 33 additions and 0 deletions

View File

@ -539,6 +539,37 @@ BasicUI::cancel_all_solo ()
}
}
struct SortLocationsByPosition {
bool operator() (Location* a, Location* b) {
return a->start() < b->start();
}
};
void
BasicUI::goto_nth_marker (int n)
{
if (!session) {
return;
}
const Locations::LocationList& l (session->locations()->list());
Locations::LocationList ordered;
ordered = l;
SortLocationsByPosition cmp;
ordered.sort (cmp);
for (Locations::LocationList::iterator i = ordered.begin(); n >= 0 && i != ordered.end(); ++i) {
if ((*i)->is_mark() && !(*i)->is_hidden() && !(*i)->is_session_range()) {
if (n == 0) {
session->request_locate ((*i)->start(), session->transport_rolling());
break;
}
--n;
}
}
}
#if 0
this stuff is waiting to go in so that all UIs can offer complex solo/mute functionality

View File

@ -140,6 +140,8 @@ class LIBCONTROLCP_API BasicUI {
void all_tracks_rec_in ();
void all_tracks_rec_out ();
void goto_nth_marker (int n);
ARDOUR::framecnt_t timecode_frames_per_hour ();
void timecode_time (framepos_t where, Timecode::Time&);