package uk.co.mmscomputing.device.capi.man.eicon;
import javax.swing.tree.*;
import uk.co.mmscomputing.device.capi.*;
public class EiconProfile extends CapiProfile{
private int specOptions;
static final public String[] specOptionStrings={
"","","","","",
"Extended DTMF tone detection and generation support", // bit 5
"Extended Fax paper formats and resolution support", // bit 6
"Extended modem configuration support", // bit 7
"","","","","","","","","","","","","","","","","","","","","","","",""
};
public EiconProfile(byte[] profile){
super(profile);
specOptions = (profile[44]&0x00FF)|((profile[45]&0x00FF)<<8)|((profile[46]&0x00FF)<<16)|((profile[47]&0x00FF)<<24);
}
// public boolean isSupportingBroadband(){return checkBit(getOptions(),8);} // [eicon/sdk/Doc/CxEcho.pdf]
// public boolean isSupportingEchoCancellation(){return checkBit(getOptions(),9);} // eicon/sdk/Doc/CxEcho.pdf
public boolean isSupportingExtendedDTMF(){return checkBit(specOptions,5);} // eicon/sdk/Doc/CxDtmf.pdf
public boolean isSupportingExtendedFaxFormat(){return checkBit(specOptions,6);} // eicon/sdk/Doc/CxFax.pdf
public boolean isSupportingExtendedModemConfiguration(){return checkBit(specOptions,7);} // eicon/sdk/Doc/CxModem.pdf
public String toString(){
String s=super.toString();
s+="\nEicon Spec Options = 0"+Integer.toBinaryString(specOptions)+"b\n";
for(int i=0;i<specOptionStrings.length;i++){
if(checkBit(specOptions,i)){
s+="Bit["+i+"] - "+specOptionStrings[i]+"\n";
}
}
return s;
}
public DefaultMutableTreeNode toTree(){
DefaultMutableTreeNode category;
DefaultMutableTreeNode top = super.toTree();
category = new DefaultMutableTreeNode("Eicon Specific Options : 0"+Integer.toBinaryString(specOptions)+"b");
top.add(category);
for(int i=0;i<specOptionStrings.length;i++){
if(checkBit(specOptions,i)){
category.add(new DefaultMutableTreeNode("Bit["+i+"] - "+specOptionStrings[i]));
}
}
return top;
}
}