Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > ce1f17e7ec5e62f35dbe9f064c5f74d7 > files > 746

libtpcimgio-devel-1.5.10-4.fc15.i686.rpm

<!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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;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&#160;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&amp;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">    &quot;New&quot; 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&amp;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&amp;written in ECAT7 format.</span>
<a name="l00068"></a>00068 <span class="comment">    Scanner (system_type) is read&amp;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 &#39;_fileFormat&#39; field set as &#39;IMG_ANA_L&#39; </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 &quot;if(timezone == -7200) img.scanStart += 10800;&quot;</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 &lt;stdio.h&gt;</span>
<a name="l00160"></a>00160 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00161"></a>00161 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
<a name="l00162"></a>00162 <span class="preprocessor">#include &lt;math.h&gt;</span>
<a name="l00163"></a>00163 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00164"></a>00164 <span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00165"></a>00165 <span class="comment">/*****************************************************************************/</span>
<a name="l00166"></a>00166 <span class="preprocessor">#include &quot;petc99.h&quot;</span>
<a name="l00167"></a>00167 <span class="preprocessor">#include &quot;swap.h&quot;</span>
<a name="l00168"></a>00168 <span class="preprocessor">#include &quot;halflife.h&quot;</span>
<a name="l00169"></a>00169 <span class="preprocessor">#include &quot;<a class="code" href="substitutions_8h.html">substitutions.h</a>&quot;</span>
<a name="l00170"></a>00170 <span class="comment">/*****************************************************************************/</span>
<a name="l00171"></a>00171 <span class="preprocessor">#include &quot;<a class="code" href="img_8h.html">include/img.h</a>&quot;</span>
<a name="l00172"></a>00172 <span class="preprocessor">#include &quot;<a class="code" href="ecat63_8h.html">include/ecat63.h</a>&quot;</span>
<a name="l00173"></a>00173 <span class="preprocessor">#include &quot;<a class="code" href="ecat7_8h.html">include/ecat7.h</a>&quot;</span>
<a name="l00174"></a>00174 <span class="preprocessor">#include &quot;<a class="code" href="analyze_8h.html">include/analyze.h</a>&quot;</span>
<a name="l00175"></a>00175 <span class="preprocessor">#include &quot;<a class="code" href="imgmax_8h.html">include/imgmax.h</a>&quot;</span>
<a name="l00176"></a>00176 <span class="preprocessor">#include &quot;<a class="code" href="imgdecay_8h.html">include/imgdecay.h</a>&quot;</span>
<a name="l00177"></a>00177 <span class="preprocessor">#include &quot;<a class="code" href="sif_8h.html">include/sif.h</a>&quot;</span>
<a name="l00178"></a>00178 <span class="preprocessor">#include &quot;<a class="code" href="imgfile_8h.html">include/imgfile.h</a>&quot;</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">&quot;imgRead(%s, *img)\n&quot;</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-&gt;<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-&gt;<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-&gt;<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">&#39;.&#39;</span>);
<a name="l00206"></a>00206   <span class="keywordflow">if</span>(cptr!=NULL &amp;&amp; (strcmp(cptr, <span class="stringliteral">&quot;.img&quot;</span>)==0 || strcmp(cptr, <span class="stringliteral">&quot;.hdr&quot;</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-&gt;<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&gt;0) {
<a name="l00215"></a>00215       img-&gt;<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">&quot;%s identified as supported Analyze 7.5 format.\n&quot;</span>,
<a name="l00218"></a>00218       fname);
<a name="l00219"></a>00219     img-&gt;<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">&quot;rb&quot;</span>)) == NULL) {
<a name="l00227"></a>00227     img-&gt;<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, &amp;ecat7_main_header);
<a name="l00231"></a>00231   <span class="keywordflow">if</span>(ret) {fclose(fp); img-&gt;<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>(&amp;ecat7_main_header)==0) {
<a name="l00237"></a>00237       fclose(fp); img-&gt;<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">&quot;%s identified as supported ECAT 7.x %s format\n&quot;</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">&quot;imgReadEcat7()=%d\n&quot;</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, &amp;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">&quot;%s identified as supported ECAT 6.3 %s format\n&quot;</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">&quot;ecat63ReaddAllToImg: %s\n&quot;</span>, <a class="code" href="ecat63_8h.html#a1a4fc8f123b2ef83d928b63743aa49d9">ecat63errmsg</a>);
<a name="l00256"></a>00256         <span class="keywordflow">if</span>(ret==6) img-&gt;<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-&gt;<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-&gt;<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-&gt;<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">&quot;imgWrite(%s, *img)\n&quot;</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-&gt;<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-&gt;<a class="code" href="structIMG.html#a0d9199e1c3c4bd94d56eb30e421b309c">type</a>!=<a class="code" href="img_8h.html#a04e835f7aec92fcc1d4ecf37e0dd2e9c">IMG_TYPE_RAW</a> &amp;&amp;
<a name="l00286"></a>00286      img-&gt;<a class="code" href="structIMG.html#a0d9199e1c3c4bd94d56eb30e421b309c">type</a>!=<a class="code" href="img_8h.html#ae8b5bb16b84adcbcd2bba3e10a36d62d">IMG_TYPE_IMAGE</a> &amp;&amp;
<a name="l00287"></a>00287      img-&gt;<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-&gt;<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-&gt;<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-&gt;<a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>==<a class="code" href="img_8h.html#a9145a82aa093b7e52a693ec5c38094ef">IMG_ANA</a> || img-&gt;<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-&gt;<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-&gt;<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">&quot;\nimgReadHeader(%s, *img)\n&quot;</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-&gt;<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)&gt;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&#39;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&#39;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">&quot;\nimgReadFrame(%s, %d, *img, %d)\n&quot;</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-&gt;<a class="code" href="structIMG.html#a5b8bdc61088df4a3c3f89c31895b14a4">status</a>!=<a class="code" href="img_8h.html#a7aeab2fb426b858c78ec515aaa8f0a67">IMG_STATUS_INITIALIZED</a> &amp;&amp; img-&gt;<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&lt;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&lt;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&gt;0, then there must be sufficient memory allocated for it */</span>
<a name="l00406"></a>00406   <span class="keywordflow">if</span>(frame_index&gt;0) {
<a name="l00407"></a>00407     <span class="keywordflow">if</span>(img-&gt;<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&gt;img-&gt;<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>(&amp;test_img);
<a name="l00417"></a>00417   <span class="keywordflow">if</span>(img-&gt;<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, &amp;test_img); <a class="code" href="img_8c.html#ad124d2d496934d677156cc8779a1e567">imgSetStatus</a>(&amp;test_img, ret);
<a name="l00419"></a>00419     <span class="keywordflow">if</span>(<a class="code" href="img_8h.html#a0d66ed136e5992b7b00ce6f43bad1439">IMG_TEST</a>&gt;1) printf(<span class="stringliteral">&quot;imgReadHeader() return message := %s\n&quot;</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>&gt;3) <a class="code" href="img_8c.html#a32edd1b78039f6cc22b7bbe413aa3a56">imgInfo</a>(&amp;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-&gt;<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-&gt;<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-&gt;<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-&gt;<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-&gt;<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>(&amp;test_img); <span class="keywordflow">if</span>(ret&gt;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>&gt;1) printf(<span class="stringliteral">&quot;imgReadHeader() return message := %s\n&quot;</span>, img-&gt;<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>&gt;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-&gt;<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-&gt;<a class="code" href="structIMG.html#a9c04780b47e6a627a2b700b76352c3fc">dimz</a>, img-&gt;<a class="code" href="structIMG.html#aa17e87812503d3c142f31c08abcbf79d">dimy</a>, img-&gt;<a class="code" href="structIMG.html#a0818b82059710627a94282a793ff7030">dimx</a>, img-&gt;<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-&gt;<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>&gt;1) printf(<span class="stringliteral">&quot;imgReadEcat7Frame() return value := %d\n&quot;</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>&gt;1) printf(<span class="stringliteral">&quot;imgReadEcat63Frame() return value := %d\n&quot;</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>&gt;1) printf(<span class="stringliteral">&quot;imgReadAnalyzeFrame() return value := %d\n&quot;</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">&quot;\nimgWriteFrame(%s, %d, *img, %d)\n&quot;</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-&gt;<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&lt;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&lt;0 || frame_index&gt;=img-&gt;<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-&gt;<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&amp;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-&gt;<a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>!=<a class="code" href="img_8h.html#a3aea8253aaffd2e73cf8641661f6a459">IMG_UNKNOWN</a> &amp;&amp; img-&gt;<a class="code" href="structIMG.html#a5e25c84c23270f974f1eb7c32a01bac7">_fileFormat</a>&gt;0) <span class="keywordflow">return</span>;
<a name="l00551"></a>00551   img-&gt;<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">&#39;.&#39;</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">&quot;hdr&quot;</span>)==0) { img-&gt;<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">&quot;polmap&quot;</span>)==0) { img-&gt;<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">&quot;img&quot;</span>)==0 ||
<a name="l00558"></a>00558        strcasecmp(cptr, <span class="stringliteral">&quot;scn&quot;</span>)==0 ||
<a name="l00559"></a>00559        strcasecmp(cptr, <span class="stringliteral">&quot;nrm&quot;</span>)==0 ||
<a name="l00560"></a>00560        strcasecmp(cptr, <span class="stringliteral">&quot;atn&quot;</span>)==0) {
<a name="l00561"></a>00561       img-&gt;<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-&gt;<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&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>