diff options
author | Robin Gareus <robin@gareus.org> | 2017-01-18 15:15:48 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-01-18 15:15:48 +0100 |
commit | efd10abdfb54bb1dd56de0aa01278805f5fbf332 (patch) | |
tree | d25ed31bdd75b77842af782b6e97738e663ca264 /libs/ardour/midi_diskstream.cc | |
parent | cf31233cd1503f7f3818c6bbeb6f5bd427144f80 (diff) |
Implement record with preroll
Diffstat (limited to 'libs/ardour/midi_diskstream.cc')
-rw-r--r-- | libs/ardour/midi_diskstream.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index 13c0cdd9e8..9e784cbd38 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -367,7 +367,7 @@ MidiDiskstream::process (BufferSet& bufs, framepos_t transport_frame, pframes_t adjust_capture_position = 0; - if (nominally_recording || (re && was_recording && _session.get_record_enabled() && _session.config.get_punch_in())) { + if (nominally_recording || (re && was_recording && _session.get_record_enabled() && (_session.config.get_punch_in() || _session.preroll_record_enabled()))) { Evoral::OverlapType ot = Evoral::coverage (first_recordable_frame, last_recordable_frame, transport_frame, transport_frame + nframes); // XXX should this be transport_frame + nframes - 1 ? coverage() expects its parameter ranges to include their end points @@ -1238,7 +1238,9 @@ MidiDiskstream::get_state () Location* pi; - if (_session.config.get_punch_in() && ((pi = _session.locations()->auto_punch_location()) != 0)) { + if (_session.preroll_record_enabled ()) { + snprintf (buf, sizeof (buf), "%" PRId64, _session.preroll_record_in ()); + } else if (_session.config.get_punch_in() && ((pi = _session.locations()->auto_punch_location()) != 0)) { snprintf (buf, sizeof (buf), "%" PRId64, pi->start()); } else { snprintf (buf, sizeof (buf), "%" PRId64, _session.transport_frame()); |