package pl.edu.fuw.MP.Core;
import java.io.*;
import java.util.Enumeration;
import java.util.Vector;
import org.signalml.domain.book.StandardBookAtom;
import org.signalml.domain.book.StandardBookSegment;
public class BookHeader implements StandardBookSegment {
public short file_offset;
public short book_size;
public int signal_size;
public float points_per_micro_V;
public float FREQUENCY;
public float signal_energy;
public float book_energy;
private Vector<BookAtom> atoms=new Vector<BookAtom>();
public void addAtom(BookAtom atom) {
atoms.addElement(atom);
}
public final void Read(RandomAccessFile file) throws IOException {
file_offset = file.readShort();
book_size = file.readShort();
signal_size = file.readInt();
points_per_micro_V = (float) Math.abs(file.readFloat());
FREQUENCY = (float) Math.abs(file.readFloat());
signal_energy = file.readFloat();
book_energy = file.readFloat();
}
public String getString() {
return new String("\nFile offset : " + file_offset
+ "\nBook size : " + book_size + "\nSignal size : "
+ signal_size + "\nConv factor : " + points_per_micro_V
+ "\nFrequency : " + FREQUENCY + "\nSignal energy : "
+ signal_energy + "\nBook energy : " + book_energy);
}
public StandardBookAtom getAtomAt(int index) {
return atoms.elementAt(index);
}
public int getAtomCount() {
return atoms.size();
}
public int getChannelNumber() {
return -1;
}
public float getDecompositionEnergy() {
return -1.0F;
}
public Object getProperty(String name) throws IllegalArgumentException {
throw new IllegalArgumentException("No properties");
}
public Enumeration<String> getPropertyNames() {
Vector<String> names = new Vector<String>();
return names.elements();
}
public int getSegmentLength() {
return signal_size;
}
public int getSegmentNumber() {
return file_offset;
}
public float getSegmentTime() {
return (file_offset * signal_size) / FREQUENCY;
}
public float getSignalEnergy() {
return signal_energy;
}
public float[] getSignalSamples() {
return null;
}
public boolean hasSignal() {
return false;
}
public int indexOfAtom(StandardBookAtom atom) {
return atoms.indexOf(atom);
}
public void setSignalSamples(float[] signalSamples) {
;
}
public void reset() {
atoms.clear();
}
public double getSampliegFreq() {
return FREQUENCY;
}
@Override
public float getSamplingFrequency() {
// TODO Auto-generated method stub
return 0;
}
@Override
public float getSegmentTimeLength() {
// TODO Auto-generated method stub
return 0;
}
}