package ciffreader;
import java.lang.*;
import java.io.*;
import java.util.Calendar;
import java.util.Date;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.text.DateFormat;
import java.util.TimeZone;
public class fileProcessor
{
short lshOrder = 0;
RandomAccessFile fh;
long llFlen;
int liHeaderlen;
byte[] lbCamtypeid = new byte[10]; /* "HEAPCCDR" */
byte[] lbBuff = new byte[2048];
int[] liTagset = new int[32];
int liFileOK = -1;
int liRecordID = 0x8fffffff;
String lsTStamp = "";
int liNPixHoriz = 0x8fffffff;
int liNPixVert = 0x8fffffff;
String lsCameraMake = "";
String lsCameraModel = "";
String lsImageFileName = "";
int liBodyID = 0x8fffffff;
String lsFirmwareVersion = "";
float lfFocalLength = (float)(-1.0e32);
float lfTvTarget = (float)(-1.0e32);
float lfAvTarget = (float)(-1.0e32);
float lfISO = (float)(-1.0e32);
float lfExpBias = (float)(-1.0e32);
int liWB = 0x8fffffff;
String lsWB = "";
float lfFlashBias = (float)(-1.0e32);
float lfSubjDistMin = (float)(-1.0e32);
float lfSubjDist = (float)(-1.0e32);
float lfSubjDistMax = (float)(-1.0e32);
float lfAvActual = (float)(-1.0e32);
float lfTvActual = (float)(-1.0e32);
int liReleaseMode = 0x8fffffff;
String lsReleaseMode = "";
int liFocusMode = 0x8fffffff;
String lsFocusMode = "";
int liMeterMode = 0x8fffffff;
String lsMeterMode = "";
int liExposureMode = 0x8fffffff;
String lsExposureMode = "";
int liColorSpace = 0x8fffffff;
String lsColorSpace = "";
int liFlashFired = 0x8fffffff;
int liFlashMode = 0x8fffffff;
String lsFlashMode = "";
float lfZoomMin = (float)(-1.0e32);
float lfZoomMax = (float)(-1.0e32);
String[] lsTagIDset = new String[256];
int[] liTagDataFormat = new int[256];
int[] liNumElements = new int[256];
String[] lsTagValueset = new String[256];
int liNumTags = 0;
int liMaxNumTags = 254;
/* public methods begin */
public fileProcessor(File srcfile) // constructor
{
liFileOK = jFileProcessor(srcfile);
}
public int processingStatus()
{
return liFileOK;
}
public int rawImgID()
{
return liRecordID;
}
public int nPixHoriz()
{
return liNPixHoriz;
}
public int nPixVert()
{
return liNPixVert;
}
public int cameraBodyID()
{
return liBodyID;
}
public int wBValue()
{
return liWB;
}
public int releaseModeValue()
{
return liReleaseMode;
}
public int focusModeValue()
{
return liFocusMode;
}
public int exposureMeterModeValue()
{
return liMeterMode;
}
public int exposureModeValue()
{
return liExposureMode;
}
public int colorSpaceValue()
{
return liColorSpace;
}
public int flashFired()
{
return liFlashFired;
}
public int flashModeValue()
{
return liFlashMode;
}
public String timeStamp()
{
return lsTStamp;
}
public String cameraMake()
{
return lsCameraMake;
}
public String cameraModel()
{
return lsCameraModel;
}
public String rawImageFileName()
{
return lsImageFileName;
}
public String firmwareVersion()
{
return lsFirmwareVersion;
}
public String whiteBalance()
{
return lsWB;
}
public String releaseMode()
{
return lsReleaseMode;
}
public String focusMode()
{
return lsFocusMode;
}
public String exposureMeterMode()
{
return lsMeterMode;
}
public String exposureMode()
{
return lsExposureMode;
}
public String colorSpace()
{
return lsColorSpace;
}
public String flashMode()
{
return lsFlashMode;
}
public float focalLength()
{
return lfFocalLength;
}
public float focalLengthMin()
{
return lfZoomMin;
}
public float focalLengthMax()
{
return lfZoomMax;
}
public float targetTv()
{
return lfTvTarget;
}
public float targetAv()
{
return lfAvTarget;
}
public float ISO()
{
return lfISO;
}
public float exposureBias()
{
return lfExpBias;
}
public float flashBias()
{
return lfFlashBias;
}
public float subjectDistance()
{
return lfSubjDist;
}
public float subjDistanceMin()
{