diff options
author | Robin Gareus <robin@gareus.org> | 2014-06-26 19:04:06 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-06-26 19:15:39 +0200 |
commit | 7cb6e9065a577adaecf3d52e8fc472f671b558d6 (patch) | |
tree | 2a19ce087ef41bf61e28bbcdc15fcb11cbf49454 /libs/ardour/midi_diskstream.cc | |
parent | c596e8dd87bbad9599e2c8619f03dcdb25564b69 (diff) |
allow to set custom file name for each diststream
Diffstat (limited to 'libs/ardour/midi_diskstream.cc')
-rw-r--r-- | libs/ardour/midi_diskstream.cc | 18 |
1 files changed, 17 insertions, 1 deletions
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<SMFSource>( - _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<MidiBuffer> MidiDiskstream::get_gui_feed_buffer () const { |