/*
* @(#)QualityAdapter.java 1.5 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package com.sun.media.controls;
import javax.media.control.QualityControl;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import com.sun.media.ui.SliderComp;
public class QualityAdapter implements QualityControl, ActionListener {
protected float preferredValue;
protected float minValue;
protected float maxValue;
protected float value;
protected boolean settable;
protected boolean isTSsupported;
protected SliderComp sliderComp = null;
private float scale = 100f;
public QualityAdapter(float preferred, float min, float max,
boolean settable) {
this(preferred,min,max,false,settable);
}
public QualityAdapter(float preferred, float min, float max, boolean isTSsupported,
boolean settable) {
preferredValue = preferred;
minValue = min;
maxValue = max;
value = preferred;
this.settable = settable;
this.isTSsupported = isTSsupported;
}
public float getQuality() {
return value;
}
public float setQuality(float newValue) {
if (newValue < minValue)
newValue = minValue;
else if (newValue > maxValue)
newValue = maxValue;
// if (newValue != value) {
value = newValue;
if (sliderComp != null) {
sliderComp.setValue(value * scale);
}
// }
if (settable)
return value;
else
return -1;
}
public float getPreferredQuality() {
return preferredValue;
}
public boolean isTemporalSpatialTradeoffSupported() {
return isTSsupported;
}
protected String getName() {
return "Quality";
}
public Component getControlComponent() {
if (sliderComp == null) {
sliderComp = new SliderComp(getName(),
minValue * scale,
maxValue * scale,
value * scale);
sliderComp.setActionListener(this);
}
return sliderComp;
}
public void actionPerformed(ActionEvent ae) {
float newValue = sliderComp.getFloatValue() / scale;
setQuality(newValue);
}
}
|