MidiDiskstream::~MidiDiskstream ()
{
Glib::Threads::Mutex::Lock lm (state_lock);
+ delete _playback_buf;
+ delete _capture_buf;
}
/* set length in beats to entire capture length */
BeatsFramesConverter converter (_session.tempo_map(), capture_info.front()->start);
- const double total_capture_beats = converter.from (total_capture);
+ const Evoral::MusicalTime total_capture_beats = converter.from (total_capture);
_write_source->set_length_beats (total_capture_beats);
/* flush to disk: this step differs from the audio path,
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();
*/
try {
- string new_name = _session.new_midi_source_name (name());
+ string new_path = _session.new_midi_source_path (name());
- if (_write_source->rename (new_name)) {
+ if (_write_source->rename (new_path)) {
return string();
}
} catch (...) {
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 */
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
{