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(). |