summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-01-18 15:15:48 +0100
committerRobin Gareus <robin@gareus.org>2017-01-18 15:15:48 +0100
commitefd10abdfb54bb1dd56de0aa01278805f5fbf332 (patch)
treed25ed31bdd75b77842af782b6e97738e663ca264 /libs/ardour/session.cc
parentcf31233cd1503f7f3818c6bbeb6f5bd427144f80 (diff)
Implement record with preroll
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 34e4c52e9f..27a3e63112 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -304,6 +304,7 @@ Session::Session (AudioEngine &eng,
, _play_range (false)
, _range_selection (-1,-1)
, _object_selection (-1,-1)
+ , _preroll_record_in (-1)
, main_outs (0)
, first_file_data_format_reset (true)
, first_file_header_format_reset (true)
@@ -781,6 +782,7 @@ Session::destroy ()
case SessionEvent::Skip:
case SessionEvent::PunchIn:
case SessionEvent::PunchOut:
+ case SessionEvent::RecordStart:
case SessionEvent::StopOnce:
case SessionEvent::RangeStop:
case SessionEvent::RangeLocate:
@@ -1999,6 +2001,7 @@ Session::disable_record (bool rt_context, bool force)
if (!rt_context) {
remove_pending_capture_state ();
}
+ unset_preroll_record ();
}
}
@@ -2036,7 +2039,7 @@ Session::maybe_enable_record (bool rt_context)
}
if (_transport_speed) {
- if (!config.get_punch_in()) {
+ if (!config.get_punch_in() && !preroll_record_enabled ()) {
enable_record ();
}
} else {