Browse Source

Moved BuildAlert from inner class to top-level class.

Made AntSoundPlayer a ProjectListener rather than a BuildListener


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270471 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
f30a0fa451
2 changed files with 94 additions and 232 deletions
  1. +47
    -116
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java
  2. +47
    -116
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java

+ 47
- 116
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java View File

@@ -26,161 +26,92 @@ import org.apache.tools.ant.Task;
* @author Nick Pellow
* @version $Revision$, $Date$
*/
public class SoundTask extends Task
public class SoundTask
extends Task
{

private BuildAlert success = null;
private BuildAlert fail = null;

public SoundTask()
{
}
private BuildAlert m_success;
private BuildAlert m_fail;

public BuildAlert createFail()
{
fail = new BuildAlert();
return fail;
m_fail = new BuildAlert();
return m_fail;
}

public BuildAlert createSuccess()
{
success = new BuildAlert();
return success;
m_success = new BuildAlert();
return m_success;
}

public void execute()
{

AntSoundPlayer soundPlayer = new AntSoundPlayer();

if( success == null )
final AntSoundPlayer soundPlayer = new AntSoundPlayer();
if( null == m_success )
{
getLogger().warn( "No nested success element found." );
}
else
{
soundPlayer.addBuildSuccessfulSound( success.getSource(),
success.getLoops(), success.getDuration() );
soundPlayer.addBuildSuccessfulSound( getRandomSource( m_success ),
m_success.getLoops(), m_success.getDuration() );
}

if( fail == null )
if( null == m_fail )
{
getLogger().warn( "No nested failure element found." );
}
else
{
soundPlayer.addBuildFailedSound( fail.getSource(),
fail.getLoops(), fail.getDuration() );
soundPlayer.addBuildFailedSound( getRandomSource( m_fail ),
m_fail.getLoops(), m_fail.getDuration() );
}

getProject().addBuildListener( soundPlayer );

getProject().addProjectListener( soundPlayer );
}

/**
* A class to be extended by any BuildAlert's that require the output of
* sound.
* Gets the location of the file to get the audio.
*
* @return The Source value
*/
public class BuildAlert
private File getRandomSource( final BuildAlert alert )
{
private File source = null;
private int loops = 0;
private Long duration = null;

/**
* Sets the duration in milliseconds the file should be played.
*
* @param duration The new Duration value
*/
public void setDuration( Long duration )
final File source = alert.getSource();
// Check if source is a directory
if( source.exists() )
{
this.duration = duration;
}

/**
* Sets the number of times the source file should be played.
*
* @param loops the number of loops to play the source file
*/
public void setLoops( int loops )
{
this.loops = loops;
}

/**
* Sets the location of the file to get the audio.
*
* @param source the name of a sound-file directory or of the audio file
*/
public void setSource( File source )
{
this.source = source;
}

/**
* Gets the duration in milliseconds the file should be played.
*
* @return The Duration value
*/
public Long getDuration()
{
return this.duration;
}

/**
* Sets the number of times the source file should be played.
*
* @return the number of loops to play the source file
*/
public int getLoops()
{
return this.loops;
}

/**
* Gets the location of the file to get the audio.
*
* @return The Source value
*/
public File getSource()
{
File nofile = null;
// Check if source is a directory
if( source.exists() )
if( source.isDirectory() )
{
if( source.isDirectory() )
// get the list of files in the dir
final String[] entries = source.list();
ArrayList files = new ArrayList();
for( int i = 0; i < entries.length; i++ )
{
// get the list of files in the dir
String[] entries = source.list();
ArrayList files = new ArrayList();
for( int i = 0; i < entries.length; i++ )
{
File f = new File( source, entries[ i ] );
if( f.isFile() )
{
files.add( f );
}
}
if( files.size() < 1 )
File f = new File( source, entries[ i ] );
if( f.isFile() )
{
throw new TaskException( "No files found in directory " + source );
files.add( f );
}
int numfiles = files.size();
// get a random number between 0 and the number of files
Random rn = new Random();
int x = rn.nextInt( numfiles );
// set the source to the file at that location
this.source = (File)files.get( x );
}
if( files.size() < 1 )
{
throw new TaskException( "No files found in directory " + source );
}
final int numfiles = files.size();
// get a random number between 0 and the number of files
final Random random = new Random();
final int x = random.nextInt( numfiles );
// set the source to the file at that location
source = (File)files.get( x );
}
else
{
getLogger().warn( source + ": invalid path." );
this.source = nofile;
}
return this.source;
}
else
{
getLogger().warn( source + ": invalid path." );
source = null;
}
return source;
}
}


+ 47
- 116
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java View File

@@ -26,161 +26,92 @@ import org.apache.tools.ant.Task;
* @author Nick Pellow
* @version $Revision$, $Date$
*/
public class SoundTask extends Task
public class SoundTask
extends Task
{

private BuildAlert success = null;
private BuildAlert fail = null;

public SoundTask()
{
}
private BuildAlert m_success;
private BuildAlert m_fail;

public BuildAlert createFail()
{
fail = new BuildAlert();
return fail;
m_fail = new BuildAlert();
return m_fail;
}

public BuildAlert createSuccess()
{
success = new BuildAlert();
return success;
m_success = new BuildAlert();
return m_success;
}

public void execute()
{

AntSoundPlayer soundPlayer = new AntSoundPlayer();

if( success == null )
final AntSoundPlayer soundPlayer = new AntSoundPlayer();
if( null == m_success )
{
getLogger().warn( "No nested success element found." );
}
else
{
soundPlayer.addBuildSuccessfulSound( success.getSource(),
success.getLoops(), success.getDuration() );
soundPlayer.addBuildSuccessfulSound( getRandomSource( m_success ),
m_success.getLoops(), m_success.getDuration() );
}

if( fail == null )
if( null == m_fail )
{
getLogger().warn( "No nested failure element found." );
}
else
{
soundPlayer.addBuildFailedSound( fail.getSource(),
fail.getLoops(), fail.getDuration() );
soundPlayer.addBuildFailedSound( getRandomSource( m_fail ),
m_fail.getLoops(), m_fail.getDuration() );
}

getProject().addBuildListener( soundPlayer );

getProject().addProjectListener( soundPlayer );
}

/**
* A class to be extended by any BuildAlert's that require the output of
* sound.
* Gets the location of the file to get the audio.
*
* @return The Source value
*/
public class BuildAlert
private File getRandomSource( final BuildAlert alert )
{
private File source = null;
private int loops = 0;
private Long duration = null;

/**
* Sets the duration in milliseconds the file should be played.
*
* @param duration The new Duration value
*/
public void setDuration( Long duration )
final File source = alert.getSource();
// Check if source is a directory
if( source.exists() )
{
this.duration = duration;
}

/**
* Sets the number of times the source file should be played.
*
* @param loops the number of loops to play the source file
*/
public void setLoops( int loops )
{
this.loops = loops;
}

/**
* Sets the location of the file to get the audio.
*
* @param source the name of a sound-file directory or of the audio file
*/
public void setSource( File source )
{
this.source = source;
}

/**
* Gets the duration in milliseconds the file should be played.
*
* @return The Duration value
*/
public Long getDuration()
{
return this.duration;
}

/**
* Sets the number of times the source file should be played.
*
* @return the number of loops to play the source file
*/
public int getLoops()
{
return this.loops;
}

/**
* Gets the location of the file to get the audio.
*
* @return The Source value
*/
public File getSource()
{
File nofile = null;
// Check if source is a directory
if( source.exists() )
if( source.isDirectory() )
{
if( source.isDirectory() )
// get the list of files in the dir
final String[] entries = source.list();
ArrayList files = new ArrayList();
for( int i = 0; i < entries.length; i++ )
{
// get the list of files in the dir
String[] entries = source.list();
ArrayList files = new ArrayList();
for( int i = 0; i < entries.length; i++ )
{
File f = new File( source, entries[ i ] );
if( f.isFile() )
{
files.add( f );
}
}
if( files.size() < 1 )
File f = new File( source, entries[ i ] );
if( f.isFile() )
{
throw new TaskException( "No files found in directory " + source );
files.add( f );
}
int numfiles = files.size();
// get a random number between 0 and the number of files
Random rn = new Random();
int x = rn.nextInt( numfiles );
// set the source to the file at that location
this.source = (File)files.get( x );
}
if( files.size() < 1 )
{
throw new TaskException( "No files found in directory " + source );
}
final int numfiles = files.size();
// get a random number between 0 and the number of files
final Random random = new Random();
final int x = random.nextInt( numfiles );
// set the source to the file at that location
source = (File)files.get( x );
}
else
{
getLogger().warn( source + ": invalid path." );
this.source = nofile;
}
return this.source;
}
else
{
getLogger().warn( source + ": invalid path." );
source = null;
}
return source;
}
}


Loading…
Cancel
Save