/*
* @(#)SilenceSuppressionAdapter.java 1.3 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package com.sun.media.controls;
import javax.media.*;
import java.awt.*;
import java.awt.event.*;
/**
* Implementation for SilenceSuppressionControl
*/
public class SilenceSuppressionAdapter implements javax.media.control.SilenceSuppressionControl {
protected Codec owner=null;
protected boolean silenceSuppression=false;
protected boolean isSetable;
Component component=null;
String CONTROL_STRING="Silence Suppression";
public SilenceSuppressionAdapter(Codec newOwner, boolean newSilenceSuppression, boolean newIsSetable) {
silenceSuppression= newSilenceSuppression;
owner = newOwner;
isSetable = newIsSetable;
}
/**
* Returns if silence suppression was enabled
* @return if silence suppression was enabled
*/
public boolean getSilenceSuppression(){
return silenceSuppression;
}
/**
* Sets the silence suppression mode.
* Decoders ignore this method.
* @param newSilenceSuppression the requested silence suppression
* mode
* @return the actual still image transmission mode that was set
*/
public boolean setSilenceSuppression(boolean newSilenceSuppression) {
return silenceSuppression;
}
/**
* Returns if silence suppression is supported
* @return if silence suppression is supported
*/
public boolean isSilenceSuppressionSupported() {
return silenceSuppression;
}
public Component getControlComponent() {
if (component ==null ) {
Panel componentPanel=new Panel();
componentPanel.setLayout(new BorderLayout() );
componentPanel.add("Center",new Label(CONTROL_STRING,Label.CENTER) );
Checkbox cb=new Checkbox(null,null,silenceSuppression);
cb.setEnabled(isSetable);
cb.addItemListener( (ItemListener) new SilenceSuppresionAdapterListener(cb) );
componentPanel.add("East",cb );
componentPanel.invalidate();
component=componentPanel;
}
return (Component)component;
}
class SilenceSuppresionAdapterListener implements java.awt.event.ItemListener {
Checkbox cb;
public SilenceSuppresionAdapterListener(Checkbox source) {
cb=source;
}
public void itemStateChanged(ItemEvent e) {
try {
boolean newSilenceSuppression = cb.getState() ;
//DEBUG System.out.println("newStillImage "+newStillImage);
setSilenceSuppression(silenceSuppression);
} catch (Exception exception) {
}
cb.setState(silenceSuppression);
}
}
}
|