mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-07 06:05:43 +01:00
Fix monitoring state, specifically #59
This partially reverts commit 7455b99b45.
and updates the condition for clip-recording.
This commit is contained in:
parent
898ac01e25
commit
b59c69b34d
1 changed files with 11 additions and 3 deletions
|
|
@ -6188,7 +6188,7 @@ Route::monitoring_state () const
|
|||
|
||||
bool const roll = _session.transport_state_rolling ();
|
||||
bool const auto_input = _session.config.get_auto_input ();
|
||||
bool const clip_rec = _triggerbox && _triggerbox->record_enabled();
|
||||
bool const clip_rec = _triggerbox && _triggerbox->record_enabled() == Recording && !_session.get_record_enabled ();
|
||||
bool const track_rec = _disk_writer->record_enabled ();
|
||||
bool session_rec;
|
||||
|
||||
|
|
@ -6220,12 +6220,20 @@ Route::monitoring_state () const
|
|||
|
||||
if (track_rec || clip_rec) {
|
||||
|
||||
if (!clip_rec && (!session_rec && roll && auto_input)) {
|
||||
/* either record to the timeline or into a clip */
|
||||
assert (track_rec != clip_rec);
|
||||
|
||||
if (clip_rec) {
|
||||
/* actively recording into a slot */
|
||||
return get_input_monitoring_state (true, auto_input_does_talkback) & auto_monitor_mask;
|
||||
}
|
||||
|
||||
if (!session_rec && roll && auto_input) {
|
||||
return auto_monitor_disk | get_input_monitoring_state (false, false);
|
||||
} else {
|
||||
/* recording */
|
||||
const samplecnt_t prtl = _session.preroll_record_trim_len ();
|
||||
if (!clip_rec && session_rec && roll && prtl > 0 && _disk_writer->get_captured_samples () < prtl) {
|
||||
if (session_rec && roll && prtl > 0 && _disk_writer->get_captured_samples () < prtl) {
|
||||
/* CUE monitor during pre-roll */
|
||||
return auto_monitor_disk | (get_input_monitoring_state (true, false) & auto_monitor_mask);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue