package uk.co.mmscomputing.device.sane.option;
import uk.co.mmscomputing.device.sane.SaneIOException;
public class FixedRange extends FixedDesc{
int min,max,quant;
public FixedRange(
int handle,
int no,
String name,
String title,
String desc,
int type,
int unit,
int size,
int cap,
int min,
int max,
int quant,
int[] values
){
super(handle,no,name,title,desc,type,unit,size,cap,values);
this.min=min;this.max=max;this.quant=quant;
}
public int setWordValue(int i, int val)throws SaneIOException{
if(quant!=0){
val=Math.abs(val/quant)*quant;
}
if(val<min){
val=min;
}else if(max<val){
val=max;
}
return super.setWordValue(i,val);
}
public double getMinValue(){ return unfix(min);}
public double getMaxValue(){ return unfix(max);}
public double getMinQuant(){ return unfix(quant);}
public String toString(){
String s=super.toString();
s+="\n min "+Integer.toHexString(min)+" "+getMinValue();
s+="\n max "+Integer.toHexString(max)+" "+getMaxValue();
s+="\n quant "+Integer.toHexString(quant)+" "+getMinQuant();
return s;
}
public DescriptorPanel getGUI(){
gui=new FixedRangePanel(this);
return gui;
}
}