Doxygen Source Code Documentation
thd_opendset.c File Reference
#include "mrilib.h"
#include "thd.h"
Go to the source code of this file.
Defines | |
#define | CHECK_FOR_DATA(fn) |
Functions | |
THD_3dim_dataset * | THD_open_one_dataset (char *pathname) |
int | THD_is_dataset (char *sname, char *pname, int vt) |
char * | THD_dataset_headname (char *sname, char *pname, int vt) |
Define Documentation
|
Value: do{ if( fsize <= 0 ){ \ if( fsize == 0 ) \ fprintf(stderr,"** Can't read ANY data from file '%s'\n",(fn)); \ RETURN(NULL) ; \ }} while(0) Definition at line 11 of file thd_opendset.c. Referenced by THD_open_one_dataset(). |
Function Documentation
|
Definition at line 199 of file thd_opendset.c. References ADN_directory_name, ADN_none, ADN_prefix, ADN_view_type, THD_3dim_dataset::dblk, THD_datablock::diskptr, EDIT_dset_items(), EDIT_empty_copy(), ENTRY, FIRST_VIEW_TYPE, THD_diskptr::header_name, LAST_VIEW_TYPE, malloc, RETURN, and THD_delete_3dim_dataset(). Referenced by THD_open_3dcalc().
00200 { 00201 THD_3dim_dataset *dset ; 00202 char *str ; int ll ; 00203 00204 ENTRY("THD_dataset_headname") ; 00205 00206 if( pname == NULL ) RETURN(NULL) ; 00207 00208 dset = EDIT_empty_copy(NULL) ; 00209 EDIT_dset_items( dset , ADN_prefix , pname , ADN_none ) ; 00210 00211 if( sname != NULL ) 00212 EDIT_dset_items( dset , ADN_directory_name , sname , ADN_none ) ; 00213 00214 if( vt >= FIRST_VIEW_TYPE && vt <= LAST_VIEW_TYPE ) 00215 EDIT_dset_items( dset , ADN_view_type , vt , ADN_none ) ; 00216 00217 ll = strlen(dset->dblk->diskptr->header_name) + 1 ; 00218 str = (char *) malloc(sizeof(char)*ll ) ; 00219 strcpy( str , dset->dblk->diskptr->header_name ) ; 00220 00221 THD_delete_3dim_dataset( dset , False ) ; 00222 RETURN(str) ; 00223 } |
|
Definition at line 164 of file thd_opendset.c. References ADN_directory_name, ADN_none, ADN_prefix, ADN_view_type, THD_3dim_dataset::dblk, THD_datablock::diskptr, EDIT_dset_items(), EDIT_empty_copy(), ENTRY, FIRST_VIEW_TYPE, THD_diskptr::header_name, LAST_VIEW_TYPE, RETURN, THD_delete_3dim_dataset(), and THD_is_file(). Referenced by THD_open_3dcalc().
00165 { 00166 THD_3dim_dataset *dset ; 00167 int ii , vv ; 00168 00169 ENTRY("THD_is_dataset") ; 00170 00171 if( pname == NULL ) RETURN(-1) ; 00172 00173 dset = EDIT_empty_copy(NULL) ; 00174 EDIT_dset_items( dset , ADN_prefix , pname , ADN_none ) ; 00175 00176 if( sname != NULL ) 00177 EDIT_dset_items( dset , ADN_directory_name , sname , ADN_none ) ; 00178 00179 if( vt >= FIRST_VIEW_TYPE && vt <= LAST_VIEW_TYPE ){ 00180 EDIT_dset_items( dset , ADN_view_type , vt , ADN_none ) ; 00181 ii = THD_is_file(dset->dblk->diskptr->header_name); 00182 THD_delete_3dim_dataset(dset,False) ; 00183 if( ii ) RETURN(vt) ; 00184 RETURN(-1) ; 00185 } 00186 00187 for( vv=FIRST_VIEW_TYPE ; vv <= LAST_VIEW_TYPE ; vv++ ){ 00188 EDIT_dset_items( dset , ADN_view_type , vv , ADN_none ) ; 00189 ii = THD_is_file(dset->dblk->diskptr->header_name); 00190 if( ii ){ THD_delete_3dim_dataset(dset,False); RETURN(vv); } 00191 } 00192 00193 THD_delete_3dim_dataset( dset , False ) ; 00194 RETURN(-1) ; 00195 } |
|
Definition at line 23 of file thd_opendset.c. References CHECK_FOR_DATA, DATASET_BRICK_SUFFIX, DATASET_HEADER_SUFFIX, ENTRY, getenv(), offset, RETURN, STRING_HAS_SUFFIX, THD_3dim_from_block(), THD_filesize(), THD_init_one_datablock(), THD_is_file(), THD_MAX_NAME, THD_open_1D(), THD_open_3D(), THD_open_analyze(), THD_open_ctfmri(), THD_open_ctfsam(), THD_open_dataset(), THD_open_minc(), THD_open_mpeg(), and THD_open_nifti(). Referenced by B2F_read_opts(), BUCK_read_opts(), CALC_read_opts(), check_output_files(), get_line_opt(), get_options(), IMREG_main(), main(), output_ts_array(), read_dataset(), read_input_data(), T3D_anatomy_parent_CB(), T3D_geometry_parent_CB(), TCAT_read_opts(), THD_fetch_dataset(), THD_open_3dcalc(), THD_open_dataset(), THD_read_dvecmat(), TT_load_atlas(), VL_command_line(), write_3dtime(), write_afni_data(), write_bucket_data(), and write_ts_array().
00024 { 00025 int ii , plen ; 00026 char dirname[THD_MAX_NAME] , fullname[THD_MAX_NAME] ; 00027 THD_3dim_dataset *dset ; 00028 THD_datablock *dblk ; 00029 char *sub ; 00030 char *fname ; /* to skip directory during HEAD/BRIK search in filename */ 00031 int offset ; /* - [rickr 20 Sep 2002] */ 00032 int fsize ; /* 06 Jan 2005 */ 00033 00034 ENTRY("THD_open_one_dataset") ; 00035 00036 /*-- sanity check --*/ 00037 00038 if( pathname == NULL || 00039 (plen=strlen(pathname)) == 0 || 00040 pathname[plen-1] == '/' ) RETURN(NULL) ; 00041 00042 /*-- perhaps open the new-fangled way [22 May 2000] --*/ 00043 00044 if( getenv("AFNI_USE_THD_open_dataset") != NULL && 00045 strstr(pathname,"[") != NULL ){ 00046 00047 RETURN( THD_open_dataset(pathname) ) ; 00048 } 00049 00050 fsize = THD_filesize(pathname) ; /* 06 Jan 2005 */ 00051 if( fsize == 0 && !THD_is_file(pathname) ) fsize = -1 ; /* 31 Mar 2005 */ 00052 00053 /*-- perhaps the MINC way --*/ 00054 00055 if( STRING_HAS_SUFFIX(pathname,".mnc") ){ 00056 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */ 00057 RETURN( THD_open_minc(pathname) ) ; 00058 } 00059 00060 /*-- perhaps the ANALYZE way --*/ 00061 00062 if( STRING_HAS_SUFFIX(pathname,".hdr") ){ 00063 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */ 00064 RETURN( THD_open_analyze(pathname) ) ; 00065 } 00066 00067 /*-- perhaps the CTF way [04 Dec 2002] --*/ 00068 00069 if( STRING_HAS_SUFFIX(pathname,".mri") ){ 00070 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */ 00071 RETURN( THD_open_ctfmri(pathname) ) ; 00072 } else if( STRING_HAS_SUFFIX(pathname,".svl") ){ 00073 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */ 00074 RETURN( THD_open_ctfsam(pathname) ) ; 00075 } 00076 00077 /*-- 04 Mar 2003: allow input of .1D files --*/ 00078 00079 if( STRING_HAS_SUFFIX(pathname,".1D") ){ 00080 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */ 00081 RETURN( THD_open_1D(pathname) ) ; 00082 } else if( STRING_HAS_SUFFIX(pathname,".3D") ){ /* 21 Mar 2003 */ 00083 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */ 00084 RETURN( THD_open_3D(pathname) ) ; 00085 } 00086 00087 /*-- 28 Aug 2003: the NIFTI way! --*/ 00088 00089 if( STRING_HAS_SUFFIX(pathname,".nii") || 00090 STRING_HAS_SUFFIX(pathname,".nii.gz") || 00091 STRING_HAS_SUFFIX(pathname,".nia") ){ 00092 00093 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */ 00094 RETURN( THD_open_nifti(pathname) ) ; 00095 } 00096 00097 /*-- 03 Dec 2003: the MPEG way! --*/ 00098 00099 if( STRING_HAS_SUFFIX(pathname,".mpg") || 00100 STRING_HAS_SUFFIX(pathname,".MPG") || 00101 STRING_HAS_SUFFIX(pathname,".MPEG") || 00102 STRING_HAS_SUFFIX(pathname,".mpeg") ){ 00103 00104 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */ 00105 RETURN( THD_open_mpeg(pathname) ) ; 00106 } 00107 00108 /*-- Must be an AFNI-formatted dataset! -------------*/ 00109 /*-- find directory and last names in the pathname --*/ 00110 00111 for( ii=plen-1 ; ii >= 0 ; ii-- ) if( pathname[ii] == '/' ) break ; 00112 00113 if( ii < 0 ){ 00114 strcpy( dirname , "./" ) ; /* fake directory name */ 00115 } else { 00116 strcpy( dirname , pathname ) ; 00117 dirname[ii+1] = '\0' ; 00118 } 00119 offset = ii + 1 ; /* offset of file within pathname - rickr [20 Sep 2002] */ 00120 00121 /*-- perform surgery on the name to make it a valid .HEAD --*/ 00122 00123 strcpy( fullname , pathname ) ; 00124 fname = fullname + offset ; /* trailing filename (past directory) - rickr */ 00125 00126 /* (REPLACE) sub = strstr( fullname , DATASET_HEADER_SUFFIX ) ; * .HEAD ? */ 00127 sub = strstr( fname , DATASET_HEADER_SUFFIX ) ; /* .HEAD ? r:fname */ 00128 00129 if( sub == NULL ){ /* no! */ 00130 sub = strstr( fname , DATASET_BRICK_SUFFIX ) ; /* .BRIK ? r:fname */ 00131 00132 if( sub == NULL ){ /* no! */ 00133 ii = strlen(fullname) ; 00134 if( fullname[ii-1] != '.' ) strcat( fullname , "." ) ; /* tack .HEAD */ 00135 strcat( fullname , DATASET_HEADER_SUFFIX ) ; /* onto end */ 00136 00137 } else { /* yes! */ 00138 strcpy( sub , DATASET_HEADER_SUFFIX ) ; /* replace .BRIK with .HEAD */ 00139 } 00140 } 00141 00142 /*-- open it up? --*/ 00143 00144 fsize = THD_filesize(fullname) ; /* 06 Jan 2005 */ 00145 if( fsize == 0 && !THD_is_file(pathname) ) fsize = -1 ; /* 31 Mar 2005 */ 00146 CHECK_FOR_DATA(fullname) ; 00147 00148 dblk = THD_init_one_datablock( dirname , fullname ) ; 00149 if( dblk == NULL ) RETURN(NULL) ; 00150 00151 dset = THD_3dim_from_block( dblk ) ; 00152 RETURN(dset) ; 00153 } |