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 * @author Nick Pellow
* @version $Revision$, $Date$ * @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() public BuildAlert createFail()
{ {
fail = new BuildAlert();
return fail;
m_fail = new BuildAlert();
return m_fail;
} }


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


public void execute() 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." ); getLogger().warn( "No nested success element found." );
} }
else 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." ); getLogger().warn( "No nested failure element found." );
} }
else 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 * @author Nick Pellow
* @version $Revision$, $Date$ * @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() public BuildAlert createFail()
{ {
fail = new BuildAlert();
return fail;
m_fail = new BuildAlert();
return m_fail;
} }


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


public void execute() 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." ); getLogger().warn( "No nested success element found." );
} }
else 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." ); getLogger().warn( "No nested failure element found." );
} }
else 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