
package polarDust.calculator;

/*
 * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for NON-COMMERCIAL purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies. Please refer to the file "copyright.html"
 * for further important copyright and licensing information.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
 * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
 * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
 * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 */

import java.applet.*;
import java.net.URL;

 /**
 *
 * Downloads a sound clip into memory from a specified URL.
 *
 * <br><br><a href=../source/polarDust/calculator/SoundLoader.java>
 * The source code.</a>
 *
 */
class SoundLoader extends Thread {
	Applet applet;
	SoundList soundList;
	URL baseURL;
	String relativeURL;

	/**
	* Loads a sound clip into memory starting a loading thread 
	* @param applet	the calling applet; only applets can download.
	* @param soundList the location where to out the clip.
	* @param baseURL the source URL.
	* @param relativeURL usually the file name.
	* @see SoundLoader.getAudioClip
	*/
	public SoundLoader(Applet applet, SoundList soundList,
					   URL baseURL, String relativeURL) {
		this.applet = applet;
		this.soundList = soundList;
		this.baseURL = baseURL;
		this.relativeURL = relativeURL;
		setPriority(MIN_PRIORITY);
		start();
	}

	/**
	* The downloading thread.
	*/
	public void run() {
		AudioClip audioClip = applet.getAudioClip(baseURL, relativeURL);
		soundList.putClip(audioClip, relativeURL);
	}
}


