package uk.co.mmscomputing.device.sane.option;
import uk.co.mmscomputing.device.sane.SaneIOException;
public class WordDesc extends Descriptor{
protected int[] values=null;
public WordDesc(
int handle,
int no,
String name,
String title,
String desc,
int type,
int unit,
int size,
int cap,
int[] values
){
super(handle,no,name,title,desc,type,unit,size,cap);
this.values=values;
}
public int getWordValue(int i){
return values[i];
}
public int setWordValue(int i, int val)throws SaneIOException{
if(isWritable()){
values[i]=val;
int info=setWordArrayControlOption(values);
if((info&SANE_INFO_INEXACT)==SANE_INFO_INEXACT){
getWordArrayControlOption(values);
}
if((info&SANE_INFO_RELOAD_OPTIONS)==SANE_INFO_RELOAD_OPTIONS){
signalReloadOptions();
}
if((info&SANE_INFO_RELOAD_PARAMS)==SANE_INFO_RELOAD_PARAMS){
// read parameters only after scan started
}
}
return values[i];
}
public String toString(){
String s=super.toString();
for(int i=0;i<values.length;i++){
s+="\n values["+i+"]= "+values[i];
}
return s;
}
}