Browse Source

Made into a ProjectListener for new style event notification

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270469 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
addc2628f8
2 changed files with 110 additions and 162 deletions
  1. +55
    -81
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java
  2. +55
    -81
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java

+ 55
- 81
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java View File

@@ -19,10 +19,9 @@ import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildListener;
import org.apache.tools.ant.Project;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.LogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.apache.myrmidon.listeners.AbstractProjectListener;

/**
* This class is designed to be used by any AntTask that requires audio output.
@@ -35,8 +34,8 @@ import org.apache.avalon.framework.logger.AbstractLogEnabled;
* @version $Revision$, $Date$
*/
public class AntSoundPlayer
extends AbstractLogEnabled
implements LineListener, BuildListener
extends AbstractProjectListener
implements LineListener, LogEnabled
{
private File m_fileSuccess;
private int m_loopsSuccess;
@@ -46,110 +45,68 @@ public class AntSoundPlayer
private int m_loopsFail;
private Long m_durationFail;

public AntSoundPlayer()
{
}

/**
* @param fileFail The feature to be added to the BuildFailedSound attribute
* @param loopsFail The feature to be added to the BuildFailedSound
* attribute
* @param durationFail The feature to be added to the BuildFailedSound
* attribute
*/
public void addBuildFailedSound( File fileFail, int loopsFail, Long durationFail )
{
m_fileFail = fileFail;
m_loopsFail = loopsFail;
m_durationFail = durationFail;
}

/**
* @param loops the number of times the file should be played when the build
* is successful
* @param duration the number of milliseconds the file should be played when
* the build is successful
* @param file The feature to be added to the BuildSuccessfulSound attribute
*/
public void addBuildSuccessfulSound( File file, int loops, Long duration )
{
m_fileSuccess = file;
m_loopsSuccess = loops;
m_durationSuccess = duration;
}
private Logger m_logger;

/**
* Fired after the last target has finished. This event will still be thrown
* if an error occured during the build.
* Provide component with a logger.
*
* @see BuildEvent#getException()
* @param logger the logger
*/
public void buildFinished( BuildEvent event )
public void enableLogging( final Logger logger )
{
if( event.getException() == null && m_fileSuccess != null )
{
// build successfull!
play( m_fileSuccess, m_loopsSuccess, m_durationSuccess );
}
else if( event.getException() != null && m_fileFail != null )
{
play( m_fileFail, m_loopsFail, m_durationFail );
}
m_logger = logger;
}

/**
* Fired before any targets are started.
*/
public void buildStarted( BuildEvent event )
protected final Logger getLogger()
{
return m_logger;
}

/**
* Fired whenever a message is logged.
*
* @see BuildEvent#getMessage()
* @see BuildEvent#getPriority()
* Notify listener of projectFinished event.
*/
public void messageLogged( BuildEvent event )
public void projectFinished()
{
success();
}

/**
* Fired when a target has finished. This event will still be thrown if an
* error occured during the build.
* Notify listener of log message event.
*
* @see BuildEvent#getException()
* @param message the message
* @param throwable the throwable
*/
public void targetFinished( BuildEvent event )
public void log( final String message, final Throwable throwable )
{
failure();
}

/**
* Fired when a target is started.
*
* @see BuildEvent#getTarget()
*/
public void targetStarted( BuildEvent event )
{
}

/**
* Fired when a task has finished. This event will still be throw if an
* error occured during the build.
*
* @see BuildEvent#getException()
* @param fileFail The feature to be added to the BuildFailedSound attribute
* @param loopsFail The feature to be added to the BuildFailedSound
* attribute
* @param durationFail The feature to be added to the BuildFailedSound
* attribute
*/
public void taskFinished( BuildEvent event )
public void addBuildFailedSound( File fileFail, int loopsFail, Long durationFail )
{
m_fileFail = fileFail;
m_loopsFail = loopsFail;
m_durationFail = durationFail;
}

/**
* Fired when a task is started.
*
* @see BuildEvent#getTask()
* @param loops the number of times the file should be played when the build
* is successful
* @param duration the number of milliseconds the file should be played when
* the build is successful
* @param file The feature to be added to the BuildSuccessfulSound attribute
*/
public void taskStarted( BuildEvent event )
public void addBuildSuccessfulSound( File file, int loops, Long duration )
{
m_fileSuccess = file;
m_loopsSuccess = loops;
m_durationSuccess = duration;
}

/**
@@ -174,6 +131,23 @@ public class AntSoundPlayer
}
}

protected void success()
{
if( null != m_fileSuccess )
{
// build successfull!
play( m_fileSuccess, m_loopsSuccess, m_durationSuccess );
}
}

protected void failure()
{
if( null != m_fileFail )
{
play( m_fileFail, m_loopsFail, m_durationFail );
}
}

/**
* Plays the file for duration milliseconds or loops.
*/


+ 55
- 81
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java View File

@@ -19,10 +19,9 @@ import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildListener;
import org.apache.tools.ant.Project;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.LogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.apache.myrmidon.listeners.AbstractProjectListener;

/**
* This class is designed to be used by any AntTask that requires audio output.
@@ -35,8 +34,8 @@ import org.apache.avalon.framework.logger.AbstractLogEnabled;
* @version $Revision$, $Date$
*/
public class AntSoundPlayer
extends AbstractLogEnabled
implements LineListener, BuildListener
extends AbstractProjectListener
implements LineListener, LogEnabled
{
private File m_fileSuccess;
private int m_loopsSuccess;
@@ -46,110 +45,68 @@ public class AntSoundPlayer
private int m_loopsFail;
private Long m_durationFail;

public AntSoundPlayer()
{
}

/**
* @param fileFail The feature to be added to the BuildFailedSound attribute
* @param loopsFail The feature to be added to the BuildFailedSound
* attribute
* @param durationFail The feature to be added to the BuildFailedSound
* attribute
*/
public void addBuildFailedSound( File fileFail, int loopsFail, Long durationFail )
{
m_fileFail = fileFail;
m_loopsFail = loopsFail;
m_durationFail = durationFail;
}

/**
* @param loops the number of times the file should be played when the build
* is successful
* @param duration the number of milliseconds the file should be played when
* the build is successful
* @param file The feature to be added to the BuildSuccessfulSound attribute
*/
public void addBuildSuccessfulSound( File file, int loops, Long duration )
{
m_fileSuccess = file;
m_loopsSuccess = loops;
m_durationSuccess = duration;
}
private Logger m_logger;

/**
* Fired after the last target has finished. This event will still be thrown
* if an error occured during the build.
* Provide component with a logger.
*
* @see BuildEvent#getException()
* @param logger the logger
*/
public void buildFinished( BuildEvent event )
public void enableLogging( final Logger logger )
{
if( event.getException() == null && m_fileSuccess != null )
{
// build successfull!
play( m_fileSuccess, m_loopsSuccess, m_durationSuccess );
}
else if( event.getException() != null && m_fileFail != null )
{
play( m_fileFail, m_loopsFail, m_durationFail );
}
m_logger = logger;
}

/**
* Fired before any targets are started.
*/
public void buildStarted( BuildEvent event )
protected final Logger getLogger()
{
return m_logger;
}

/**
* Fired whenever a message is logged.
*
* @see BuildEvent#getMessage()
* @see BuildEvent#getPriority()
* Notify listener of projectFinished event.
*/
public void messageLogged( BuildEvent event )
public void projectFinished()
{
success();
}

/**
* Fired when a target has finished. This event will still be thrown if an
* error occured during the build.
* Notify listener of log message event.
*
* @see BuildEvent#getException()
* @param message the message
* @param throwable the throwable
*/
public void targetFinished( BuildEvent event )
public void log( final String message, final Throwable throwable )
{
failure();
}

/**
* Fired when a target is started.
*
* @see BuildEvent#getTarget()
*/
public void targetStarted( BuildEvent event )
{
}

/**
* Fired when a task has finished. This event will still be throw if an
* error occured during the build.
*
* @see BuildEvent#getException()
* @param fileFail The feature to be added to the BuildFailedSound attribute
* @param loopsFail The feature to be added to the BuildFailedSound
* attribute
* @param durationFail The feature to be added to the BuildFailedSound
* attribute
*/
public void taskFinished( BuildEvent event )
public void addBuildFailedSound( File fileFail, int loopsFail, Long durationFail )
{
m_fileFail = fileFail;
m_loopsFail = loopsFail;
m_durationFail = durationFail;
}

/**
* Fired when a task is started.
*
* @see BuildEvent#getTask()
* @param loops the number of times the file should be played when the build
* is successful
* @param duration the number of milliseconds the file should be played when
* the build is successful
* @param file The feature to be added to the BuildSuccessfulSound attribute
*/
public void taskStarted( BuildEvent event )
public void addBuildSuccessfulSound( File file, int loops, Long duration )
{
m_fileSuccess = file;
m_loopsSuccess = loops;
m_durationSuccess = duration;
}

/**
@@ -174,6 +131,23 @@ public class AntSoundPlayer
}
}

protected void success()
{
if( null != m_fileSuccess )
{
// build successfull!
play( m_fileSuccess, m_loopsSuccess, m_durationSuccess );
}
}

protected void failure()
{
if( null != m_fileFail )
{
play( m_fileFail, m_loopsFail, m_durationFail );
}
}

/**
* Plays the file for duration milliseconds or loops.
*/


Loading…
Cancel
Save