/* * Created on 20-mar-2006 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package org.herac.tuxguitar.gui.transport; import org.herac.tuxguitar.gui.TuxGuitar; import org.herac.tuxguitar.gui.util.MidiTickUtil; import org.herac.tuxguitar.player.base.MidiPlayer; import org.herac.tuxguitar.song.managers.TGSongManager; import org.herac.tuxguitar.song.models.TGMeasure; import org.herac.tuxguitar.song.models.TGMeasureHeader; /** * @author julian * * TODO To change the template for this generated type comment go to Window - * Preferences - Java - Code Style - Code Templates */ public class TGTransport{ public TGTransport() { super(); } protected TGSongManager getSongManager(){ return TuxGuitar.instance().getSongManager(); } public void gotoFirst(){ gotoMeasure(getSongManager().getFirstMeasureHeader(),true); } public void gotoLast(){ gotoMeasure(getSongManager().getLastMeasureHeader(),true) ; } public void gotoNext(){ MidiPlayer player = TuxGuitar.instance().getPlayer(); TGMeasureHeader header = getSongManager().getMeasureHeaderAt(MidiTickUtil.getStart(player.getTickPosition())); if(header != null){ gotoMeasure(getSongManager().getNextMeasureHeader(header),true); } } public void gotoPrevious(){ MidiPlayer player = TuxGuitar.instance().getPlayer(); TGMeasureHeader header = getSongManager().getMeasureHeaderAt(MidiTickUtil.getStart(player.getTickPosition())); if(header != null){ gotoMeasure(getSongManager().getPrevMeasureHeader(header),true); } } public void gotoMeasure(TGMeasureHeader header){ gotoMeasure(header,false); } public void gotoMeasure(TGMeasureHeader header,boolean moveCaret){ if(header != null){ TGMeasure playingMeasure = null; if( TuxGuitar.instance().getPlayer().isRunning() ){ TuxGuitar.instance().getEditorCache().updatePlayMode(); playingMeasure = TuxGuitar.instance().getEditorCache().getPlayMeasure(); } if( playingMeasure == null || playingMeasure.getHeader().getNumber() != header.getNumber() ){ TuxGuitar.instance().getPlayer().setTickPosition(MidiTickUtil.getTick(header.getStart())); if(moveCaret){ TuxGuitar.instance().getTablatureEditor().getTablature().getCaret().goToTickPosition(); TuxGuitar.instance().updateCache(true); } } } } }