From 7cb6e9065a577adaecf3d52e8fc472f671b558d6 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 26 Jun 2014 19:04:06 +0200 Subject: allow to set custom file name for each diststream --- libs/ardour/midi_diskstream.cc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'libs/ardour/midi_diskstream.cc') diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index 1cc69263f0..a104d98f26 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -1223,7 +1223,7 @@ MidiDiskstream::use_new_write_source (uint32_t n) try { _write_source = boost::dynamic_pointer_cast( - _session.create_midi_source_for_session (name ())); + _session.create_midi_source_for_session (write_source_name ())); if (!_write_source) { throw failed_constructor(); @@ -1441,6 +1441,9 @@ MidiDiskstream::get_playback (MidiBuffer& dst, framecnt_t nframes) bool MidiDiskstream::set_name (string const & name) { + if (_name == name) { + return true; + } Diskstream::set_name (name); /* get a new write source so that its name reflects the new diskstream name */ @@ -1449,6 +1452,19 @@ MidiDiskstream::set_name (string const & name) return true; } +bool +MidiDiskstream::set_write_source_name (const std::string& str) { + if (_write_source_name == str) { + return true; + } + Diskstream::set_write_source_name (str); + if (_write_source_name == name()) { + return true; + } + use_new_write_source (0); + return true; +} + boost::shared_ptr MidiDiskstream::get_gui_feed_buffer () const { -- cgit v1.2.3