/*
* @(#)ControllerAdapter.java 1.6 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package javax.media;
import javax.media.format.FormatChangeEvent;
/**
* The event adapter which recieves <code>ControllerEvents</code> and
* dispatches them to an appropriate stub-method. Classes that extend
* this adapter can easily replace only the message handlers they are
* interested in.
*
* For example, the following code extends a ControllerAdapter with a JDK
* 1.1 anonymous inner-class to make a self-contained player that
* resets itself back to the beginning and deallocates itself when the
* player reaches the end of the media:
*
* <code>
* player.addControllerListener(new ControllerAdapter() {
* public void endOfMedia(EndOfMediaEvent e) {
* Controller controller = e.getSource();
* controller.stop();
* controller.setMediaTime(0);
* controller.deallocate();
* }
* });
* </code>
*
* @see ControllerListener
* @see Controller#addControllerListener(ControllerListener)
*
* @version 1.3, 98/11/06
*
*/
public class ControllerAdapter
implements ControllerListener, java.util.EventListener {
public void cachingControl(CachingControlEvent e) {}
public void controllerError(ControllerErrorEvent e) {}
public void dataLostError(DataLostErrorEvent e) {}
public void dataStarved(DataStarvedEvent e) {}
public void internalError(InternalErrorEvent e) {}
public void resourceUnavailable(ResourceUnavailableEvent e) {}
public void durationUpdate(DurationUpdateEvent e) {}
public void mediaTimeSet(MediaTimeSetEvent e) {}
public void rateChange(RateChangeEvent e) {}
public void stopTimeChange(StopTimeChangeEvent e) {}
public void transition(TransitionEvent e) {}
public void prefetchComplete(PrefetchCompleteEvent e) {}
public void realizeComplete(RealizeCompleteEvent e) {}
public void start(StartEvent e) {}
public void stop(StopEvent e) {}
public void deallocate(DeallocateEvent e) {}
public void endOfMedia(EndOfMediaEvent e) {}
public void restarting(RestartingEvent e) {}
public void stopAtTime(StopAtTimeEvent e) {}
public void stopByRequest(StopByRequestEvent e) {}
public void audioDeviceUnavailable(AudioDeviceUnavailableEvent e) {}
public void configureComplete(ConfigureCompleteEvent e) {}
public void controllerClosed(ControllerClosedEvent e) {}
public void sizeChange(SizeChangeEvent e) {}
public void connectionError(ConnectionErrorEvent e) {}
public void formatChange(FormatChangeEvent e){}
public void replaceURL(Object e) {}
public void showDocument(Object e) {}
/**
* Main dispatching function. Subclasses should not need to
* override this method, but instead subclass only the individual
* event methods listed above that they need
*/
public void controllerUpdate(ControllerEvent e) {
if (e instanceof FormatChangeEvent){
formatChange((FormatChangeEvent)e);
} else if (e instanceof CachingControlEvent) {
cachingControl((CachingControlEvent)e);
} else if (e instanceof ControllerErrorEvent) {
controllerError((ControllerErrorEvent)e);
if (e instanceof DataLostErrorEvent) {
dataLostError((DataLostErrorEvent)e);
} else if (e instanceof InternalErrorEvent) {
internalError((InternalErrorEvent)e);
} else if (e instanceof ResourceUnavailableEvent) {
resourceUnavailable((ResourceUnavailableEvent)e);
} else if (e instanceof ConnectionErrorEvent) {
connectionError((ConnectionErrorEvent)e);
}
} else if (e instanceof DurationUpdateEvent) {
durationUpdate((DurationUpdateEvent)e);
} else if (e instanceof MediaTimeSetEvent) {
mediaTimeSet((MediaTimeSetEvent)e);
} else if (e instanceof RateChangeEvent) {
rateChange((RateChangeEvent)e);
} else if (e instanceof StopTimeChangeEvent) {
stopTimeChange((StopTimeChangeEvent)e);
} else if (e instanceof AudioDeviceUnavailableEvent) {
audioDeviceUnavailable((AudioDeviceUnavailableEvent)e);
} else if (e instanceof ControllerClosedEvent) {
controllerClosed((ControllerClosedEvent)e);
} else if (e instanceof SizeChangeEvent) {
sizeChange((SizeChangeEvent)e);
} else if (e instanceof TransitionEvent) {
transition((TransitionEvent)e);
if (e instanceof ConfigureCompleteEvent) {
configureComplete((ConfigureCompleteEvent)e);
} else if (e instanceof PrefetchCompleteEvent) {
prefetchComplete((PrefetchCompleteEvent)e);
} else if (e instanceof RealizeCompleteEvent) {
realizeComplete((RealizeCompleteEvent)e);
} else if (e instanceof StartEvent) {
start((StartEvent)e);
} else if (e instanceof StopEvent) {
stop((StopEvent)e);
if (e instanceof DeallocateEvent) {
deallocate((DeallocateEvent)e);
} else if (e instanceof EndOfMediaEvent) {
endOfMedia((EndOfMediaEvent)e);
} else if (e instanceof RestartingEvent) {
restarting((RestartingEvent)e);
} else if (e instanceof StopAtTimeEvent) {
stopAtTime((StopAtTimeEvent)e);
} else if (e instanceof StopByRequestEvent) {
stopByRequest((StopByRequestEvent)e);
} else if (e instanceof DataStarvedEvent) {
dataStarved((DataStarvedEvent)e);
}
}
} else if (e.getClass().getName().equals("com.ibm.media.ReplaceURLEvent")) {
// Specialized event for HotMedia playback.
replaceURL(e);
} else if (e.getClass().getName().equals("com.ibm.media.ShowDocumentEvent")) {
// Specialized event for HotMedia playback.
showDocument(e);
}
}
}
|