/* LarkVCB.h
L. Stewart August 15, 1983 3:06 PM
*/
/* requires
Pup.h
Queue.h
Encrypt.h
*/
struct VCB { /* extra fields */
/* common fields */
int active;
struct Port lport; /* local port for tx or rx */
struct Port rport;
int numPackets; /* number of packets transmitted */
int lastEndTime;
char *bufbase; /* pointer to buffer */
struct Queue vpq;
struct Queue pq;
int pqlength; /* number buffers on pq */
/* transmit fields */
struct ECB loECB, hiECB;
struct ECB floECB, fhiECB;
int now;
int silThresh; /* definition of silence */
int *silVal; /* slave CPU silence value */
int encIndex;
int squelchTail;
/* receive fields */
int expPlayTime; /* play time according to TX Lark */
int firstPacket; /* BOOL first packet ever */
struct ECB daECB, dbECB; /* for decryption */
int lsoc; /* pup socket handle */
int dtimer; /* timer for lost pbis */
int gainChannel; /* 0 => off, & 1 or & 2 for controlled channel */
int lastEnergy; /* shift register for filtering */
int gainCount; /* time to go before decay */
int decayTime; /* time per decay step */
int gainLevel; /* current gain */
int gainTable[5];
int expPktID; /* expected ID */
};
#define lenVCB (sizeof (struct VCB)/2)
/* structure of a Lark originated voice packet */
struct LLPkt {
char mode;
char encIndex;
int energy;
int silenceMS;
int blank2;
char data[2];
};
#define MaxSilenceMS 200
#define MaxPlaybackPkts 10
#define MaxPQL 14