1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
#/*##########################################################################
# Copyright (C) 2001-2013 European Synchrotron Radiation Facility
#
# PyHST2
# European Synchrotron Radiation Facility, Grenoble,France
#
# PyHST2 is developed at
# the ESRF by the Scientific Software staff.
# Principal author for PyHST2: Alessandro Mirone.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# PyHST2 is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# PyHST2; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307, USA.
#
# PyHST2 follows the dual licensing model of Trolltech's Qt and Riverbank's PyQt
# and cannot be used as a free plugin for a non-free program.
#
# Please contact the ESRF industrial unit (industry@esrf.fr) if this license
# is a problem for you.
#############################################################################*/
#include<semaphore.h>
#define H5Dopen_vers 1
#include<hdf5.h>
#define LowByteFirst 1
#define HighByteFirst 0
#define UnsignedShort 0
#define FloatValue 1
#define SignedInteger 2
int byteorder ( void );
char trimma(char **pos, char **pos2) ;
void prereadEdfHeader( int *sizeImage ,
int *byteorder ,
int *datatype ,
long int *hsize ,
int *Dim_1 ,
int *Dim_2 ,
char *filename,
char *CUR_NAME,
float *current
) ;
void prereadEdfHeader_restrained( int *start_2 ,
int *real_2 ,
char *filename
) ;
void write_data_to_edf_restrained( float *SLICE, int num_y,int num_x,
int start_y, int real_num_y,
const char * nomeout );
void extended_fread( char *ptr, /* memory to write in */
int size_of_block,
int ndims ,
int *dims ,
int *strides ,
FILE *stream ) ;
void read_data_from_edf( char * filename,
float *dataptr , // target_float
char *buffer , // work buffer
int filedatatype, //
int rotation_vertical,
long int headerSize,
long int pos0 , long int pos1 ,
long int size0 , long int size1,
int sizeofdatatype,
int Dim_2,
int Dim_1,
int filebyteorder,
int binning,
sem_t * semaforo
);
void read_data_from_h5( char * filename,
char * dsname,
int nproj,
float *target , // target_float
long int pos0 , long int pos1 ,
long int size0 , long int size1,
int rotation_vertical,
int binning,
int multiplo,
float threshold,
float *background
);
void read_projSequence_from_h5( char * filename,
char * dsname,
int Ninterval,
int *nproj_intervals,
float *target , // target_float
long int pos0 , long int pos1 ,
long int size0 , long int size1,
int rotation_vertical,
int binning,
hid_t *file,
hid_t *dataset,
hid_t *dataset_current,
float *bptr
) ;
void read_data_from_edf_eli( char * filename,
float *dataptr , // target_float
int filedatatype, //
int rotation_vertical,
long int headerSize,
long int pos0 , long int pos1 ,
long int size0 , long int size1,
int sizeofdatatype,
int Dim_2, int Dim_1,
int filebyteorder,
int binning,
int iread,
float DZPERPROJ,
float *Ddark,
int correct_ff,
float *ff_infos,
float **FFs,
int doubleffcorrection,
int takelog,
float *ffcorr,
float *currents,
float curr,
sem_t * semaforo
);
void read_data_from_h5_eli( char * filename,
char * dsname,
int nproj,
float *target , // target_float
long int pos0 , long int pos1 ,
long int size0 , long int size1,
int rotation_vertical,
int binning,
float DZPERPROJ,
float *Ddark,
int correct_ff,
float *ff_infos,
float **FFs,
int doubleffcorrection,
int takelog,
float *ffcorr,
hid_t *file,
hid_t *dataset,
hid_t *dataset_current
) ;
void write_data_to_edf( float *SLICE, int num_y,int num_x, const char * nomeout ) ;
void write_add_data_to_edf( float *SLICE, int num_y,int num_x, char * nomeout,
int firstline, int nlines) ;
#ifndef EDF_TYPEFUNC_DECLARED
#define EDF_TYPEFUNC_DECLARED
//Typedef for plugins
typedef void (*write_data_to_edf_func)( float *, int ,int , char *) ;
#endif
|