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_checkidc.c File Reference

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

Go to the source code of this file.


Functions

void THD_check_idcodes (THD_sessionlist *ssl)

Function Documentation

void THD_check_idcodes THD_sessionlist   ssl
 

Definition at line 16 of file thd_checkidc.c.

References DSET_HEADNAME, THD_session::dsset, DUPLICATE_DSETS, ENTRY, FIRST_VIEW_TYPE, free, ISVALID_DSET, ISVALID_SESSIONLIST, LAST_VIEW_TYPE, malloc, THD_session::num_dsset, THD_sessionlist::num_sess, and THD_sessionlist::ssar.

Referenced by AFNI_read_inputs().

00017 {
00018    int iss , idd,jdd , ivv , dsnum , nd ;
00019    THD_session * sess ;
00020    THD_3dim_dataset * dset , ** dsl ;
00021 
00022 ENTRY("THD_check_idcodes") ;
00023 
00024    /*-- sanity check --*/
00025 
00026    if( ! ISVALID_SESSIONLIST(ssl) || ssl->num_sess <= 0 ) EXRETURN ;
00027 
00028    /*-- count number of datasets --*/
00029 
00030    for( dsnum=iss=0 ; iss < ssl->num_sess ; iss++ ){
00031       sess = ssl->ssar[iss] ;
00032       for( idd=0 ; idd < sess->num_dsset ; idd++ ){
00033          for( ivv=FIRST_VIEW_TYPE ; ivv <= LAST_VIEW_TYPE ; ivv++ ){
00034             dset = sess->dsset[idd][ivv] ;
00035             if( ISVALID_DSET(dset) ) dsnum++ ;
00036          }
00037       }
00038    }
00039 
00040    /*-- make list of datasets --*/
00041 
00042    dsl = (THD_3dim_dataset **) malloc( sizeof(THD_3dim_dataset *) * dsnum ) ;
00043 
00044    for( nd=iss=0 ; iss < ssl->num_sess ; iss++ ){
00045       sess = ssl->ssar[iss] ;
00046       for( idd=0 ; idd < sess->num_dsset ; idd++ ){
00047          for( ivv=FIRST_VIEW_TYPE ; ivv <= LAST_VIEW_TYPE ; ivv++ ){
00048             dset = sess->dsset[idd][ivv] ;
00049             if( ISVALID_DSET(dset) ) dsl[nd++] = dset ;
00050          }
00051       }
00052    }
00053 
00054    /*-- check list for duplicates --*/
00055 
00056    for( iss=idd=0 ; idd < dsnum-1 ; idd++ ){
00057      nd = 0 ;
00058      for( jdd=idd+1 ; jdd < dsnum ; jdd++ ){
00059        if( DUPLICATE_DSETS(dsl[idd],dsl[jdd]) ){ /* 20 Dec 2001: change EQUIV_IDCODES() to DUPLICATE_DSETS() */
00060          fprintf(stderr,
00061                  "\n*** WARNING: Identical ID codes in %s and %s",
00062                  DSET_HEADNAME(dsl[idd]) , DSET_HEADNAME(dsl[jdd]) ) ;
00063          iss++ ;
00064        }
00065      }
00066    }
00067 
00068    if( iss > 0 ) fprintf(stderr,"\n") ;
00069 
00070    free(dsl) ; EXRETURN ;
00071 }
 

Powered by Plone

This site conforms to the following standards: