1
package org.herac.tuxguitar.io.midi;
3
import java.io.OutputStream;
5
import org.herac.tuxguitar.io.base.TGFileFormat;
6
import org.herac.tuxguitar.io.base.TGSongExporter;
7
import org.herac.tuxguitar.player.base.MidiSequenceParser;
8
import org.herac.tuxguitar.song.managers.TGSongManager;
9
import org.herac.tuxguitar.song.models.TGSong;
11
public class MidiSongExporter implements TGSongExporter{
13
private MidiSettings settings;
15
public String getExportName() {
19
public TGFileFormat getFileFormat() {
20
return new TGFileFormat("Midi","*.mid;*.midi");
23
public boolean configure(boolean setDefaults) {
24
this.settings = (setDefaults ? MidiSettings.getDefaults(): new MidiSettingsDialog().open() );
25
return (this.settings != null);
28
public void exportSong(OutputStream stream, TGSong song) {
29
TGSongManager manager = new TGSongManager();
30
manager.setSong(song);
31
MidiSequenceParser parser = new MidiSequenceParser(manager,MidiSequenceParser.DEFAULT_EXPORT_FLAGS,100,this.settings.getTranspose());
32
MidiSequenceHandlerImpl sequence = new MidiSequenceHandlerImpl( (song.countTracks() + 1) , stream);
33
parser.parse(sequence);