diff options
Diffstat (limited to 'libs/ardour/midi_diskstream.cc')
-rw-r--r-- | libs/ardour/midi_diskstream.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index 691335de93..c5711a8295 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -68,6 +68,7 @@ MidiDiskstream::MidiDiskstream (Session &sess, const string &name, Diskstream::F , _source_port(0) , _capture_transition_buf(0) , _last_flush_frame(0) + , _note_mode(Sustained) { /* prevent any write sources from being created */ @@ -92,6 +93,7 @@ MidiDiskstream::MidiDiskstream (Session& sess, const XMLNode& node) , _source_port(0) , _capture_transition_buf(0) , _last_flush_frame(0) + , _note_mode(Sustained) { in_set_state = true; init (Recordable); @@ -305,6 +307,14 @@ MidiDiskstream::set_destructive (bool yn) assert( ! yn); return -1; } + +void +MidiDiskstream::set_note_mode (NoteMode m) +{ + _note_mode = m; + if (_write_source && _write_source->model()) + _write_source->model()->set_note_mode(m); +} void MidiDiskstream::check_record_status (nframes_t transport_frame, nframes_t nframes, bool can_record) @@ -1212,6 +1222,8 @@ MidiDiskstream::engage_record_enable () _source_port->request_monitor_input (!(Config->get_auto_input() && rolling)); } + _write_source->mark_streaming_midi_write_started (_note_mode); + RecordEnableChanged (); /* EMIT SIGNAL */ } |