/* * JFugue - API for Music Programming * Copyright (C) 2003-2008 David Koelle * * http://www.jfugue.org * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ package org.jfugue; import java.util.EventListener; /** * Classes that implement ParserListener and add themselves as listeners to a * <code>Parser</code> object will receive events when the <code>Parser</code> * inteprets tokens from a Music String. * * @see MusicStringParser * * @author David Koelle * @version 3.0 */ public interface ParserListener extends EventListener { /** * Called when the parser encounters a voice event. * * @param voice * the event that has been parsed * @see Voice */ public void voiceEvent(Voice voice); /** * Called when the parser encounters a tempo event. * * @param tempo * the event that has been parsed * @see Tempo */ public void tempoEvent(Tempo tempo); /** * Called when the parser encounters an instrument event. * * @param instrument * the event that has been parsed * @see Instrument */ public void instrumentEvent(Instrument instrument); /** * Called when the parser encounters a layer event. * * @param layer * the event that has been parsed * @see Layer */ public void layerEvent(Layer layer); /** * Called when the parser encounters a measure event. * * @param measure * the event that has been parsed * @see Measure */ public void measureEvent(Measure measure); /** * Called when the parser encounters a time event. * * @param time * the event that has been parsed * @see Time */ public void timeEvent(Time time); /** * Called when the parser encounters a key signature event. * * @param time * the event that has been parsed * @see KeySignature */ public void keySignatureEvent(KeySignature keySig); /** * Called when the parser encounters a controller event. * * @param controller * the event that has been parsed */ public void controllerEvent(Controller controller); /** * Called when the parser encounters a channel pressure event. * * @param channelPressure * the event that has been parsed * @see ChannelPressure */ public void channelPressureEvent(ChannelPressure channelPressure); /** * Called when the parser encounters a polyphonic pressure event. * * @param polyphonicPressure * the event that has been parsed * @see PolyphonicPressure */ public void polyphonicPressureEvent(PolyphonicPressure polyphonicPressure); /** * Called when the parser encounters a pitch bend event. * * @param pitchBend * the event that has been parsed * @see PitchBend */ public void pitchBendEvent(PitchBend pitchBend); /** * Called when the parser encounters an initial note event. * * @param note * the event that has been parsed * @see Note */ public void noteEvent(Note note); /** * Called when the parser encounters a sequential note event. * * @param note * the event that has been parsed * @see Note */ public void sequentialNoteEvent(Note note); /** * Called when the parser encounters a parallel note event. * * @param note * the event that has been parsed * @see Note */ public void parallelNoteEvent(Note note); }