Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

thd_initalldir.c File Reference

#include "mrilib.h"
#include "thd.h"

Go to the source code of this file.


Functions

XtPointer_arrayTHD_init_alldir_datablocks (char *dirname)

Function Documentation

XtPointer_array* THD_init_alldir_datablocks char *    dirname
 

Definition at line 15 of file thd_initalldir.c.

References ADDTO_XTARR, THD_string_array::ar, DATASET_HEADER_SUFFIX, DESTROY_SARR, FILENAME_TO_PREFIX, FREE_DBARR, INIT_XTARR, THD_datablock_array::num, THD_string_array::num, THD_extract_regular_files(), THD_get_all_filenames(), THD_init_prefix_datablocks(), and THD_MAX_NAME.

Referenced by THD_init_session().

00016 {
00017    XtPointer_array     * super_array ;
00018    THD_datablock_array * dblk_arr ;
00019    THD_string_array    * flist , * rlist ;
00020    char prefix[THD_MAX_NAME] ;
00021    char * fname ;
00022    int ifile ;
00023 
00024    /* initialize answer */
00025 
00026    INIT_XTARR( super_array ) ;
00027 
00028    /* get list of all regular files in the directory */
00029 
00030    flist = THD_get_all_filenames( dirname ) ;
00031    if( flist == NULL || flist->num <= 0 ){
00032       DESTROY_SARR(flist) ;
00033       return super_array ;
00034    }
00035 
00036    rlist = THD_extract_regular_files( flist ) ;
00037    DESTROY_SARR(flist) ;
00038    if( rlist == NULL || rlist->num <= 0 ){
00039       DESTROY_SARR(rlist) ;
00040       return super_array ;
00041    }
00042 
00043    /* for each header/prefix combination
00044       in the list, try to get all datablocks within */
00045 
00046    for( ifile=0 ; ifile < rlist->num ; ifile++ ){
00047 
00048       fname = rlist->ar[ifile] ;
00049       if( fname == NULL ||
00050           strstr(fname,DATASET_HEADER_SUFFIX) == NULL ) continue ;
00051 
00052       FILENAME_TO_PREFIX(fname,prefix) ;
00053       if( strlen(prefix) == 0 ) continue ;
00054 
00055       dblk_arr = THD_init_prefix_datablocks( prefix , rlist ) ;
00056 
00057       if( dblk_arr != NULL && dblk_arr->num > 0 ){
00058          ADDTO_XTARR(super_array,dblk_arr) ;       /* store in output */
00059       } else {
00060          FREE_DBARR(dblk_arr) ;                    /* throw it away */
00061       }
00062 
00063    }
00064 
00065    /* done! */
00066 
00067    DESTROY_SARR(rlist) ;
00068    return super_array ;
00069 }
 

Powered by Plone

This site conforms to the following standards: