Doxygen Source Code Documentation
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
|
|
Definition at line 172 of file plugout_tta.c. Referenced by afni_io(). |
|
|
Je ne sais pas * Definition at line 168 of file plugout_tta.c. Referenced by afni_io(). |
|
|
Definition at line 170 of file plugout_tta.c. Referenced by afni_io(). |
|
|
Definition at line 169 of file plugout_tta.c. Referenced by afni_io(). |
|
|
Definition at line 171 of file plugout_tta.c. Referenced by afni_io(). |
|
|
Definition at line 439 of file plugout_tta.c. Referenced by handle_tta(). |
|
|
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(). |
|
|
Definition at line 178 of file plugout_tta.c. |
|
|
Definition at line 179 of file plugout_tta.c. |
|
|
Definition at line 180 of file plugout_tta.c. |
|
|
Definition at line 176 of file plugout_tta.c. Referenced by afni_io(). |
|
|
Definition at line 426 of file plugout_tta.c. Referenced by handle_tta(). |
|
|
Definition at line 455 of file plugout_tta.c. Referenced by handle_tta(). |
Function Documentation
|
|
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 }
|
|
|
Definition at line 27 of file plugout_tta.c. Referenced by main().
|
|
||||||||||||||||
|
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 }
|
|
||||||||||||
|
\** File : SUMA.c
Input paramters :
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 }
|
|
|
signal handler for fatal errors * Definition at line 33 of file plugout_tta.c. Referenced by main().
00034 {
00035 exit(1) ;
00036 }
|
Variable Documentation
|
|
Definition at line 13 of file plugout_tta.c. |
|
|
Definition at line 14 of file plugout_tta.c. |
|
|
Definition at line 15 of file plugout_tta.c. |
|
|
Definition at line 17 of file plugout_tta.c. Referenced by main(). |
|
|
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(). |
|
|
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(). |
|
|
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(). |
|
|
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(). |
|
|
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(). |
|
|
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(). |
|
|
Definition at line 20 of file plugout_tta.c. Referenced by exit_me_baby(), and handle_tta(). |
|
|
Definition at line 19 of file plugout_tta.c. Referenced by handle_tta(). |