<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>imgfile.c Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div class="header"> <div class="headertitle"> <div class="title">imgfile.c</div> </div> </div> <div class="contents"> <a href="imgfile_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/******************************************************************************</span> <a name="l00002"></a>00002 <span class="comment"></span> <a name="l00003"></a>00003 <span class="comment"> Copyright (c) 2003-2007 Turku PET Centre</span> <a name="l00004"></a>00004 <span class="comment"></span> <a name="l00005"></a>00005 <span class="comment"> Library: imgfile.c</span> <a name="l00006"></a>00006 <span class="comment"> Description: I/O routines for IMG data.</span> <a name="l00007"></a>00007 <span class="comment"> Currently supported file formats:</span> <a name="l00008"></a>00008 <span class="comment"> ECAT 6.3 images and sinograms</span> <a name="l00009"></a>00009 <span class="comment"> ECAT 7.x 2D and 3D images (volumes) and sinograms</span> <a name="l00010"></a>00010 <span class="comment"> Analyze 7.5 images</span> <a name="l00011"></a>00011 <span class="comment"></span> <a name="l00012"></a>00012 <span class="comment"> This library is free software; you can redistribute it and/or</span> <a name="l00013"></a>00013 <span class="comment"> modify it under the terms of the GNU Lesser General Public</span> <a name="l00014"></a>00014 <span class="comment"> License as published by the Free Software Foundation; either</span> <a name="l00015"></a>00015 <span class="comment"> version 2.1 of the License, or (at your option) any later version.</span> <a name="l00016"></a>00016 <span class="comment"></span> <a name="l00017"></a>00017 <span class="comment"> This library is distributed in the hope that it will be useful,</span> <a name="l00018"></a>00018 <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00019"></a>00019 <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span> <a name="l00020"></a>00020 <span class="comment"> See the GNU Lesser General Public License for more details:</span> <a name="l00021"></a>00021 <span class="comment"> http://www.gnu.org/copyleft/lesser.html</span> <a name="l00022"></a>00022 <span class="comment"></span> <a name="l00023"></a>00023 <span class="comment"> You should have received a copy of the GNU Lesser General Public License</span> <a name="l00024"></a>00024 <span class="comment"> along with this library/program; if not, write to the Free Software</span> <a name="l00025"></a>00025 <span class="comment"> Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA </span> <a name="l00026"></a>00026 <span class="comment"></span> <a name="l00027"></a>00027 <span class="comment"> Turku PET Centre, Turku, Finland, http://www.turkupetcentre.fi/</span> <a name="l00028"></a>00028 <span class="comment"></span> <a name="l00029"></a>00029 <span class="comment"> Modification history:</span> <a name="l00030"></a>00030 <span class="comment"> 2003-07-27 Vesa Oikonen</span> <a name="l00031"></a>00031 <span class="comment"> First created.</span> <a name="l00032"></a>00032 <span class="comment"> 2003-08-11 VO</span> <a name="l00033"></a>00033 <span class="comment"> Corrected a bug in test print in imgRead().</span> <a name="l00034"></a>00034 <span class="comment"> 2003-09-08 VO</span> <a name="l00035"></a>00035 <span class="comment"> Can now read&write 3D sinograms.</span> <a name="l00036"></a>00036 <span class="comment"> sampleDistance is now read/written from/to bin_size in ECAT7 mainheader.</span> <a name="l00037"></a>00037 <span class="comment"> imgWriteEcat7() renamed to imgWrite2DEcat7().</span> <a name="l00038"></a>00038 <span class="comment"> "New" function imgWriteEcat7() makes 3D format instead of 2D as before.</span> <a name="l00039"></a>00039 <span class="comment"> Applies the new IMG field _fileFormat in read/write.</span> <a name="l00040"></a>00040 <span class="comment"> 2003-10-05 VO</span> <a name="l00041"></a>00041 <span class="comment"> Added support for Analyze 7.5 image format.</span> <a name="l00042"></a>00042 <span class="comment"> 2003-10-07 VO</span> <a name="l00043"></a>00043 <span class="comment"> Setting Analyze db_name is corrected.</span> <a name="l00044"></a>00044 <span class="comment"> 2003-10-08 VO</span> <a name="l00045"></a>00045 <span class="comment"> Only 7 first letters of image magic number is checked.</span> <a name="l00046"></a>00046 <span class="comment"> 2003-10-21 VO</span> <a name="l00047"></a>00047 <span class="comment"> imgRead() and imgReadAnalyze() may work even if filename is given</span> <a name="l00048"></a>00048 <span class="comment"> with extension.</span> <a name="l00049"></a>00049 <span class="comment"> 2003-11-04 VO</span> <a name="l00050"></a>00050 <span class="comment"> If ECAT 6.3 image mainheader and subheader contain the same calibration</span> <a name="l00051"></a>00051 <span class="comment"> factor, it is used only once.</span> <a name="l00052"></a>00052 <span class="comment"> Works with unit nCi/mL.</span> <a name="l00053"></a>00053 <span class="comment"> 2003-11-10 VO</span> <a name="l00054"></a>00054 <span class="comment"> ECAT 7 3D scan subheader field x_resolution is used as sample distance.</span> <a name="l00055"></a>00055 <span class="comment"> 2003-11-12 VO</span> <a name="l00056"></a>00056 <span class="comment"> Reading ECAT 6.3 image: pixels x size is read from subheader slice_width</span> <a name="l00057"></a>00057 <span class="comment"> if it is not found in main header plane_separation field.</span> <a name="l00058"></a>00058 <span class="comment"> 2003-11-30 VO</span> <a name="l00059"></a>00059 <span class="comment"> For now, calls temp_roundf() instead of roundf().</span> <a name="l00060"></a>00060 <span class="comment"> 2003-12-05 VO</span> <a name="l00061"></a>00061 <span class="comment"> Analyze files may be read&write without flipping in x,y,z-directions.</span> <a name="l00062"></a>00062 <span class="comment"> Function anaFlipping() is used to determine whether to flip or not.</span> <a name="l00063"></a>00063 <span class="comment"> 2003-12-10 VO</span> <a name="l00064"></a>00064 <span class="comment"> Changes in 2003-11-10 and 2003-11-12 had been accidentally deleted</span> <a name="l00065"></a>00065 <span class="comment"> and are now returned.</span> <a name="l00066"></a>00066 <span class="comment"> 2003-12-14 VO</span> <a name="l00067"></a>00067 <span class="comment"> Patient orientation is read&written in ECAT7 format.</span> <a name="l00068"></a>00068 <span class="comment"> Scanner (system_type) is read&written in ECAT formats.</span> <a name="l00069"></a>00069 <span class="comment"> 2004-02-05 VO</span> <a name="l00070"></a>00070 <span class="comment"> anaFlipping() determines whether image is flipped in z-direction;</span> <a name="l00071"></a>00071 <span class="comment"> image is always flipped in x,y-directions.</span> <a name="l00072"></a>00072 <span class="comment"> 2004-02-08 VO</span> <a name="l00073"></a>00073 <span class="comment"> Changes in imgSetEcat7MHeader():</span> <a name="l00074"></a>00074 <span class="comment"> -sets different magic number for sinograms and image volumes</span> <a name="l00075"></a>00075 <span class="comment"> -sets sw_version=72.</span> <a name="l00076"></a>00076 <span class="comment"> When writing ECAT 6.3 format: sets sw_version=2.</span> <a name="l00077"></a>00077 <span class="comment"> 2004-02-22 VO</span> <a name="l00078"></a>00078 <span class="comment"> Analyze format: zoom factor is not written into/read from funused2,</span> <a name="l00079"></a>00079 <span class="comment"> because that field is used by SPM2 to another purpose.</span> <a name="l00080"></a>00080 <span class="comment"> 2004-05-23 VO</span> <a name="l00081"></a>00081 <span class="comment"> ECAT7_3DSCANFIT is now supported as ECAT7_3DSCAN.</span> <a name="l00082"></a>00082 <span class="comment"> imgReadEcat7() reports that axial compression is not supported.</span> <a name="l00083"></a>00083 <span class="comment"> ECAT unit 1 is assumed to represent MBq/mL (IMG unit 13).</span> <a name="l00084"></a>00084 <span class="comment"> 2004-05-24 VO</span> <a name="l00085"></a>00085 <span class="comment"> Pixel sizes are correctly converted from mm to cm when writing ECAT7.</span> <a name="l00086"></a>00086 <span class="comment"> Changes in unit conversions between ECAT and IMG.</span> <a name="l00087"></a>00087 <span class="comment"> 2004-06-27 VO</span> <a name="l00088"></a>00088 <span class="comment"> Additional error message.</span> <a name="l00089"></a>00089 <span class="comment"> ecat63ReadAllToImg() and ecat63ReadPlaneToImg() do not even try to read</span> <a name="l00090"></a>00090 <span class="comment"> extra frames.</span> <a name="l00091"></a>00091 <span class="comment"> ECAT63_TEST changed to IMG_TEST.</span> <a name="l00092"></a>00092 <span class="comment"> Patient name is copied with strncpy in ecat63ReadPlaneToImg() and</span> <a name="l00093"></a>00093 <span class="comment"> ecat63ReadAllToImg().</span> <a name="l00094"></a>00094 <span class="comment"> 2004-07-10 VO</span> <a name="l00095"></a>00095 <span class="comment"> Not so many test prints in reading ECAT 6.3 files.</span> <a name="l00096"></a>00096 <span class="comment"> 2004-08-23 VO</span> <a name="l00097"></a>00097 <span class="comment"> MAX_STUDYNR_LEN applied where appropriate.</span> <a name="l00098"></a>00098 <span class="comment"> 2004-09-20 VO</span> <a name="l00099"></a>00099 <span class="comment"> Doxygen style comments are corrected.</span> <a name="l00100"></a>00100 <span class="comment"> 2004-09-24 VO</span> <a name="l00101"></a>00101 <span class="comment"> Better handling of ECAT7 calibration units.</span> <a name="l00102"></a>00102 <span class="comment"> E.g. imgUnitToEcat7() divided into imgUnitToEcat6() and imgUnitToEcat7().</span> <a name="l00103"></a>00103 <span class="comment"> 2004-10-10 VO</span> <a name="l00104"></a>00104 <span class="comment"> imgSetEcat7MHeader() sets ECAT7 mainheader plane number to dimz, not 1</span> <a name="l00105"></a>00105 <span class="comment"> as before.</span> <a name="l00106"></a>00106 <span class="comment"> 2004-10-13 VO</span> <a name="l00107"></a>00107 <span class="comment"> tm_isdst=-1 (unknown Daylight saving time) when appropriate.</span> <a name="l00108"></a>00108 <span class="comment"> 2004-11-07</span> <a name="l00109"></a>00109 <span class="comment"> imgReadEcat7() reads files with axial compression, each slice as one plane.</span> <a name="l00110"></a>00110 <span class="comment"> 2004-12-22 VO</span> <a name="l00111"></a>00111 <span class="comment"> Correction in imgGetEcat7MHeader(): calls imgUnitFromEcat7() instead of</span> <a name="l00112"></a>00112 <span class="comment"> imgUnitFromEcat().</span> <a name="l00113"></a>00113 <span class="comment"> 2004-12-27 VO</span> <a name="l00114"></a>00114 <span class="comment"> imgUnitFromEcat(): IMG unit is set to unknown, not to MBq/mL, when ECAT</span> <a name="l00115"></a>00115 <span class="comment"> unit is unknown.</span> <a name="l00116"></a>00116 <span class="comment"> 2005-03-03 Jarkko Johansson</span> <a name="l00117"></a>00117 <span class="comment"> initSIF changed to sifInit and readSIF to sifRead</span> <a name="l00118"></a>00118 <span class="comment"> 2005-05-12 Calle Laakkonen</span> <a name="l00119"></a>00119 <span class="comment"> made image loading/saving functions filename argument const</span> <a name="l00120"></a>00120 <span class="comment"> 2005-06-06 Calle Laakkonen</span> <a name="l00121"></a>00121 <span class="comment"> imgmsg is now shared by all functions.</span> <a name="l00122"></a>00122 <span class="comment"> 2005-06-30 Harri Merisaari</span> <a name="l00123"></a>00123 <span class="comment"> fixed imgWrite(char* fname, IMG* img) to write also image structures </span> <a name="l00124"></a>00124 <span class="comment"> with '_fileFormat' field set as 'IMG_ANA_L' </span> <a name="l00125"></a>00125 <span class="comment"> 2005-10-10 Calle Laakkonen</span> <a name="l00126"></a>00126 <span class="comment"> imgWriteAnalyze() now conserves memory by writing only 1 frame at a time.</span> <a name="l00127"></a>00127 <span class="comment"> 2005-12-12 VO</span> <a name="l00128"></a>00128 <span class="comment"> imgReadAnalyze() sets img.isotopeHalflife, if isotope is found in SIF.</span> <a name="l00129"></a>00129 <span class="comment"> Corrected a setting of error message in imgRead().</span> <a name="l00130"></a>00130 <span class="comment"> 2006-10-31 VO</span> <a name="l00131"></a>00131 <span class="comment"> Calibration unit functions moved to imgunit.c.</span> <a name="l00132"></a>00132 <span class="comment"> Return value of mktime() is checked.</span> <a name="l00133"></a>00133 <span class="comment"> Added "if(timezone == -7200) img.scanStart += 10800;"</span> <a name="l00134"></a>00134 <span class="comment"> into imgGetEcat7MHeader() as suggested by HM.</span> <a name="l00135"></a>00135 <span class="comment"> 2007-01-31 VO</span> <a name="l00136"></a>00136 <span class="comment"> Corrected a bug in imgReadEcat7() with ECAT7 3D sinograms: all planes, not</span> <a name="l00137"></a>00137 <span class="comment"> only the first, are multiplied with dead-time correction factor.</span> <a name="l00138"></a>00138 <span class="comment"> Analyze 7.5 I/O functions separated into imgana.c.</span> <a name="l00139"></a>00139 <span class="comment"> ECAT 6.3 I/O functions separated into img_e63.c.</span> <a name="l00140"></a>00140 <span class="comment"> IMG status messages separated into imgmsg.h.</span> <a name="l00141"></a>00141 <span class="comment"> If valid study number is found in ECAT7 user_process_code, </span> <a name="l00142"></a>00142 <span class="comment"> then take it from there. </span> <a name="l00143"></a>00143 <span class="comment"> Patient_id and study_description are read and written in ECAT7.</span> <a name="l00144"></a>00144 <span class="comment"> Image x,y,z-resolutions are read/written in ECAT7. </span> <a name="l00145"></a>00145 <span class="comment"> Prompts and randoms (delayed) are read and written in ECAT7.</span> <a name="l00146"></a>00146 <span class="comment"> 2007-02-27 VO</span> <a name="l00147"></a>00147 <span class="comment"> ECAT 7 I/O functions separated into img_e7.c.</span> <a name="l00148"></a>00148 <span class="comment"> 2007-03-25 VO</span> <a name="l00149"></a>00149 <span class="comment"> Added functions imgFormatFromFName(), imgReadHeader(), imgReadNextFrame(),</span> <a name="l00150"></a>00150 <span class="comment"> imgReadFrame(), and imgWriteFrame().</span> <a name="l00151"></a>00151 <span class="comment"> 2007-03-27 VO</span> <a name="l00152"></a>00152 <span class="comment"> imgFormatFromFName() identifies extension .polmap as polar map.</span> <a name="l00153"></a>00153 <span class="comment"> imgWrite() calls imgFormatFromFName() when necessary.</span> <a name="l00154"></a>00154 <span class="comment"> Read and write functions accept polar maps.</span> <a name="l00155"></a>00155 <span class="comment"> 2007-17-07 HM</span> <a name="l00156"></a>00156 <span class="comment"> Changed void imgFormatFromFName(IMG *img, const char *fname) for ANSI</span> <a name="l00157"></a>00157 <span class="comment"></span> <a name="l00158"></a>00158 <span class="comment">******************************************************************************/</span> <a name="l00159"></a>00159 <span class="preprocessor">#include <stdio.h></span> <a name="l00160"></a>00160 <span class="preprocessor">#include <stdlib.h></span> <a name="l00161"></a>00161 <span class="preprocessor">#include <unistd.h></span> <a name="l00162"></a>00162 <span class="preprocessor">#include <math.h></span> <a name="l00163"></a>00163 <span class="preprocessor">#include <string.h></span> <a name="l00164"></a>00164 <span class="preprocessor">#include <time.h></span> <a name="l00165"></a>00165 <span class="comment">/*****************************************************************************/</span> <a name="l00166"></a>00166 <span class="preprocessor">#include "petc99.h"</span> <a name="l00167"></a>00167 <span class="preprocessor">#include "swap.h"</span> <a name="l00168"></a>00168 <span class="preprocessor">#include "halflife.h"</span> <a name="l00169"></a>00169 <span class="preprocessor">#include "<a class="code" href="substitutions_8h.html">substitutions.h</a>"</span> <a name="l00170"></a>00170 <span class="comment">/*****************************************************************************/</span> <a name="l00171"></a>00171 <span class="preprocessor">#include "<a class="code" href="img_8h.html">include/img.h</a>"</span> <a name="l00172"></a>00172 <span class="preprocessor">#include "<a class="code" href="ecat63_8h.html">include/ecat63.h</a>"</span> <a name="l00173"></a>00173 <span class="preprocessor">#include "<a class="code" href="ecat7_8h.html">include/ecat7.h</a>"</span> <a name="l00174"></a>00174 <span class="preprocessor">#include "<a class="code" href="analyze_8h.html">include/analyze.h</a>"</span> <a name="l00175"></a>00175 <span class="preprocessor">#include "<a class="code" href="imgmax_8h.html">include/imgmax.h</a>"</span> <a name="l00176"></a>00176 <span class="preprocessor">#include "<a class="code" href="imgdecay_8h.html">include/imgdecay.h</a>"</span> <a name="l00177"></a>00177 <span class="preprocessor">#include "<a class="code" href="sif_8h.html">include/sif.h</a>"</span> <a name="l00178"></a>00178 <span class="preprocessor">#include "<a class="code" href="imgfile_8h.html">include/imgfile.h</a>"</span> <a name="l00179"></a>00179 <span class="comment">/*****************************************************************************/</span> <a name="l00180"></a>00180 <a name="l00181"></a>00181 <span class="comment">/*****************************************************************************/</span> <a name="l00190"></a><a class="code" href="imgfile_8h.html#a25e72562a72da715d4557ed9728ff6e1">00190</a> <span class="keywordtype">int</span> <a class="code" href="imgfile_8c.html#a25e72562a72da715d4557ed9728ff6e1">imgRead</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fname, <a class="code" href="structIMG.html">IMG</a> *img) { <a name="l00191"></a>00191 FILE *fp; <a name="l00192"></a>00192 <span class="keywordtype">int</span> ret; <a name="l00193"></a>00193 <a class="code" href="structecat7__mainheader.html">ECAT7_mainheader</a> ecat7_main_header; <a name="l00194"></a>00194 <a class="code" href="structecat63__mainheader.html">ECAT63_mainheader</a> ecat63_main_header; <a name="l00195"></a>00195 <span class="keywordtype">char</span> temp[FILENAME_MAX], *cptr; <a name="l00196"></a>00196 <a name="l00197"></a>00197 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"imgRead(%s, *img)\n"</span>, fname); <a name="l00198"></a>00198 <span class="comment">/* Check the arguments */</span> <a name="l00199"></a>00199 <span class="keywordflow">if</span>(fname==NULL) {img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>); <span class="keywordflow">return</span>(1);} <a name="l00200"></a>00200 <span class="keywordflow">if</span>(img==NULL || img-><a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>!=<a class="code" href="img_8h.html#a7aeab2fb426b858c78ec515aaa8f0a67">IMG_STATUS_INITIALIZED</a>) { <a name="l00201"></a>00201 img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>); <span class="keywordflow">return</span>(2);} <a name="l00202"></a>00202 <a name="l00203"></a>00203 <span class="comment">/* Check if we have Analyze file */</span> <a name="l00204"></a>00204 <span class="comment">/* Check if filename was given accidentally with extension */</span> <a name="l00205"></a>00205 strcpy(temp, fname); cptr=strrchr(temp, <span class="charliteral">'.'</span>); <a name="l00206"></a>00206 <span class="keywordflow">if</span>(cptr!=NULL && (strcmp(cptr, <span class="stringliteral">".img"</span>)==0 || strcmp(cptr, <span class="stringliteral">".hdr"</span>)==0)) <a name="l00207"></a>00207 *cptr=(char)0; <a name="l00208"></a>00208 <span class="comment">/* Are there the Analyze .img and .hdr file? */</span> <a name="l00209"></a>00209 <span class="keywordflow">if</span>(<a class="code" href="analyze_8c.html#a962221ab7adb0bed2050284912d473ca">anaExists</a>(temp)!=0) { <a name="l00210"></a>00210 <span class="comment">/* Read Analyze image */</span> <a name="l00211"></a>00211 ret=<a class="code" href="img__ana_8c.html#aefc54f0812e16d43a17edcdc342be35b">imgReadAnalyze</a>(temp, img); <a name="l00212"></a>00212 <span class="keywordflow">if</span>(ret==3 || ret==4 || ret==5 || ret==6) { <a name="l00213"></a>00213 img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba942f7c6c65ba2a702cd9c23550843003">STATUS_UNKNOWNFORMAT</a>); <span class="keywordflow">return</span>(4); <a name="l00214"></a>00214 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ret>0) { <a name="l00215"></a>00215 img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba9f298b5339db644dbc2b9dc01ef12006">STATUS_NOFILE</a>); <span class="keywordflow">return</span>(4); <a name="l00216"></a>00216 } <a name="l00217"></a>00217 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"%s identified as supported Analyze 7.5 format.\n"</span>, <a name="l00218"></a>00218 fname); <a name="l00219"></a>00219 img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7e4a42e3b6dd63708c64cf3db6f69566">STATUS_OK</a>); <a name="l00220"></a>00220 <span class="keywordflow">return</span>(0); <a name="l00221"></a>00221 } <a name="l00222"></a>00222 <a name="l00223"></a>00223 <a name="l00224"></a>00224 <span class="comment">/* Check if we have an ECAT file */</span> <a name="l00225"></a>00225 <span class="comment">/* Open file for read */</span> <a name="l00226"></a>00226 <span class="keywordflow">if</span>((fp=fopen(fname, <span class="stringliteral">"rb"</span>)) == NULL) { <a name="l00227"></a>00227 img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba9f298b5339db644dbc2b9dc01ef12006">STATUS_NOFILE</a>); <span class="keywordflow">return</span>(4); <a name="l00228"></a>00228 } <a name="l00229"></a>00229 <span class="comment">/* Try to read ECAT 7.x main header */</span> <a name="l00230"></a>00230 ret=<a class="code" href="ecat7r_8c.html#a7d6241dd7a472a4f2aaf3eb16dc03dc1">ecat7ReadMainheader</a>(fp, &ecat7_main_header); <a name="l00231"></a>00231 <span class="keywordflow">if</span>(ret) {fclose(fp); img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba942f7c6c65ba2a702cd9c23550843003">STATUS_UNKNOWNFORMAT</a>); <span class="keywordflow">return</span>(4);} <a name="l00232"></a>00232 <span class="comment">/* If header could be read, check for magic number */</span> <a name="l00233"></a>00233 <span class="keywordflow">if</span>(strncmp(ecat7_main_header.<a class="code" href="structecat7__mainheader.html#a71cb64edce706f383f3e68b9548b9ec3">magic_number</a>, <a class="code" href="ecat7_8h.html#a79ce0ec6cdde2ca6101c0bbc7c78beca">ECAT7V_MAGICNR</a>, 7)==0) { <a name="l00234"></a>00234 <span class="comment">/* This is ECAT 7.x file */</span> <a name="l00235"></a>00235 <span class="comment">/* Check if file type is supported */</span> <a name="l00236"></a>00236 <span class="keywordflow">if</span>(<a class="code" href="img__e7_8c.html#a4b25c303088592c0518bf26df1d20aec">imgEcat7Supported</a>(&ecat7_main_header)==0) { <a name="l00237"></a>00237 fclose(fp); img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baef2b214bb9b6ccc009f27c76e81b3fef">STATUS_UNSUPPORTED</a>); <span class="keywordflow">return</span>(5); <a name="l00238"></a>00238 } <a name="l00239"></a>00239 fclose(fp); <a name="l00240"></a>00240 <span class="comment">/* Read file */</span> <a name="l00241"></a>00241 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"%s identified as supported ECAT 7.x %s format\n"</span>, <a name="l00242"></a>00242 fname, <a class="code" href="ecat7p_8c.html#af7076f45a7f4d8c4a339e5e7d60b0f46">ecat7filetype</a>(ecat7_main_header.<a class="code" href="structecat7__mainheader.html#a1914b3a0ebf3077d090752d6ef66c757">file_type</a>)); <a name="l00243"></a>00243 ret=<a class="code" href="img__e7_8c.html#a7d6df1a1fa3b56a9bfdf901eb348da4c">imgReadEcat7</a>(fname, img); <a name="l00244"></a>00244 <span class="keywordflow">if</span>(ret) {<span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"imgReadEcat7()=%d\n"</span>, ret); <span class="keywordflow">return</span>(6);} <a name="l00245"></a>00245 } <span class="keywordflow">else</span> { <a name="l00246"></a>00246 <span class="comment">/* Check if file is in ECAT 6.3 format */</span> <a name="l00247"></a>00247 ret=<a class="code" href="ecat63r_8c.html#af904c6b26259c4f280cdc18f92aeeae5">ecat63ReadMainheader</a>(fp, &ecat63_main_header); <a name="l00248"></a>00248 fclose(fp); <a name="l00249"></a>00249 <span class="keywordflow">if</span>(ret==0) { <a name="l00250"></a>00250 <span class="comment">/* It seems to be ECAT 6.3, so read it */</span> <a name="l00251"></a>00251 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"%s identified as supported ECAT 6.3 %s format\n"</span>, <a name="l00252"></a>00252 fname, <a class="code" href="ecat7p_8c.html#af7076f45a7f4d8c4a339e5e7d60b0f46">ecat7filetype</a>(ecat63_main_header.<a class="code" href="structecat63__mainheader.html#aeb7fd4a6b107a810dcff5d82b6f58440">file_type</a>)); <a name="l00253"></a>00253 ret=<a class="code" href="img__e63_8c.html#af743a62694374d314fc164f3b4ce942f">ecat63ReadAllToImg</a>(fname, img); <a name="l00254"></a>00254 <span class="keywordflow">if</span>(ret) { <a name="l00255"></a>00255 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) fprintf(stderr, <span class="stringliteral">"ecat63ReaddAllToImg: %s\n"</span>, <a class="code" href="ecat63_8h.html#a1a4fc8f123b2ef83d928b63743aa49d9">ecat63errmsg</a>); <a name="l00256"></a>00256 <span class="keywordflow">if</span>(ret==6) img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad6498890650ae8d01e69f43514eb4fed">STATUS_MISSINGMATRIX</a>); <a name="l00257"></a>00257 <span class="keywordflow">else</span> img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baef2b214bb9b6ccc009f27c76e81b3fef">STATUS_UNSUPPORTED</a>); <a name="l00258"></a>00258 <span class="keywordflow">return</span>(6); <a name="l00259"></a>00259 } <a name="l00260"></a>00260 } <span class="keywordflow">else</span> {img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba942f7c6c65ba2a702cd9c23550843003">STATUS_UNKNOWNFORMAT</a>); <span class="keywordflow">return</span>(4);} <a name="l00261"></a>00261 } <a name="l00262"></a>00262 img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>=<a class="code" href="img_8c.html#a2af7a83f855fdb5de24325614912ae5e">imgStatus</a>(<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7e4a42e3b6dd63708c64cf3db6f69566">STATUS_OK</a>); <a name="l00263"></a>00263 <span class="keywordflow">return</span>(0); <a name="l00264"></a>00264 } <a name="l00265"></a>00265 <span class="comment">/*****************************************************************************/</span> <a name="l00266"></a>00266 <a name="l00267"></a>00267 <span class="comment">/*****************************************************************************/</span> <a name="l00277"></a><a class="code" href="imgfile_8h.html#ad8d06e4d0a57aa2db0b30488a0ce9543">00277</a> <span class="keywordtype">int</span> <a class="code" href="imgfile_8c.html#ad8d06e4d0a57aa2db0b30488a0ce9543">imgWrite</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fname, <a class="code" href="structIMG.html">IMG</a> *img) { <a name="l00278"></a>00278 <span class="keywordtype">int</span> ret; <a name="l00279"></a>00279 <a name="l00280"></a>00280 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"imgWrite(%s, *img)\n"</span>, fname); <a name="l00281"></a>00281 <span class="comment">/* Check the arguments */</span> <a name="l00282"></a>00282 <span class="keywordflow">if</span>(fname==NULL) <span class="keywordflow">return</span>(1); <a name="l00283"></a>00283 <span class="keywordflow">if</span>(img==NULL || img-><a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>!=<a class="code" href="img_8h.html#a3117b1b0649d3761dcda1395202129e5">IMG_STATUS_OCCUPIED</a>) { <a name="l00284"></a>00284 <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>); <span class="keywordflow">return</span>(2);} <a name="l00285"></a>00285 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a0d9199e1c3c4bd94d56eb30e421b309c">type</a>!=<a class="code" href="img_8h.html#a04e835f7aec92fcc1d4ecf37e0dd2e9c">IMG_TYPE_RAW</a> && <a name="l00286"></a>00286 img-><a class="code" href="structIMG.html#a0d9199e1c3c4bd94d56eb30e421b309c">type</a>!=<a class="code" href="img_8h.html#ae8b5bb16b84adcbcd2bba3e10a36d62d">IMG_TYPE_IMAGE</a> && <a name="l00287"></a>00287 img-><a class="code" href="structIMG.html#a0d9199e1c3c4bd94d56eb30e421b309c">type</a>!=<a class="code" href="img_8h.html#a5f0d986b4c5b2b48d37ad25afdd20c77">IMG_TYPE_POLARMAP</a>) { <a name="l00288"></a>00288 <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>); <span class="keywordflow">return</span>(2);} <a name="l00289"></a>00289 <a name="l00290"></a>00290 <span class="comment">/* If _fileFormat is not defined, then determine it from the filename */</span> <a name="l00291"></a>00291 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>==<a class="code" href="img_8h.html#a3aea8253aaffd2e73cf8641661f6a459">IMG_UNKNOWN</a>) <a class="code" href="imgfile_8c.html#abe83b47e7d8d600d579c581b6e7209bd">imgFormatFromFName</a>(img, fname); <a name="l00292"></a>00292 <a name="l00293"></a>00293 <span class="comment">/* Write */</span> <a name="l00294"></a>00294 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>==<a class="code" href="img_8h.html#a7d502c1293f35b4392badbb9491ee95e">IMG_E63</a>) { <a name="l00295"></a>00295 ret=<a class="code" href="img__e63_8c.html#a443e0885c38b074c760a5b9a88554ce3">ecat63WriteAllImg</a>(fname, img); <a name="l00296"></a>00296 <span class="keywordflow">switch</span>(ret) { <a name="l00297"></a>00297 <span class="keywordflow">case</span> 0: <span class="keywordflow">break</span>; <a name="l00298"></a>00298 <span class="keywordflow">case</span> 4: <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55bafbe470f6663c748e405bf509d2bb57bb">STATUS_NOMEMORY</a>); <span class="keywordflow">break</span>; <a name="l00299"></a>00299 <span class="keywordflow">case</span> 3: <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba89d8cfdc7190aa78887b412e66e292e4">STATUS_NOWRITEPERM</a>); <span class="keywordflow">break</span>; <a name="l00300"></a>00300 <span class="keywordflow">case</span> 9: <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba8500261907803b2afa1f761991a22679">STATUS_DISKFULL</a>); <span class="keywordflow">break</span>; <a name="l00301"></a>00301 <span class="keywordflow">default</span>: <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>); <a name="l00302"></a>00302 } <a name="l00303"></a>00303 <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span>(7); <a name="l00304"></a>00304 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>==<a class="code" href="img_8h.html#a9145a82aa093b7e52a693ec5c38094ef">IMG_ANA</a> || img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>==<a class="code" href="img_8h.html#a38e113a0101e5e683653263ddabe0fc8">IMG_ANA_L</a>) { <a name="l00305"></a>00305 ret=<a class="code" href="img__ana_8c.html#a380113542ddd5040b383221f1377d86f">imgWriteAnalyze</a>(fname, img); <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span>(5); <a name="l00306"></a>00306 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>==<a class="code" href="img_8h.html#a3c7938cecd0e773de01ce1cb6dfaf4f3">IMG_E7_2D</a>) { <a name="l00307"></a>00307 ret=<a class="code" href="img__e7_8c.html#a0e91bf23b5a578c06992c27f6e65e460">imgWrite2DEcat7</a>(fname, img); <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span>(5); <a name="l00308"></a>00308 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>==<a class="code" href="img_8h.html#aa0111a4761ce5db222757daff1f48dfe">IMG_POLARMAP</a>) { <a name="l00309"></a>00309 ret=<a class="code" href="img__e7_8c.html#aabd4fa9a9594482278362ff653d92a5c">imgWritePolarmap</a>(fname, img); <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span>(5); <a name="l00310"></a>00310 } <span class="keywordflow">else</span> { <a name="l00311"></a>00311 ret=<a class="code" href="img__e7_8c.html#a16fee12c445b0de04d5252f28fe48ae6">imgWriteEcat7</a>(fname, img); <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span>(5); <a name="l00312"></a>00312 } <a name="l00313"></a>00313 <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7e4a42e3b6dd63708c64cf3db6f69566">STATUS_OK</a>); <a name="l00314"></a>00314 <span class="keywordflow">return</span>(0); <a name="l00315"></a>00315 } <a name="l00316"></a>00316 <span class="comment">/*****************************************************************************/</span> <a name="l00317"></a>00317 <a name="l00318"></a>00318 <span class="comment">/*****************************************************************************/</span> <a name="l00329"></a><a class="code" href="imgfile_8h.html#a49e0047cd36a54c4ac9d03c9ecddd3ff">00329</a> <span class="keywordtype">int</span> <a class="code" href="imgfile_8c.html#a49e0047cd36a54c4ac9d03c9ecddd3ff">imgReadHeader</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fname, <a class="code" href="structIMG.html">IMG</a> *img) { <a name="l00330"></a>00330 <span class="keywordtype">int</span> ret; <a name="l00331"></a>00331 <a name="l00332"></a>00332 <a name="l00333"></a>00333 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"\nimgReadHeader(%s, *img)\n"</span>, fname); <a name="l00334"></a>00334 <a name="l00335"></a>00335 <span class="comment">/* Check the arguments */</span> <a name="l00336"></a>00336 <span class="keywordflow">if</span>(fname==NULL) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00337"></a>00337 <span class="keywordflow">if</span>(img==NULL) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00338"></a>00338 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>!=<a class="code" href="img_8h.html#a7aeab2fb426b858c78ec515aaa8f0a67">IMG_STATUS_INITIALIZED</a>) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00339"></a>00339 <a name="l00340"></a>00340 <span class="comment">/* Check if we have Analyze database files */</span> <a name="l00341"></a>00341 <span class="keywordflow">if</span>(<a class="code" href="analyze_8c.html#a6ecb9b0f8fb5f1fa4920a378d2ce0534">anaDatabaseExists</a>(fname, NULL, NULL, NULL)>0) { <span class="comment">/* yes we have Analyze 7.5 */</span> <a name="l00342"></a>00342 <span class="comment">/* Read Analyze header information */</span> <a name="l00343"></a>00343 ret=<a class="code" href="img__ana_8c.html#aca1bc7e49593e3137706287dfb9707c7">imgReadAnalyzeHeader</a>(fname, img); <a name="l00344"></a>00344 <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, ret); <a name="l00345"></a>00345 <span class="keywordflow">return</span>(ret); <a name="l00346"></a>00346 } <a name="l00347"></a>00347 <a name="l00348"></a>00348 <span class="comment">/* Is this an ECAT7 file */</span> <a name="l00349"></a>00349 ret=<a class="code" href="img__e7_8c.html#a80595d5fb45da4904f58fbb0d3e7e64a">imgReadEcat7Header</a>(fname, img); <a name="l00350"></a>00350 <span class="comment">/* If main header was read but format was not identified as Ecat7, </span> <a name="l00351"></a>00351 <span class="comment"> it might be in Ecat6 format */</span> <a name="l00352"></a>00352 <span class="keywordflow">if</span>(ret==<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba942f7c6c65ba2a702cd9c23550843003">STATUS_UNKNOWNFORMAT</a>) { <a name="l00353"></a>00353 <span class="comment">/* Is this an ECAT6 file; check this as the last option, because</span> <a name="l00354"></a>00354 <span class="comment"> ECAT6 files don't contain any magic number */</span> <a name="l00355"></a>00355 ret=<a class="code" href="img__e63_8c.html#ad2488060702b34b8ba7269131304905d">imgReadEcat63Header</a>(fname, img); <a name="l00356"></a>00356 <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba942f7c6c65ba2a702cd9c23550843003">STATUS_UNKNOWNFORMAT</a>; <span class="comment">/* don't know what this is */</span> <a name="l00357"></a>00357 <span class="comment">/* Fine, it is Ecat 6.3 (or close enough) */</span> <a name="l00358"></a>00358 <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7e4a42e3b6dd63708c64cf3db6f69566">STATUS_OK</a>); <a name="l00359"></a>00359 <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7e4a42e3b6dd63708c64cf3db6f69566">STATUS_OK</a>; <a name="l00360"></a>00360 } <a name="l00361"></a>00361 <a name="l00362"></a>00362 <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, ret); <a name="l00363"></a>00363 <span class="keywordflow">return</span> ret; <a name="l00364"></a>00364 } <a name="l00365"></a>00365 <span class="comment">/*****************************************************************************/</span> <a name="l00366"></a>00366 <a name="l00367"></a>00367 <span class="comment">/*****************************************************************************/</span> <a name="l00389"></a><a class="code" href="imgfile_8h.html#a69be4754eaa1168f635b38e6dc6dc1cd">00389</a> <span class="keywordtype">int</span> <a class="code" href="imgfile_8c.html#a69be4754eaa1168f635b38e6dc6dc1cd">imgReadFrame</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fname, <span class="keywordtype">int</span> frame_to_read, <a class="code" href="structIMG.html">IMG</a> *img, <span class="keywordtype">int</span> frame_index) { <a name="l00390"></a>00390 <a class="code" href="structIMG.html">IMG</a> test_img; <a name="l00391"></a>00391 <span class="keywordtype">int</span> ret=0; <a name="l00392"></a>00392 <a name="l00393"></a>00393 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"\nimgReadFrame(%s, %d, *img, %d)\n"</span>, <a name="l00394"></a>00394 fname, frame_to_read, frame_index); <a name="l00395"></a>00395 <a name="l00396"></a>00396 <span class="comment">/*</span> <a name="l00397"></a>00397 <span class="comment"> * Check the input </span> <a name="l00398"></a>00398 <span class="comment"> */</span> <a name="l00399"></a>00399 <span class="keywordflow">if</span>(fname==NULL) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00400"></a>00400 <span class="keywordflow">if</span>(img==NULL) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00401"></a>00401 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>!=<a class="code" href="img_8h.html#a7aeab2fb426b858c78ec515aaa8f0a67">IMG_STATUS_INITIALIZED</a> && img-><a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>!=<a class="code" href="img_8h.html#a3117b1b0649d3761dcda1395202129e5">IMG_STATUS_OCCUPIED</a>) <a name="l00402"></a>00402 <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00403"></a>00403 <span class="keywordflow">if</span>(frame_to_read<1) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00404"></a>00404 <span class="keywordflow">if</span>(frame_index<0) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00405"></a>00405 <span class="comment">/* if frame_index>0, then there must be sufficient memory allocated for it */</span> <a name="l00406"></a>00406 <span class="keywordflow">if</span>(frame_index>0) { <a name="l00407"></a>00407 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>!=<a class="code" href="img_8h.html#a3117b1b0649d3761dcda1395202129e5">IMG_STATUS_OCCUPIED</a>) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00408"></a>00408 <span class="keywordflow">if</span>(frame_index>img-><a class="code" href="structIMG.html#a77605d4aa64b86294590c79e9a761b15">dimt</a>-1) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00409"></a>00409 } <a name="l00410"></a>00410 <a name="l00411"></a>00411 <span class="comment">/*</span> <a name="l00412"></a>00412 <span class="comment"> * If IMG is preallocated, check that fundamental header information</span> <a name="l00413"></a>00413 <span class="comment"> * is compatible with old and new contents.</span> <a name="l00414"></a>00414 <span class="comment"> * If not allocated, then read the header contents, and allocate it</span> <a name="l00415"></a>00415 <span class="comment"> */</span> <a name="l00416"></a>00416 <a class="code" href="img_8c.html#af95041292a0f9e4a82a10b49a074a95c">imgInit</a>(&test_img); <a name="l00417"></a>00417 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>==<a class="code" href="img_8h.html#a3117b1b0649d3761dcda1395202129e5">IMG_STATUS_OCCUPIED</a>) { <a name="l00418"></a>00418 ret=<a class="code" href="imgfile_8c.html#a49e0047cd36a54c4ac9d03c9ecddd3ff">imgReadHeader</a>(fname, &test_img); <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(&test_img, ret); <a name="l00419"></a>00419 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>>1) printf(<span class="stringliteral">"imgReadHeader() return message := %s\n"</span>, test_img.<a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>); <a name="l00420"></a>00420 <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span>(ret); <a name="l00421"></a>00421 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>>3) <a class="code" href="img_8c.html#a32edd1b78039f6cc22b7bbe413aa3a56">imgInfo</a>(&test_img); <a name="l00422"></a>00422 <span class="comment">/* Test that file format and type are the same */</span> <a name="l00423"></a>00423 ret=0; <a name="l00424"></a>00424 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a0d9199e1c3c4bd94d56eb30e421b309c">type</a>!=test_img.<a class="code" href="structIMG.html#a0d9199e1c3c4bd94d56eb30e421b309c">type</a>) ret++; <a name="l00425"></a>00425 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>!=test_img.<a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>) ret++; <a name="l00426"></a>00426 <span class="comment">/* Test that x, y, and z dimensions are the same */</span> <a name="l00427"></a>00427 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a0818b82059710627a94282a793ff7030">dimx</a>!=test_img.<a class="code" href="structIMG.html#a0818b82059710627a94282a793ff7030">dimx</a>) ret++; <a name="l00428"></a>00428 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#aa17e87812503d3c142f31c08abcbf79d">dimy</a>!=test_img.<a class="code" href="structIMG.html#aa17e87812503d3c142f31c08abcbf79d">dimy</a>) ret++; <a name="l00429"></a>00429 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a9c04780b47e6a627a2b700b76352c3fc">dimz</a>!=test_img.<a class="code" href="structIMG.html#a9c04780b47e6a627a2b700b76352c3fc">dimz</a>) ret++; <a name="l00430"></a>00430 <a class="code" href="img_8c.html#ada573d4b40da77be4455bb9fab9a3033">imgEmpty</a>(&test_img); <span class="keywordflow">if</span>(ret>0) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7d0a6ddf0a60e475f14f6b0e9b6487a1">STATUS_INVALIDHEADER</a>; <a name="l00431"></a>00431 } <span class="keywordflow">else</span> { <a name="l00432"></a>00432 ret=<a class="code" href="imgfile_8c.html#a49e0047cd36a54c4ac9d03c9ecddd3ff">imgReadHeader</a>(fname, img); <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, ret); <a name="l00433"></a>00433 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>>1) printf(<span class="stringliteral">"imgReadHeader() return message := %s\n"</span>, img-><a class="code" href="structIMG.html#ac92254d675eb4771d22cdd4523ccb19c">statmsg</a>); <a name="l00434"></a>00434 <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span>(ret); <a name="l00435"></a>00435 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>>3) <a class="code" href="img_8c.html#a32edd1b78039f6cc22b7bbe413aa3a56">imgInfo</a>(img); <a name="l00436"></a>00436 <span class="comment">/* Allocate memory for one frame */</span> <a name="l00437"></a>00437 img-><a class="code" href="structIMG.html#a77605d4aa64b86294590c79e9a761b15">dimt</a>=1; <a name="l00438"></a>00438 ret=<a class="code" href="img_8c.html#a9b2670da9c7685e6d53058cdf1db1199">imgAllocate</a>(img, img-><a class="code" href="structIMG.html#a9c04780b47e6a627a2b700b76352c3fc">dimz</a>, img-><a class="code" href="structIMG.html#aa17e87812503d3c142f31c08abcbf79d">dimy</a>, img-><a class="code" href="structIMG.html#a0818b82059710627a94282a793ff7030">dimx</a>, img-><a class="code" href="structIMG.html#a77605d4aa64b86294590c79e9a761b15">dimt</a>); <a name="l00439"></a>00439 <span class="keywordflow">if</span>(ret) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55bafbe470f6663c748e405bf509d2bb57bb">STATUS_NOMEMORY</a>; <a name="l00440"></a>00440 } <a name="l00441"></a>00441 <a name="l00442"></a>00442 <span class="comment">/*</span> <a name="l00443"></a>00443 <span class="comment"> * Read the frame data and corresponding information like frame time</span> <a name="l00444"></a>00444 <span class="comment"> * if available </span> <a name="l00445"></a>00445 <span class="comment"> */</span> <a name="l00446"></a>00446 <span class="keywordflow">switch</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>) { <a name="l00447"></a>00447 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a12597eb3c08c3aa66f06d4b15294a644">IMG_E7</a>: <a name="l00448"></a>00448 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a3c7938cecd0e773de01ce1cb6dfaf4f3">IMG_E7_2D</a>: <a name="l00449"></a>00449 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#aa0111a4761ce5db222757daff1f48dfe">IMG_POLARMAP</a>: <a name="l00450"></a>00450 ret=<a class="code" href="img__e7_8c.html#a295fc06d4e06f7b6bbd094dbce7be8c7">imgReadEcat7Frame</a>(fname, frame_to_read, img, frame_index); <a name="l00451"></a>00451 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>>1) printf(<span class="stringliteral">"imgReadEcat7Frame() return value := %d\n"</span>, ret); <a name="l00452"></a>00452 <span class="keywordflow">break</span>; <a name="l00453"></a>00453 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a7d502c1293f35b4392badbb9491ee95e">IMG_E63</a>: <a name="l00454"></a>00454 ret=<a class="code" href="img__e63_8c.html#af1d9d568d55cc463db9fb81f36b0f737">imgReadEcat63Frame</a>(fname, frame_to_read, img, frame_index); <a name="l00455"></a>00455 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>>1) printf(<span class="stringliteral">"imgReadEcat63Frame() return value := %d\n"</span>, ret); <a name="l00456"></a>00456 <span class="keywordflow">break</span>; <a name="l00457"></a>00457 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a9145a82aa093b7e52a693ec5c38094ef">IMG_ANA</a>: <a name="l00458"></a>00458 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a38e113a0101e5e683653263ddabe0fc8">IMG_ANA_L</a>: <a name="l00459"></a>00459 ret=<a class="code" href="img__ana_8c.html#a9094bdc56d1564b7ad412f0dfc114d9b">imgReadAnalyzeFrame</a>(fname, frame_to_read, img, frame_index); <a name="l00460"></a>00460 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>>1) printf(<span class="stringliteral">"imgReadAnalyzeFrame() return value := %d\n"</span>, ret); <a name="l00461"></a>00461 <span class="keywordflow">break</span>; <a name="l00462"></a>00462 <span class="keywordflow">default</span>: <a name="l00463"></a>00463 ret=<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baef2b214bb9b6ccc009f27c76e81b3fef">STATUS_UNSUPPORTED</a>; <a name="l00464"></a>00464 } <a name="l00465"></a>00465 <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, ret); <a name="l00466"></a>00466 <span class="keywordflow">return</span> ret; <a name="l00467"></a>00467 } <a name="l00468"></a>00468 <span class="comment">/*****************************************************************************/</span> <a name="l00469"></a>00469 <a name="l00470"></a>00470 <span class="comment">/*****************************************************************************/</span> <a name="l00493"></a><a class="code" href="imgfile_8h.html#a4886494cd98580ed8e6a0406be28eedf">00493</a> <span class="keywordtype">int</span> <a class="code" href="imgfile_8c.html#a4886494cd98580ed8e6a0406be28eedf">imgWriteFrame</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fname, <span class="keywordtype">int</span> frame_to_write, <a class="code" href="structIMG.html">IMG</a> *img, <span class="keywordtype">int</span> frame_index) { <a name="l00494"></a>00494 <span class="keywordtype">int</span> ret=0; <a name="l00495"></a>00495 <a name="l00496"></a>00496 <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>) printf(<span class="stringliteral">"\nimgWriteFrame(%s, %d, *img, %d)\n"</span>, <a name="l00497"></a>00497 fname, frame_to_write, frame_index); <a name="l00498"></a>00498 <a name="l00499"></a>00499 <span class="comment">/*</span> <a name="l00500"></a>00500 <span class="comment"> * Check the input </span> <a name="l00501"></a>00501 <span class="comment"> */</span> <a name="l00502"></a>00502 <span class="keywordflow">if</span>(fname==NULL) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00503"></a>00503 <span class="keywordflow">if</span>(img==NULL) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00504"></a>00504 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>!=<a class="code" href="img_8h.html#a3117b1b0649d3761dcda1395202129e5">IMG_STATUS_OCCUPIED</a>) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00505"></a>00505 <span class="keywordflow">if</span>(frame_to_write<0) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00506"></a>00506 <span class="keywordflow">if</span>(frame_index<0 || frame_index>=img-><a class="code" href="structIMG.html#a77605d4aa64b86294590c79e9a761b15">dimt</a>) <span class="keywordflow">return</span> <a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf8f3d89c25483639f6cbce4f6b08c1f8">STATUS_FAULT</a>; <a name="l00507"></a>00507 <a name="l00508"></a>00508 <a name="l00509"></a>00509 <span class="comment">/*</span> <a name="l00510"></a>00510 <span class="comment"> * Call separate function for each supported file format</span> <a name="l00511"></a>00511 <span class="comment"> */</span> <a name="l00512"></a>00512 <a class="code" href="imgfile_8c.html#abe83b47e7d8d600d579c581b6e7209bd">imgFormatFromFName</a>(img, fname); <a name="l00513"></a>00513 <span class="keywordflow">switch</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>) { <a name="l00514"></a>00514 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a12597eb3c08c3aa66f06d4b15294a644">IMG_E7</a>: <a name="l00515"></a>00515 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a3c7938cecd0e773de01ce1cb6dfaf4f3">IMG_E7_2D</a>: <a name="l00516"></a>00516 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#aa0111a4761ce5db222757daff1f48dfe">IMG_POLARMAP</a>: <a name="l00517"></a>00517 ret=<a class="code" href="img__e7_8c.html#aa4cebb077c1ca5e7fb6291e4f76f100c">imgWriteEcat7Frame</a>(fname, frame_to_write, img, frame_index); <a name="l00518"></a>00518 <span class="keywordflow">break</span>; <a name="l00519"></a>00519 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a7d502c1293f35b4392badbb9491ee95e">IMG_E63</a>: <a name="l00520"></a>00520 ret=<a class="code" href="img__e63_8c.html#a754e860541649ecc46986ba3d318e435">imgWriteEcat63Frame</a>(fname, frame_to_write, img, frame_index); <a name="l00521"></a>00521 <span class="keywordflow">break</span>; <a name="l00522"></a>00522 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a9145a82aa093b7e52a693ec5c38094ef">IMG_ANA</a>: <a name="l00523"></a>00523 <span class="keywordflow">case</span> <a class="code" href="img_8h.html#a38e113a0101e5e683653263ddabe0fc8">IMG_ANA_L</a>: <a name="l00524"></a>00524 ret=<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baef2b214bb9b6ccc009f27c76e81b3fef">STATUS_UNSUPPORTED</a>; <a name="l00525"></a>00525 <span class="comment">/* Not supported because would require global min&max values</span> <a name="l00526"></a>00526 <span class="comment"> * if saved in short ints which is now the only possibility</span> <a name="l00527"></a>00527 <span class="comment"> * ret=imgWriteAnaFrame(fname, frame_to_write, img, frame_index);</span> <a name="l00528"></a>00528 <span class="comment"> */</span> <a name="l00529"></a>00529 <span class="keywordflow">break</span>; <a name="l00530"></a>00530 <span class="keywordflow">default</span>: <a name="l00531"></a>00531 ret=<a class="code" href="img_8h.html#a06fc87d81c62e9abb8790b6e5713c55baef2b214bb9b6ccc009f27c76e81b3fef">STATUS_UNSUPPORTED</a>; <a name="l00532"></a>00532 } <a name="l00533"></a>00533 <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(img, ret); <a name="l00534"></a>00534 <span class="keywordflow">return</span> ret; <a name="l00535"></a>00535 } <a name="l00536"></a>00536 <span class="comment">/*****************************************************************************/</span> <a name="l00537"></a>00537 <a name="l00538"></a>00538 <span class="comment">/*****************************************************************************/</span> <a name="l00547"></a><a class="code" href="imgfile_8h.html#abe83b47e7d8d600d579c581b6e7209bd">00547</a> <span class="keywordtype">void</span> <a class="code" href="imgfile_8c.html#abe83b47e7d8d600d579c581b6e7209bd">imgFormatFromFName</a>(<a class="code" href="structIMG.html">IMG</a> *img, <span class="keyword">const</span> <span class="keywordtype">char</span> *fname) { <a name="l00548"></a>00548 <span class="keywordtype">char</span> *cptr=NULL; <a name="l00549"></a>00549 <a name="l00550"></a>00550 <span class="keywordflow">if</span>(img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>!=<a class="code" href="img_8h.html#a3aea8253aaffd2e73cf8641661f6a459">IMG_UNKNOWN</a> && img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>>0) <span class="keywordflow">return</span>; <a name="l00551"></a>00551 img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>=<a class="code" href="img_8h.html#a12597eb3c08c3aa66f06d4b15294a644">IMG_E7</a>; <span class="comment">/* default */</span> <a name="l00552"></a>00552 <span class="comment">/* get extension */</span> <a name="l00553"></a>00553 cptr=strrchr(fname, <span class="charliteral">'.'</span>); <span class="keywordflow">if</span>(cptr!=NULL) cptr++; <a name="l00554"></a>00554 <span class="keywordflow">if</span>(cptr!=NULL) { <a name="l00555"></a>00555 <span class="keywordflow">if</span>(strcasecmp(cptr, <span class="stringliteral">"hdr"</span>)==0) { img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>=<a class="code" href="img_8h.html#a9145a82aa093b7e52a693ec5c38094ef">IMG_ANA</a>; <span class="keywordflow">return</span>;} <a name="l00556"></a>00556 <span class="keywordflow">if</span>(strcasecmp(cptr, <span class="stringliteral">"polmap"</span>)==0) { img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>=<a class="code" href="img_8h.html#aa0111a4761ce5db222757daff1f48dfe">IMG_POLARMAP</a>; <span class="keywordflow">return</span>;} <a name="l00557"></a>00557 <span class="keywordflow">if</span>(strcasecmp(cptr, <span class="stringliteral">"img"</span>)==0 || <a name="l00558"></a>00558 strcasecmp(cptr, <span class="stringliteral">"scn"</span>)==0 || <a name="l00559"></a>00559 strcasecmp(cptr, <span class="stringliteral">"nrm"</span>)==0 || <a name="l00560"></a>00560 strcasecmp(cptr, <span class="stringliteral">"atn"</span>)==0) { <a name="l00561"></a>00561 img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>=<a class="code" href="img_8h.html#a7d502c1293f35b4392badbb9491ee95e">IMG_E63</a>; <span class="keywordflow">return</span>;} <a name="l00562"></a>00562 } <span class="keywordflow">else</span> { <span class="comment">/* no extension at all */</span> <a name="l00563"></a>00563 img-><a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>=<a class="code" href="img_8h.html#a9145a82aa093b7e52a693ec5c38094ef">IMG_ANA</a>; <a name="l00564"></a>00564 } <a name="l00565"></a>00565 } <a name="l00566"></a>00566 <span class="comment">/*****************************************************************************/</span> <a name="l00567"></a>00567 <a name="l00568"></a>00568 <span class="comment">/*****************************************************************************/</span> </pre></div></div> </div> <hr class="footer"/><address class="footer"><small>Generated on Mon Aug 8 2011 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>