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  

plugout_tta.c File Reference

#include <math.h>
#include "thd_iochan.h"
#include <signal.h>

Go to the source code of this file.


Defines

#define AFNI_OPEN_CONTROL_MODE   1
#define AFNI_WAIT_CONTROL_MODE   2
#define AFNI_OPEN_DATA_MODE   3
#define AFNI_WAIT_DATA_MODE   4
#define AFNI_CONTINUE_MODE   5
#define POACKSIZE   4
#define PO_ACK_BAD(ic)   iochan_sendall( (ic) , "BAD" , POACKSIZE )
#define PO_ACK_OK(ic)   iochan_sendall( (ic) , "OK!" , POACKSIZE )
#define PO_SEND(ic, str)   iochan_sendall( (ic) , (str) , strlen((str))+1 )
#define CORONAL_NUM   38
#define SAGITTAL_NUM   18
#define AXIAL_NUM   27
#define TTAHOME   "http://varda.biophysics.mcw.edu/~cox/TTA/"

Functions

int afni_io (void)
void handle_tta (float xx, float yy, float zz)
void exit_me_baby (void)
void sigfunc (int sig)
int main (int argc, char *argv[])

Variables

char afni_host [128] = "."
char afni_name [128] = "\0"
int afni_port = 8005
int afni_verbose = 0
char * url = NULL
char * uff = NULL
float coronal_yy []
char * coronal_ff []
float sagittal_xx []
char * sagittal_ff []
float axial_zz []
char * axial_ff []

Define Documentation

#define AFNI_CONTINUE_MODE   5
 

Definition at line 172 of file plugout_tta.c.

Referenced by afni_io().

#define AFNI_OPEN_CONTROL_MODE   1
 

Je ne sais pas *

Definition at line 168 of file plugout_tta.c.

Referenced by afni_io().

#define AFNI_OPEN_DATA_MODE   3
 

Definition at line 170 of file plugout_tta.c.

Referenced by afni_io().

#define AFNI_WAIT_CONTROL_MODE   2
 

Definition at line 169 of file plugout_tta.c.

Referenced by afni_io().

#define AFNI_WAIT_DATA_MODE   4
 

Definition at line 171 of file plugout_tta.c.

Referenced by afni_io().

#define AXIAL_NUM   27
 

Definition at line 439 of file plugout_tta.c.

Referenced by handle_tta().

#define CORONAL_NUM   38
 

also, AFNI will wait until we send an acknowledgment; acknowledgment messages are always 4 (POACKSIZE) bytes long *

Definition at line 405 of file plugout_tta.c.

Referenced by handle_tta().

#define PO_ACK_BAD ic       iochan_sendall( (ic) , "BAD" , POACKSIZE )
 

Definition at line 178 of file plugout_tta.c.

#define PO_ACK_OK ic       iochan_sendall( (ic) , "OK!" , POACKSIZE )
 

Definition at line 179 of file plugout_tta.c.

#define PO_SEND ic,
str       iochan_sendall( (ic) , (str) , strlen((str))+1 )
 

Definition at line 180 of file plugout_tta.c.

#define POACKSIZE   4
 

Definition at line 176 of file plugout_tta.c.

Referenced by afni_io().

#define SAGITTAL_NUM   18
 

Definition at line 426 of file plugout_tta.c.

Referenced by handle_tta().

#define TTAHOME   "http://varda.biophysics.mcw.edu/~cox/TTA/"
 

Definition at line 455 of file plugout_tta.c.

Referenced by handle_tta().


Function Documentation

int afni_io void   
 

Definition at line 182 of file plugout_tta.c.

References AFNI_CONTINUE_MODE, afni_host, afni_name, AFNI_OPEN_CONTROL_MODE, AFNI_OPEN_DATA_MODE, afni_port, AFNI_WAIT_CONTROL_MODE, AFNI_WAIT_DATA_MODE, handle_tta(), IOCHAN_CLOSE, iochan_goodcheck(), iochan_init(), iochan_readcheck(), iochan_recv(), iochan_recvall(), iochan_sendall(), iochan_writecheck(), PO_ACK_BAD, PO_ACK_OK, and POACKSIZE.

00183 {
00184    static int afni_mode = AFNI_OPEN_CONTROL_MODE ;  /* status variable */
00185    static IOCHAN * afni_ioc = NULL ;                /* connection to AFNI */
00186    int ii ;
00187 
00188    /***************************************************************/
00189    /***** Check to see if status is OK before we proceed.     *****/
00190    /***** (if an error occurs below, afni_mode gets set to 0) *****/
00191 
00192    if( afni_mode <= 0 ) return -1 ;
00193 
00194    /***********************************************************************/
00195    /***** First time into this routine?  Open control channel to AFNI *****/
00196 
00197    if( afni_mode == AFNI_OPEN_CONTROL_MODE ){
00198       char afni_iocname[128] ;           /* will hold name of I/O channel */
00199 
00200       /** Note that the control channel is always a
00201           TCP/IP channel to port # 7955 on the AFNI host system **/
00202 
00203       if( strcmp(afni_host,".") == 0 )
00204          sprintf( afni_iocname , "tcp:%s:7955" , "localhost" ); /* make name */
00205       else
00206          sprintf( afni_iocname , "tcp:%s:7955" , afni_host ) ;  /* make name */
00207       afni_ioc = iochan_init( afni_iocname , "create" ) ;    /* create it */
00208       if( afni_ioc == NULL ){
00209          fprintf(stderr,
00210                  "Can't create control channel %s to AFNI!\n",afni_iocname) ;
00211          afni_mode = 0 ;
00212          return -1 ;
00213       }
00214       afni_mode = AFNI_WAIT_CONTROL_MODE ; /* waiting for AFNI connection */
00215       if( afni_verbose )
00216          fprintf(stderr,"AFNI control channel created\n") ;
00217    }
00218 
00219    /****************************************************/
00220    /**** Check if AFNI control channel is connected ****/
00221 
00222    if( afni_mode == AFNI_WAIT_CONTROL_MODE ){
00223       ii = iochan_writecheck( afni_ioc , 5 ) ;     /* wait at most 5 msec */
00224 
00225       /** the iochan_*check() routines return
00226              -1 for an error,
00227               0 if not ready,
00228              >0 if the I/O channel is ready. **/
00229 
00230       if( ii < 0 ){
00231          fprintf(stderr,"Control channel to AFNI failed!\a\n") ;
00232          IOCHAN_CLOSE(afni_ioc) ;
00233          afni_mode = 0 ;
00234          return -1 ;
00235       } else if( ii > 0 ){
00236          afni_mode = AFNI_OPEN_DATA_MODE ;        /* prepare to send data */
00237          if( afni_verbose )
00238             fprintf(stderr,"AFNI control channel connected\n");
00239       } else {
00240          return 0 ;                                /* try again next time */
00241       }
00242    }
00243 
00244    /**********************************************************/
00245    /**** Send control data to AFNI, and open data channel ****/
00246 
00247    if( afni_mode == AFNI_OPEN_DATA_MODE ){
00248       char afni_iocname[128] ;
00249       char afni_buf[256] ;
00250 
00251       /** decide name of data channel:
00252             use shared memory (shm:) on ".",
00253             use TCP/IP (tcp:) on other computer systems;
00254         * Note that the TCP/IP port number can be
00255            anything that isn't already in use;
00256         * Note that the shm control name (here "test_plugout")
00257            is a string that will be converted to an IPC
00258            key (in function string_to_key in iochan.c).       **/
00259 
00260       if( strcmp(afni_host,".") == 0 )
00261          strcpy( afni_iocname , "shm:test_plugout:1K+1K" ) ;
00262       else
00263          sprintf( afni_iocname , "tcp:%s:%d" , afni_host , afni_port ) ;
00264 
00265       /** write the command to AFNI into the buffer:
00266             * each command ends with a newline character,
00267                 except (possibly) the last command;
00268             * the command buffer is a C string, which ends
00269                 with an ASCII NUL character;
00270             * TT_XYZ_DELTA means 'send me T-T coordinates when they change';
00271             * DSET_IJK_DELTA means 'send me IJK voxel indices when they change';
00272             * PONAME means 'use this string for informative messages';
00273             * IOCHAN means 'use this I/O channel from now on'. **/
00274 
00275       if( afni_name[0] == '\0' ) strcpy(afni_name,"T-T-A") ;
00276 
00277       sprintf( afni_buf , "TT_XYZ_DELTA\n"
00278                           "PONAME %s\n"
00279                           "IOCHAN %s" ,
00280                afni_name , afni_iocname ) ;
00281 
00282       if( afni_verbose )
00283          fprintf(stderr,"Sending control information to AFNI\n") ;
00284 
00285       /** note that the ASCII NUL at the end of the buffer is sent **/
00286 
00287       ii = iochan_sendall( afni_ioc , afni_buf , strlen(afni_buf)+1 ) ;
00288 
00289       /** the return value is the number of bytes sent,
00290           or -1 indicating a fatal error transpired.    **/
00291 
00292       if( ii < 0 ){
00293          fprintf(stderr,"Transmission of control data to AFNI failed!\a\n") ;
00294          IOCHAN_CLOSE(afni_ioc) ;
00295          afni_mode = 0 ;
00296          return -1 ;
00297 
00298       } else {
00299 
00300          /** wait for the acknowledgment from AFNI, then close channel **/
00301 
00302          ii = iochan_recvall( afni_ioc , afni_buf , POACKSIZE ) ;
00303          IOCHAN_CLOSE(afni_ioc) ;
00304 
00305          if( ii < 0 || strncmp(afni_buf,"OK!",3) != 0 ){
00306             fprintf(stderr,"AFNI didn't like control information!\a\n") ;
00307             afni_mode = 0 ;
00308             return -1 ;
00309          }
00310 
00311          /** now open data channel to AFNI **/
00312 
00313          afni_ioc = iochan_init( afni_iocname , "create" ) ;
00314          if( afni_ioc == NULL ){
00315             fprintf(stderr,
00316                     "Can't open data channel %s to AFNI!\a\n",afni_iocname) ;
00317             afni_mode = 0 ;
00318             return -1 ;
00319          } else {
00320             afni_mode = AFNI_WAIT_DATA_MODE ;
00321             if( afni_verbose ) fprintf(stderr,"AFNI data channel created\n") ;
00322          }
00323       }
00324    }
00325 
00326    /****************************************************/
00327    /***** See if data channel is connected to AFNI *****/
00328 
00329    if( afni_mode == AFNI_WAIT_DATA_MODE ){
00330 
00331       ii = iochan_goodcheck( afni_ioc , 5 ) ;  /* wait at most 5 msec */
00332       if( ii < 0 ){
00333          fprintf(stderr,
00334                  "AFNI data channel aborted before any data was sent!\a\n") ;
00335          IOCHAN_CLOSE( afni_ioc ) ;
00336          afni_mode = 0 ;
00337          return -1 ;
00338       } else if( ii > 0 ){                     /* ready to go! */
00339          afni_mode = AFNI_CONTINUE_MODE ;
00340          if( afni_verbose ) fprintf(stderr,"AFNI data channel is open\n") ;
00341       } else {
00342          return 0 ;                            /* try again next time */
00343       }
00344    }
00345 
00346    /************************************************************/
00347    /***** The "normal" state of affairs:                   *****/
00348    /***** AFNI is connected.  See if any data is arriving. *****/
00349 
00350    if( afni_mode == AFNI_CONTINUE_MODE ){
00351       char afni_buf[256] ;
00352       float xx , yy , zz ;
00353       int   ix , jy , kz ;
00354 
00355       ii = iochan_readcheck( afni_ioc , 0 ) ;  /* don't wait */
00356 
00357       /** ii <  0  ==>  a fatal error has happened
00358           ii == 0  ==>  no data is ready
00359           ii >  0  ==>  data is ready to read from the channel **/
00360 
00361       if( ii < 0 ){
00362          fprintf(stderr,"AFNI data channel aborted!\a\n") ;
00363          IOCHAN_CLOSE(afni_ioc) ;
00364          afni_mode = 0 ;
00365          return -1 ;
00366       } else if( ii == 0 ){
00367          return 0 ;       /* no data ==> try again next time */
00368       }
00369 
00370       /** at this point, data is incoming from AFNI **/
00371 
00372       ii = iochan_recv( afni_ioc , afni_buf , 256 ) ;
00373 
00374       if( ii <= 0 ){
00375          fprintf(stderr,"AFNI data channel recv failed!\a\n") ;
00376          IOCHAN_CLOSE(afni_ioc) ;
00377          afni_mode = 0 ;
00378          return -1 ;
00379       }
00380 
00381       /** at last! "process" the data from AFNI
00382                    (in this case, just print it out) **/
00383 
00384       ii = sscanf( afni_buf , "TT_XYZ %f %f %f"   , &xx,&yy,&zz ) ;
00385 
00386       /** also, AFNI will wait until we send an acknowledgment;
00387           acknowledgment messages are always 4 (POACKSIZE) bytes long **/
00388 
00389       if( ii < 3 ){
00390          fprintf(stderr,"AFNI sent bad data: %s\a\n",afni_buf) ;
00391          PO_ACK_BAD(afni_ioc) ;
00392       } else {
00393          PO_ACK_OK(afni_ioc) ;
00394          if( afni_verbose )
00395             fprintf(stderr,"AFNI sent TT coords %9.3f %9.3f %9.3f\n",xx,yy,zz) ;
00396          handle_tta(xx,yy,zz) ;
00397       }
00398    }
00399 
00400    return 0 ;
00401 }

void exit_me_baby void   
 

Definition at line 27 of file plugout_tta.c.

References uff, and unlink.

Referenced by main().

00027                          {
00028    if( uff != NULL ) unlink(uff) ;
00029    return ;
00030 }

void handle_tta float    xx,
float    yy,
float    zz
 

Definition at line 457 of file plugout_tta.c.

References axial_ff, AXIAL_NUM, axial_zz, coronal_ff, CORONAL_NUM, coronal_yy, free, getenv(), malloc, sagittal_ff, SAGITTAL_NUM, sagittal_xx, TTAHOME, uff, and url.

Referenced by afni_io().

00458 {
00459    char * tname ;
00460    int ii,jj,kk , qqq ;
00461    static int ii_old=-1 , jj_old=-1 , kk_old=-1 ;
00462    FILE * fp ;
00463    static char nbuf[444] ;
00464    static char * ttahome ;
00465 
00466    /* create temporary URL */
00467 
00468    if( url == NULL ){
00469       tname = tempnam(NULL,"tta") ;
00470       url   = (char *) malloc(strlen(tname)+16) ;
00471       uff   = url + 5 ;
00472       strcpy(url,"file:") ; strcat(url,tname) ; strcat(url,".html") ;
00473       free(tname) ;
00474       sprintf(nbuf,"netscape -remote 'openURL(%s)'" , url ) ;
00475       fprintf(stderr,"Temporary URL file is %s\n",uff) ;
00476 
00477       ttahome = getenv( "AFNI_TTAPATH" ) ;
00478       if( ttahome == NULL ) ttahome = TTAHOME ;
00479    }
00480 
00481    /* find sagittal image */
00482 
00483    xx = fabs(xx) ;
00484    if( xx <= sagittal_xx[0] ){
00485       ii = 0 ;
00486    } else if( xx >= sagittal_xx[SAGITTAL_NUM-1] ){
00487       ii = SAGITTAL_NUM - 1 ;
00488    } else {
00489       for( ii=1 ; ii < SAGITTAL_NUM && xx > sagittal_xx[ii] ; ii++ ) ; /* nada */
00490       if( fabs(xx-sagittal_xx[ii-1]) < fabs(xx-sagittal_xx[ii]) ) ii-- ;
00491    }
00492 
00493    /* find coronal image */
00494 
00495    if( yy <= coronal_yy[0] ){
00496       jj = 0 ;
00497    } else if( yy >= coronal_yy[CORONAL_NUM-1] ){
00498       jj = CORONAL_NUM - 1 ;
00499    } else {
00500       for( jj=1 ; jj < CORONAL_NUM && yy > coronal_yy[jj] ; jj++ ) ; /* nada */
00501       if( fabs(yy-coronal_yy[jj-1]) < fabs(yy-coronal_yy[jj]) ) jj-- ;
00502    }
00503 
00504    /* find axial image */
00505 
00506    if( zz <= axial_zz[0] ){
00507       kk = 0 ;
00508    } else if( zz >= axial_zz[AXIAL_NUM-1] ){
00509       kk = AXIAL_NUM - 1 ;
00510    } else {
00511       for( kk=1 ; kk < AXIAL_NUM && zz > axial_zz[kk] ; kk++ ) ; /* nada */
00512       if( fabs(zz-axial_zz[kk-1]) < fabs(zz-axial_zz[kk]) ) kk-- ;
00513    }
00514 
00515    if( ii == ii_old && jj == jj_old && kk == kk_old ) return ;
00516 
00517    /* write out url file */
00518 
00519    fp = fopen( uff , "w" ) ;
00520    if( fp == NULL ){ fprintf(stderr,"Can't write URL file\n") ; return ; }
00521 
00522    fprintf(fp , "<HEAD>\n"
00523                 "<title>T-T Atlas Pages</title>\n"
00524                 "</HEAD>\n"
00525                 "<BODY>\n"
00526                 "<img align=middle src=\"%s%s\"><p>\n"
00527                 "<img align=middle src=\"%s%s\"><p>\n"
00528                 "<img align=middle src=\"%s%s\"><p>\n"
00529                 "</BODY>\n" ,
00530            ttahome , axial_ff[kk] ,
00531            ttahome , coronal_ff[jj] ,
00532            ttahome , sagittal_ff[ii] ) ;
00533 
00534    fclose(fp) ;
00535 
00536    if( afni_verbose )
00537       fprintf(stderr,"Axial=%s  Coronal=%s  Sagittal=%s\n",
00538               axial_ff[kk] , coronal_ff[jj] , sagittal_ff[ii] ) ;
00539 
00540    /* send message to Netscape */
00541 
00542    qqq = system(nbuf) ;
00543    if( qqq != 0 )
00544       fprintf(stderr,"Can't send command to Netscape - is it running?\n") ;
00545 
00546    ii_old = ii ; jj_old = jj ; kk_old = kk ;
00547    return ;
00548 }

int main int    argc,
char *    argv[]
 

\** File : SUMA.c

Author:
: Ziad Saad Date : Thu Dec 27 16:21:01 EST 2001
Purpose :

Input paramters :

Parameters:
param  Usage : SUMA ( )
Returns :
Returns:
Support :
See also:
OpenGL prog. Guide 3rd edition , varray.c from book's sample code
Side effects :

Definition at line 44 of file plugout_tta.c.

References afni_host, afni_io(), afni_name, afni_port, afni_verbose, argc, atexit(), exit_me_baby(), iochan_sleep(), and sigfunc().

00045 {
00046    int narg , ii ;
00047 
00048    /***** See if the pitiful user wants help *****/
00049 
00050    if( argc == 2 && strncmp(argv[1],"-help",5) == 0 ){
00051       printf("Usage: plugout_tta [options]\n"
00052              "This program connects to AFNI and receives notification\n"
00053              "whenever the user changes Talairach coordinates.\n"
00054              "It then drives Netscape to display the closest figures\n"
00055              "from the Talairach-Tournoux atlas.  Note that Netscape must\n"
00056              "be running on the same computer as this plugout, since it\n"
00057              "communicates with Netscape using a temporary URL file.\n"
00058              "Options:\n"
00059              "  -host name  Means to connect to AFNI running on the\n"
00060              "                computer 'name' using TCP/IP.  The default is to\n"
00061              "                connect on the current host using shared memory.\n"
00062              "                To connect to the current host with TCP/IP, use\n"
00063              "                '-host localhost', or use the '-port' option.\n"
00064              "  -v          Verbose mode: prints out progress reports.\n"
00065              "  -port pp    Use TCP/IP port number 'pp'; default is 8005.\n"
00066              "The environment variable AFNI_TTAHOME controls where the atlas\n"
00067              "images are loaded from.  If not given, a default value is used.\n"
00068             ) ;
00069       exit(0) ;
00070    }
00071 
00072    /* set up to delete the temporary URL file when the program ends */
00073 
00074    atexit(exit_me_baby) ;
00075    signal(SIGINT ,sigfunc) ;
00076    signal(SIGBUS ,sigfunc) ;
00077    signal(SIGSEGV,sigfunc) ;
00078    signal(SIGTERM,sigfunc) ;
00079 
00080    /***** Process command line options *****/
00081 
00082    narg = 1 ;
00083    while( narg < argc ){
00084 
00085       /** -host name **/
00086 
00087       if( strncmp(argv[narg],"-host",5) == 0 ){
00088          narg++ ;
00089          if( narg >= argc ){
00090             fprintf(stderr,"-host needs a following name!\a\n"); exit(1);
00091          }
00092          strcpy( afni_host , argv[narg] ) ;
00093          narg++ ; continue ;
00094       }
00095 
00096       /** -name sss **/
00097 
00098       if( strncmp(argv[narg],"-name",5) == 0 ){
00099          narg++ ;
00100          if( narg >= argc ){
00101             fprintf(stderr,"-name needs a following string!\a\n"); exit(1);
00102          }
00103          strcpy( afni_name , argv[narg] ) ;
00104          narg++ ; continue ;
00105       }
00106 
00107       /** -v **/
00108 
00109       if( strncmp(argv[narg],"-v",2) == 0 ){
00110          afni_verbose = 1 ;
00111          narg++ ; continue ;
00112       }
00113 
00114       /** -port pp **/
00115 
00116       if( strncmp(argv[narg],"-port",4) == 0 ){
00117          narg++ ;
00118          if( narg >= argc ){
00119             fprintf(stderr,"-port needs a following argument!\a\n"); exit(1);
00120          }
00121          afni_port = strtol( argv[narg] , NULL , 10 ) ;
00122          if( afni_port <= 0 ){
00123             fprintf(stderr,"-port needs a positive argument!\a\n"); exit(1);
00124          }
00125          if( strcmp(afni_host,".") == 0 ) strcpy(afni_host,"localhost") ;
00126          narg++ ; continue ;
00127       }
00128 
00129       /** Je ne sais pas **/
00130 
00131       fprintf(stderr,"Unrecognized option: %s\a\n",argv[narg]) ;
00132       exit(1) ;
00133    }
00134 
00135    /***** Loop and check in with AFNI every 100 msec *****/
00136 
00137    while( 1 ){
00138       ii = afni_io() ;        /* commune with AFNI  */
00139       if( ii < 0 ) exit(0) ;  /* bad trip? then die */
00140       iochan_sleep(100) ;     /* perchance to dream */
00141    }
00142 
00143 }

void sigfunc int    sig
 

signal handler for fatal errors *

Definition at line 33 of file plugout_tta.c.

Referenced by main().

00034 {
00035    exit(1) ;
00036 }

Variable Documentation

char afni_host[128] = "." [static]
 

Definition at line 13 of file plugout_tta.c.

Referenced by afni_io(), and main().

char afni_name[128] = "\0" [static]
 

Definition at line 14 of file plugout_tta.c.

Referenced by afni_io(), and main().

int afni_port = 8005 [static]
 

Definition at line 15 of file plugout_tta.c.

Referenced by afni_io(), and main().

int afni_verbose = 0 [static]
 

Definition at line 17 of file plugout_tta.c.

Referenced by main().

char* axial_ff[] [static]
 

Initial value:

 {
   "tt_horm40.gif" , "tt_horm36.gif" , "tt_horm32.gif" , "tt_horm28.gif" ,
   "tt_horm24.gif" , "tt_horm20.gif" , "tt_horm16.gif" , "tt_horm12.gif" ,
   "tt_horm08.gif" , "tt_horm04.gif" , "tt_horm01.gif" , "tt_horp01.gif" ,
   "tt_horp04.gif" , "tt_horp08.gif" , "tt_horp12.gif" , "tt_horp16.gif" ,
   "tt_horp20.gif" , "tt_horp24.gif" , "tt_horp28.gif" , "tt_horp32.gif" ,
   "tt_horp35.gif" , "tt_horp40.gif" , "tt_horp45.gif" , "tt_horp50.gif" ,
   "tt_horp55.gif" , "tt_horp60.gif" , "tt_horp65.gif"
}

Definition at line 445 of file plugout_tta.c.

Referenced by handle_tta().

float axial_zz[] [static]
 

Initial value:

 {
   -40 , -36 , -32 , -28 , -24 , -20 , -16 , -12 , -8 , -4 ,
   -1 , 1 , 4 , 8 , 12 , 16 , 20 , 24 , 28 , 32 , 35 ,
   40 , 45 , 50 , 55 , 60 , 65
}

Definition at line 440 of file plugout_tta.c.

Referenced by handle_tta().

char* coronal_ff[] [static]
 

Initial value:

 {
   "tt_corm99.gif" , "tt_corm95.gif" , "tt_corm90.gif" , "tt_corm85.gif" ,
   "tt_corm80.gif" , "tt_corm75.gif" , "tt_corm70.gif" , "tt_corm65.gif" ,
   "tt_corm60.gif" , "tt_corm55.gif" , "tt_corm50.gif" , "tt_corm45.gif" ,
   "tt_corm40.gif" , "tt_corm35.gif" , "tt_corm32.gif" , "tt_corm28.gif" ,
   "tt_corm24.gif" , "tt_corm20.gif" , "tt_corm16.gif" , "tt_corm12.gif" ,
   "tt_corm08.gif" , "tt_corm04.gif" , "tt_corp00.gif" , "tt_corp04.gif" ,
   "tt_corp08.gif" , "tt_corp12.gif" , "tt_corp16.gif" , "tt_corp20.gif" ,
   "tt_corp24.gif" , "tt_corp28.gif" , "tt_corp32.gif" , "tt_corp35.gif" ,
   "tt_corp40.gif" , "tt_corp45.gif" , "tt_corp50.gif" , "tt_corp55.gif" ,
   "tt_corp60.gif" , "tt_corp65.gif"
}

Definition at line 413 of file plugout_tta.c.

Referenced by handle_tta().

float coronal_yy[] [static]
 

Initial value:

 {
  -100, -95, -90, -85, -80, -75, -70, -65,
   -60, -55, -50, -45, -40, -35, -32, -28,
   -24, -20, -16, -12, -8,  -4,   0,   4,
     8,  12,  16,  20, 24,  28,  32,  35,
    40,  45,  50,  55, 60,  65
}

Definition at line 406 of file plugout_tta.c.

Referenced by handle_tta().

char* sagittal_ff[] [static]
 

Initial value:

 {
   "tt_sag00g.gif", "tt_sag03.gif" , "tt_sag05.gif" , "tt_sag09.gif" ,
   "tt_sag13.gif" , "tt_sag17.gif" , "tt_sag21.gif" , "tt_sag25.gif" ,
   "tt_sag29.gif" , "tt_sag33.gif" , "tt_sag37.gif" , "tt_sag41.gif" ,
   "tt_sag43.gif" , "tt_sag47.gif" , "tt_sag51.gif" , "tt_sag55.gif" ,
   "tt_sag59.gif" , "tt_sag61.gif"
}

Definition at line 431 of file plugout_tta.c.

Referenced by handle_tta().

float sagittal_xx[] [static]
 

Initial value:

 {
   0, 3, 5, 9, 13, 17, 21, 25, 29, 33 ,
   37, 41, 43, 47, 51, 55, 59, 61
}

Definition at line 427 of file plugout_tta.c.

Referenced by handle_tta().

char* uff = NULL [static]
 

Definition at line 20 of file plugout_tta.c.

Referenced by exit_me_baby(), and handle_tta().

char* url = NULL [static]
 

Definition at line 19 of file plugout_tta.c.

Referenced by handle_tta().

 

Powered by Plone

This site conforms to the following standards: