diff options
author | Florian Jung <flo@windfisch.org> | 2013-09-12 18:51:51 +0200 |
---|---|---|
committer | Florian Jung <flo@windfisch.org> | 2013-09-12 18:53:53 +0200 |
commit | af09b4f881888b97903cda57907cda571be83b18 (patch) | |
tree | 6174aec715e169ae0748afa992fda0624faaebc7 | |
parent | 181cdf038cb3721e14b0d74cd9e7049472686917 (diff) |
Chain clones after loading a file. Fixes Windfisch/muse#12
-rw-r--r-- | muse2/muse/track.cpp | 7 | ||||
-rw-r--r-- | muse2/muse/wavetrack.cpp | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/muse2/muse/track.cpp b/muse2/muse/track.cpp index 98935315..8d30fccb 100644 --- a/muse2/muse/track.cpp +++ b/muse2/muse/track.cpp @@ -902,7 +902,7 @@ void MidiTrack::read(Xml& xml) switch (token) { case Xml::Error: case Xml::End: - return; + goto out_of_MidiTrackRead_forloop; case Xml::TagStart: if (tag == "transposition") transposition = xml.parseInt(); @@ -989,12 +989,15 @@ void MidiTrack::read(Xml& xml) if (tag == "miditrack" || tag == "drumtrack" || tag == "newdrumtrack") { setInPortAndChannelMask(portmask, chanmask); // Support old files. - return; + goto out_of_MidiTrackRead_forloop; } default: break; } } + +out_of_MidiTrackRead_forloop: + chainTrackParts(this); } void MidiTrack::readOurDrumSettings(Xml& xml) diff --git a/muse2/muse/wavetrack.cpp b/muse2/muse/wavetrack.cpp index 41beeb97..f21992a6 100644 --- a/muse2/muse/wavetrack.cpp +++ b/muse2/muse/wavetrack.cpp @@ -184,7 +184,7 @@ void WaveTrack::read(Xml& xml) switch (token) { case Xml::Error: case Xml::End: - return; + goto out_of_WaveTrackRead_forloop; case Xml::TagStart: if (tag == "part") { Part* p = 0; @@ -200,12 +200,14 @@ void WaveTrack::read(Xml& xml) case Xml::TagEnd: if (tag == "wavetrack") { mapRackPluginsToControllers(); - return; + goto out_of_WaveTrackRead_forloop; } default: break; } } +out_of_WaveTrackRead_forloop: + chainTrackParts(this); } //--------------------------------------------------------- |