projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[3.0P] dont dump chain(1) in session.cc
[ardour.git]
/
libs
/
ardour
/
midi_diskstream.cc
diff --git
a/libs/ardour/midi_diskstream.cc
b/libs/ardour/midi_diskstream.cc
index 8b047490e772ff11d83919c510d28ada17404ad7..fa2cdce0140e8664149e8a0fea55cf94785d0414 100644
(file)
--- a/
libs/ardour/midi_diskstream.cc
+++ b/
libs/ardour/midi_diskstream.cc
@@
-373,7
+373,7
@@
trace_midi (ostream& o, MIDI::byte *msg, size_t len)
o << trace_prefix
<< "Channel "
<< (msg[0]&0xF)+1
o << trace_prefix
<< "Channel "
<< (msg[0]&0xF)+1
- << " Program
Property
Change ProgNum "
+ << " Program Change ProgNum "
<< (int) msg[1]
<< endl;
break;
<< (int) msg[1]
<< endl;
break;
@@
-924,7
+924,6
@@
MidiDiskstream::transport_stopped_wallclock (struct tm& /*when*/, time_t /*twhen
if (_write_source) {
_write_source->mark_for_remove ();
if (_write_source) {
_write_source->mark_for_remove ();
- _write_source->drop_references ();
_write_source.reset();
}
_write_source.reset();
}
@@
-1322,7
+1321,12
@@
MidiDiskstream::use_new_write_source (uint32_t n)
if (_write_source) {
if (_write_source->is_empty ()) {
if (_write_source) {
if (_write_source->is_empty ()) {
+ /* remove any region that is using this empty source; they can result when MIDI recordings
+ are made, but no MIDI data is received.
+ */
+ _playlist->remove_region_by_source (_write_source);
_write_source->mark_for_remove ();
_write_source->mark_for_remove ();
+ _write_source->drop_references ();
_write_source.reset();
} else {
_write_source.reset();
_write_source.reset();
} else {
_write_source.reset();