fix up Location::first_location_(after|before) to do the right thing when marks + ranges are interleaved (functions renamed)

git-svn-id: svn://localhost/ardour2/branches/3.0@13869 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2013-01-17 13:19:16 +00:00
parent 53f162f921
commit 4ecb07aaee
5 changed files with 79 additions and 65 deletions

View file

@ -171,10 +171,10 @@ BasicUI::save_state ()
void
BasicUI::prev_marker ()
{
Location *location = session->locations()->first_location_before (session->transport_frame());
framepos_t pos = session->locations()->first_mark_before (session->transport_frame());
if (location) {
session->request_locate (location->start(), session->transport_rolling());
if (pos >= 0) {
session->request_locate (pos, session->transport_rolling());
} else {
session->goto_start ();
}
@ -183,12 +183,12 @@ BasicUI::prev_marker ()
void
BasicUI::next_marker ()
{
Location *location = session->locations()->first_location_after (session->transport_frame());
framepos_t pos = session->locations()->first_mark_after (session->transport_frame());
if (location) {
session->request_locate (location->start(), session->transport_rolling());
if (pos >= 0) {
session->request_locate (pos, session->transport_rolling());
} else {
session->request_locate (session->current_end_frame());
session->goto_end();
}
}