Package com.scooterframework.admin

Source Code of com.scooterframework.admin.SoundPlayer

/*
*   This software is distributed under the terms of the FSF
*   Gnu Lesser General Public License (see lgpl.txt).
*
*   This program is distributed WITHOUT ANY WARRANTY. See the
*   GNU General Public License for more details.
*/
package com.scooterframework.admin;

import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.util.Random;

import com.scooterframework.autoloader.CompileEvent;

/**
* SoundPlayer class plays audio clips.
*
* @author (Fei) John Chen
*
*/
public class SoundPlayer implements Listener {
  private static SoundPlayer me;
  private static File[] successClips;
  private static File[] failureClips;
 
  static {
    String scooterHome = System.getProperty("scooter.home");
    String soundDir = scooterHome + File.separatorChar + "source" +
        File.separatorChar + "sound";
   
    File successDir = new File(soundDir + File.separatorChar + "compileSuccess");
    successClips = successDir.listFiles();

    File failureDir = new File(soundDir + File.separatorChar + "compileFailure");
    failureClips = failureDir.listFiles();
  }
 
  private SoundPlayer() {
  }
 
  /**
   * Returns the singleton instance of the <tt>EventsManager</tt>.
   *
   * @return the singleton instance of the <tt>EventsManager</tt>.
   */
  public static SoundPlayer getInstance() {
    if (me == null) me = new SoundPlayer();
    return me;
  }
 
  public void handleEvent(Event event) {
    if (event instanceof CompileEvent) {
      CompileEvent ce = (CompileEvent)event;
      if (ce.compileSuccess()) {
        playSoundRandom(successClips);
      }
      else {
        playSoundRandom(failureClips);
      }
    }
  }
 
  private void playSoundRandom(File[] soundClips) {
    if (soundClips == null || soundClips.length == 0) return;
    int index = (new Random()).nextInt(soundClips.length);
    audioPlay(soundClips[index]);
  }
 
  private static void audioPlay(File audioFile) {
    try {
      AudioClip clip = Applet.newAudioClip(audioFile.toURI().toURL());
      clip.play();
      Thread.sleep(2000);
    } catch (Exception e) {
    }
  }
}
TOP

Related Classes of com.scooterframework.admin.SoundPlayer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.