summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRichard Shann <rshann@debianrts.home>2011-02-03 19:01:02 +0000
committerRichard Shann <rshann@debianrts.home>2011-02-03 19:01:02 +0000
commit207de8ce3e367504712979c9cc24c586cece4f30 (patch)
tree77d88a643bf9eace4c0d57596fa3c0f4dadaa46e /src
parent61176f124dd19c811052fcb99167502be40c7cbc (diff)
Ensure recorded track is removed from midi before recalculating the midi for a score
Diffstat (limited to 'src')
-rw-r--r--src/exportmidi.c18
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;