#ifndef _REALTIME_H_
#define _REALTIME_H_
/* AFNI realtime defines */
#define AFNI_CONTROL_PORT 7954 /* always send control data to AFNI */
#define AFNI_TCP_PORT 7953 /* maybe send image data to AFNI */
#define AFNI_OPEN_CONTROL_MODE 1 /* 1st time thru: open control channel */
#define AFNI_WAIT_CONTROL_MODE 2 /* waiting for AFNI to open control */
#define AFNI_OPEN_DATA_MODE 3 /* now can open data channel to AFNI */
#define AFNI_CATCHUP_MODE 4 /* waiting for AFNI to open data */
#define AFNI_CONTINUE_MODE 5 /* at last! data channel is ready! */
#define ART_STATE_NO_USE 0
#define ART_STATE_TO_OPEN 1
#define ART_STATE_TO_SEND_CTRL 2
#define ART_STATE_IN_USE 3
#define ART_STATE_TO_CLOSE 4
#define ART_COMMAND_MARKER "Et Earello Endorenna utulien!!"
#define ART_COMMAND_MARKER_LEN 30
#define ART_NAME_LEN 128
#define ART_TBUF_LEN 1024
#define ART_ADD_TO_BUF(dest,src) ( strcat(dest,src), strcat(dest,"\n") )
#define CHECK_NULL_STR(str) ( str ? str : "(NULL)" )
/* ---------------------------------------------------------------------- */
typedef struct
{
int state; /* state of AFNI realtime */
int mode; /* if > 0, then means AFNI is active */
int use_tcp; /* if > 0, use TCP/IP to send data */
int swap; /* byte swap data before sending */
int byte_order; /* note the byte order of images */
char * zorder; /* slice order over time */
char host[ART_NAME_LEN]; /* hostname of CPU afni is on */
char ioc_name[ART_NAME_LEN]; /* I/O channel name to afni */
char buf[1024]; /* main buffer for afni comm */
IOCHAN * ioc; /* ptr to I/O channel struct */
param_t * param; /* local pointer to images */
} ART_comm;
/* ---------------------------------------------------------------------- */
void ART_exit ( void );
int ART_idisp_ART_comm ( char * info, ART_comm * ac );
int ART_init_AC_struct ( ART_comm * ac );
int ART_open_afni_link ( ART_comm * ac, int num_tries, int again,int debug);
int ART_send_control_info ( ART_comm * ac, vol_t * v, int debug );
int ART_send_end_of_run ( ART_comm * ac, int run, int seq, int debug );
int ART_send_volume ( ART_comm * ac, vol_t * v, int debug );
int ART_start_io ( ART_comm * ac, int debug );
int swap_2 ( void * ptr, int npairs );
#endif /* _REALTIME_H_ */
syntax highlighted by Code2HTML, v. 0.9.1