Listing 2. The Shared Control Block Structure.

typedef struct {
volatile int numframes;   /* Number of frames
                * stored in this control block */
volatile FFT_T *analdat;  /* Pointer to the
                * beginning of analysis data */
volatile long curframe;   /* Number of current
                * frame for resynthesis */
volatile FixPt curposn;   /* for interpolation */
volatile FixPt frameinc;  /* Number of frames to
                * skip every resynth iteration in
                * fixed-point format */
volatile FixPt pitchbend; /* Frequency multiplier
                * for use at resynthesize-time */
volatile RunMode autoinc; /* Step through spectra
                * automatically */
volatile int xv_ready;    /* XView up & running */
/* The following are only set at initialisation
 * time: not volatile */
pid_t alertpid;          /* The place to send
                * signals to update display */
  int analchans;           /* No of channels in
                * spectral data */
} CtrlBlk_T;