summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_diskstream.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/midi_diskstream.cc')
-rw-r--r--libs/ardour/midi_diskstream.cc12
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 */
}