/*
* @(#)CachingControl.java 1.5 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package javax.media;
import java.awt.Component;
/**
* <code>CachingControl</code> is an interface supported by <code>Players</code>
* that are capable of reporting download progress.
* Typically, this control is accessed through
* the <code>Controller.getControls</code> method.
*
* A <code>Controller</code> that supports this control will post
* <code>CachingControlEvent</code>s often enough to support the implementation
* of custom progress GUIs.
*
* @see Controller
* @see ControllerListener
* @see CachingControlEvent
* @see Player
* @version 1.2, 98/10/30.
*/
public interface CachingControl extends Control {
/**
* Use to indicate that the <CODE>CachingControl</CODE> doesn't
* know how long the content is.<p>
* The definition is: LENGTH_UNKNOWN == Long.MAX_VALUE
*/
public final static long LENGTH_UNKNOWN = Long.MAX_VALUE;
/**
* Check whether or not media is being downloaded.
*
* @return Returns <CODE>true</CODE> if media is being downloaded;
* otherwise returns <CODE>false</CODE>.
*/
public boolean isDownloading();
/**
* Get the total number of bytes in the media being downloaded. Returns
* <code>LENGTH_UNKNOWN</code> if this information is not available.
*
* @return The media length in bytes, or <code>LENGTH_UNKNOWN</code>.
*/
public long getContentLength();
/**
* Get the total number of bytes of media data that have been downloaded so far.
*
* @return The number of bytes downloaded.
*/
public long getContentProgress();
/**
* Get a <CODE>Component</CODE> for displaying the download progress.
*
* @return Progress bar GUI.
*/
public Component getProgressBarComponent();
/**
* Get a <CODE>Component</CODE> that provides additional download control.
*
* Returns <CODE>null</CODE> if only a progress bar is provided.
*
* @return Download control GUI.
*/
public Component getControlComponent();
}
|