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

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

Go to the source code of this file.


Functions

THD_slist_find THD_dset_in_session (int find_type, void *target, THD_session *sess)

Function Documentation

THD_slist_find THD_dset_in_session int    find_type,
void *    target,
THD_session   sess
 

Definition at line 15 of file thd_dsetinsess.c.

References BADFIND, THD_slist_find::dset, THD_slist_find::dset_index, DSET_PREFIX, THD_session::dsset, EQUIV_IDCODES, FIND_IDCODE, FIND_NAME, FIND_PREFIX, FIRST_VIEW_TYPE, THD_3dim_dataset::idcode, ISVALID_SESSION, ISZERO_IDCODE, LAST_VIEW_TYPE, THD_session::num_dsset, THD_3dim_dataset::self_name, and THD_slist_find::view_index.

Referenced by AFNI_drive_switch_anatomy(), AFNI_drive_switch_function(), AFNI_fimmer_compute(), AFNI_rescan_session_NEW(), AFNI_rescan_session_OLD(), DRAW_finalize_dset_CB(), DSET_in_global_session(), process_NIML_Node_ROI(), and THD_dset_in_sessionlist().

00017 {
00018    int id , iv , im ;
00019    THD_3dim_dataset *dset ;
00020    THD_slist_find find ;
00021 
00022    /*-- sanity check --*/
00023 
00024    if( ! ISVALID_SESSION(sess) || target == NULL ){
00025       BADFIND(find) ; return find ;
00026    }
00027 
00028    switch( find_type ){
00029 
00030       /**** search for a name ****/
00031 
00032       case FIND_NAME:{
00033          char *target_name = (char *) target ;
00034          if( strlen(target_name) == 0 ){
00035             BADFIND(find) ; return find ;
00036          }
00037 
00038          for( id=0 ; id < sess->num_dsset ; id++ ){
00039             for( iv=FIRST_VIEW_TYPE ; iv <= LAST_VIEW_TYPE ; iv++ ){
00040                dset = sess->dsset[id][iv] ;
00041 
00042                if( dset != NULL && strcmp(dset->self_name,target_name) == 0 ){
00043                   find.dset = dset ; find.dset_index = id ; find.view_index = iv ;
00044                   return find ;
00045                }
00046             }
00047          }
00048       }
00049       break ;
00050 
00051       /**** search for a prefix ****/
00052 
00053       case FIND_PREFIX:{
00054          char *target_prefix = (char *) target ;
00055          if( strlen(target_prefix) == 0 ){
00056             BADFIND(find) ; return find ;
00057          }
00058 
00059          for( id=0 ; id < sess->num_dsset ; id++ ){
00060             for( iv=FIRST_VIEW_TYPE ; iv <= LAST_VIEW_TYPE ; iv++ ){
00061                dset = sess->dsset[id][iv] ;
00062 
00063                if( dset != NULL && strcmp(DSET_PREFIX(dset),target_prefix) == 0 ){
00064                   find.dset = dset ; find.dset_index = id ; find.view_index = iv ;
00065                   return find ;
00066                }
00067             }
00068          }
00069       }
00070       break ;
00071 
00072       /**** search for an idcode ****/
00073 
00074       case FIND_IDCODE:{
00075          MCW_idcode target_id = *((MCW_idcode *) target) ;
00076 
00077          if( ISZERO_IDCODE(target_id) ){
00078             BADFIND(find) ; return find ;
00079          }
00080 
00081          for( id=0 ; id < sess->num_dsset ; id++ ){
00082             for( iv=FIRST_VIEW_TYPE ; iv <= LAST_VIEW_TYPE ; iv++ ){
00083                dset = sess->dsset[id][iv] ;
00084 
00085                if( dset != NULL && EQUIV_IDCODES(target_id,dset->idcode) ){
00086                   find.dset = dset ; find.dset_index = id ; find.view_index = iv ;
00087                   return find ;
00088                }
00089             }
00090          }
00091       }
00092       break ;
00093 
00094    }  /* end of switch on find_type */
00095 
00096    /*-- fall thru --> not found --*/
00097 
00098    BADFIND(find) ; return find ;
00099 }
 

Powered by Plone

This site conforms to the following standards: