diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java deleted file mode 100644 index dfb6e69a..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/sound/SoundTask.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.apache.tools.ant.taskdefs.optional.sound; - -import java.io.File; -import java.util.Random; -import java.util.Vector; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Task; - -/** - * Plays a sound file at the end of the build, according to whether the build failed or succeeded. - * - * There are three attributes to be set: - * - * <code>source</code>: the location of the audio file to be played - * <code>duration</code>: play the sound file continuously until "duration" milliseconds has expired - * <code>loops</code>: the number of times the sound file should be played until stopped - * - * I have only tested this with .WAV and .AIFF sound file formats. Both seem - * to work fine. - * - * plans for the future: - * - use the midi api to define sounds (or drum beat etc) in xml and have - * Ant play them back - * - */ - -public class SoundTask extends Task { - - private BuildAlert success = null; - private BuildAlert fail = null; - - /** - * add a sound when the build succeeds - * @return a BuildAlert to be configured - */ - public BuildAlert createSuccess() { - success = new BuildAlert(); - return success; - } - - /** - * add a sound when the build fails - * @return a BuildAlert to be configured - */ - public BuildAlert createFail() { - fail = new BuildAlert(); - return fail; - } - - /** Constructor for SoundTask. */ - public SoundTask() { - } - - /** - * Initialize the task. - */ - public void init() { - } - - /** - * Execute the task. - */ - public void execute() { - - AntSoundPlayer soundPlayer = new AntSoundPlayer(); - - if (success == null) { - log("No nested success element found.", Project.MSG_WARN); - } else { - soundPlayer.addBuildSuccessfulSound(success.getSource(), - success.getLoops(), success.getDuration()); - } - - if (fail == null) { - log("No nested failure element found.", Project.MSG_WARN); - } else { - soundPlayer.addBuildFailedSound(fail.getSource(), - fail.getLoops(), fail.getDuration()); - } - - getProject().addBuildListener(soundPlayer); - - } - - /** - * A class to be extended by any BuildAlert's that require the output - * of sound. - */ - public class BuildAlert { - private File source = null; - private int loops = 0; - private Long duration = null; - - /** - * Sets the duration in milliseconds the file should be played; optional. - * @param duration the duration in milliseconds - */ - public void setDuration(Long duration) { - this.duration = duration; - } - - /** - * Sets the location of the file to get the audio; required. - * - * @param source the name of a sound-file directory or of the audio file - */ - public void setSource(File source) { - this.source = source; - } - - /** - * Sets the number of times the source file should be played; optional. - * - * @param loops the number of loops to play the source file - */ - public void setLoops(int loops) { - this.loops = loops; - } - - /** - * Gets the location of the file to get the audio. - * @return the file location - */ - public File getSource() { - File nofile = null; - // Check if source is a directory - if (source.exists()) { - if (source.isDirectory()) { - // get the list of files in the dir - String[] entries = source.list(); - Vector files = new Vector(); - for (int i = 0; i < entries.length; i++) { - File f = new File(source, entries[i]); - if (f.isFile()) { - files.addElement(f); - } - } - if (files.size() < 1) { - throw new BuildException("No files found in directory " + source); - } - 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.elementAt(x); - } - } else { - log(source + ": invalid path.", Project.MSG_WARN); - this.source = nofile; - } - return this.source; - } - - /** - * 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 duration in milliseconds the file should be played. - * @return the duration in milliseconds - */ - public Long getDuration() { - return this.duration; - } - } -} - |