diff options
Diffstat (limited to 'libs/ardour/midi_diskstream.cc')
-rw-r--r-- | libs/ardour/midi_diskstream.cc | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index 6435655689..8247aac217 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -356,7 +356,7 @@ MidiDiskstream::check_record_status (jack_nframes_t transport_frame, jack_nframe if (_alignment_style == ExistingMaterial) { - if (!_session.get_punch_in()) { + if (!Config->get_punch_in()) { /* manual punch in happens at the correct transport frame because the user hit a button. but to get alignment correct @@ -385,7 +385,7 @@ MidiDiskstream::check_record_status (jack_nframes_t transport_frame, jack_nframe } else { - if (_session.get_punch_in()) { + if (Config->get_punch_in()) { first_recordable_frame += _roll_delay; } else { capture_start_frame -= _roll_delay; @@ -472,7 +472,7 @@ MidiDiskstream::process (jack_nframes_t transport_frame, jack_nframes_t nframes, adjust_capture_position = 0; - if (nominally_recording || (_session.get_record_enabled() && _session.get_punch_in())) { + if (nominally_recording || (_session.get_record_enabled() && Config->get_punch_in())) { OverlapType ot; ot = coverage (first_recordable_frame, last_recordable_frame, transport_frame, transport_frame + nframes); @@ -1006,25 +1006,15 @@ MidiDiskstream::transport_stopped (struct tm& when, time_t twhen, bool abort_cap if (abort_capture) { - list<boost::shared_ptr<Source> >* deletion_list = new list<boost::shared_ptr<Source> >; - if (_write_source) { _write_source->mark_for_remove (); - - deletion_list->push_back (_write_source); - + _write_source->drop_references (); _write_source.reset(); } /* new source set up in "out" below */ - if (!deletion_list->empty()) { - DeleteSources (deletion_list); - } else { - delete deletion_list; - } - } else { assert(_write_source); @@ -1193,8 +1183,8 @@ MidiDiskstream::engage_record_enable () g_atomic_int_set (&_record_enabled, 1); - if (Config->get_use_hardware_monitoring() && _source_port) { - _source_port->request_monitor_input (!(_session.get_auto_input() && rolling)); + if (_source_port && Config->get_monitoring_model() == HardwareMonitoring) { + _source_port->request_monitor_input (!(Config->get_auto_input() && rolling)); } RecordEnableChanged (); /* EMIT SIGNAL */ @@ -1204,7 +1194,7 @@ void MidiDiskstream::disengage_record_enable () { g_atomic_int_set (&_record_enabled, 0); - if (Config->get_use_hardware_monitoring()) { + if (_source_port && Config->get_monitoring_model() == HardwareMonitoring) { if (_source_port) { _source_port->request_monitor_input (false); } @@ -1229,7 +1219,7 @@ MidiDiskstream::get_state () node->add_property ("speed", buf); node->add_property("name", _name); - id().print(buf); + id().print(buf, sizeof(buf)); node->add_property("id", buf); if (_write_source && _session.get_record_enabled()) { @@ -1245,7 +1235,7 @@ MidiDiskstream::get_state () Location* pi; - if (_session.get_punch_in() && ((pi = _session.locations()->auto_punch_location()) != 0)) { + if (Config->get_punch_in() && ((pi = _session.locations()->auto_punch_location()) != 0)) { snprintf (buf, sizeof (buf), "%" PRIu32, pi->start()); } else { snprintf (buf, sizeof (buf), "%" PRIu32, _session.transport_frame()); |