diff options
author | Richard Shann <rshann@debianrts.home> | 2011-02-03 19:01:02 +0000 |
---|---|---|
committer | Richard Shann <rshann@debianrts.home> | 2011-02-03 19:01:02 +0000 |
commit | 207de8ce3e367504712979c9cc24c586cece4f30 (patch) | |
tree | 77d88a643bf9eace4c0d57596fa3c0f4dadaa46e /src | |
parent | 61176f124dd19c811052fcb99167502be40c7cbc (diff) |
Ensure recorded track is removed from midi before recalculating the midi for a score
Diffstat (limited to 'src')
-rw-r--r-- | src/exportmidi.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/exportmidi.c b/src/exportmidi.c index 9ad9a251..c8cfffcf 100644 --- a/src/exportmidi.c +++ b/src/exportmidi.c @@ -1946,11 +1946,19 @@ exportmidi (gchar * thefilename, DenemoScore * si, gint start, gint end) smf_track_remove_from_smf(Denemo.gui->si->recorded_midi_track); } /* we are done */ - - - free_midi_data(si); - si->smf = smf; - + {gboolean midi_track = FALSE; + if(Denemo.gui->si->recorded_midi_track) { + if(si->smf && (((smf_track_t*)Denemo.gui->si->recorded_midi_track)->smf==si->smf)) { + smf_track_remove_from_smf(Denemo.gui->si->recorded_midi_track); + midi_track = TRUE; + } + } + free_midi_data(si); + si->smf = smf; + if(midi_track) + smf_add_track(smf, Denemo.gui->si->recorded_midi_track); + } + si->smfsync = si->changecount; |