mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 23:35:03 +01:00
Clarify stop-at-session-end behaviour; should fix #4033.
git-svn-id: svn://localhost/ardour2/branches/3.0@10978 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
a94098ae9b
commit
b5478a8a2b
1 changed files with 16 additions and 4 deletions
|
|
@ -1133,11 +1133,23 @@ Session::process_event (SessionEvent* ev)
|
||||||
framepos_t
|
framepos_t
|
||||||
Session::compute_stop_limit () const
|
Session::compute_stop_limit () const
|
||||||
{
|
{
|
||||||
bool const punching = (config.get_punch_in () && _locations->auto_punch_location());
|
if (!Config->get_stop_at_session_end ()) {
|
||||||
|
return max_framepos;
|
||||||
if (!actively_recording() && !punching && Config->get_stop_at_session_end()) {
|
|
||||||
return current_end_frame ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool const punching_in = (config.get_punch_in () && _locations->auto_punch_location());
|
||||||
|
bool const punching_out = (config.get_punch_out () && _locations->auto_punch_location());
|
||||||
|
|
||||||
|
if (actively_recording ()) {
|
||||||
|
/* permanently recording */
|
||||||
return max_framepos;
|
return max_framepos;
|
||||||
|
} else if (punching_in && !punching_out) {
|
||||||
|
/* punching in but never out */
|
||||||
|
return max_framepos;
|
||||||
|
} else if (punching_in && punching_out && _locations->auto_punch_location()->end() > current_end_frame()) {
|
||||||
|
/* punching in and punching out after session end */
|
||||||
|
return max_framepos;
|
||||||
|
}
|
||||||
|
|
||||||
|
return current_end_frame ();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue