#ifndef _FR_H #define _FR_H #pragma pack(1) /** ensure packed structures **/ /******** @doc EXTERNAL OEMNSF DATATYPES AWNSFAPI SRVRDLL @type BYTE | IFR | . @flag Frame identifier values used in the FR struct and various APIs | ifrDIS = DIS frame ifrCSI = CSI frame ifrNSF = NSF frame ifrDTC = DTC frame ifrCIG = CIG frame ifrNSC = NSC frame ifrDCS = DCS frame ifrTSI = TSI frame ifrNSS = NSS frame @xref ********/ #define ifrNULL 0 #define ifrDIS 1 #define ifrCSI 2 #define ifrNSF 3 #define ifrDTC 4 #define ifrCIG 5 #define ifrNSC 6 #define ifrDCS 7 #define ifrTSI 8 #define ifrNSS 9 typedef BYTE IFR; typedef IFR FAR* LPIFR; /******** @doc EXTERNAL OEMNSF DATATYPES AWNSFAPI SRVRDLL @types FR | Structure containing received or sent frames @field IFR | ifr | Frame identifier @field BYTE | cb | Length of the FIF part of the frame @field BYTE[] | fif | Variable length FIF part @tagname _FR @xref ********/ typedef struct { IFR ifr; BYTE cb; } FRBASE; #if defined(PORTABLE) || defined(__cplusplus) /* strictly ANSI C */ typedef struct { IFR ifr; BYTE cb; BYTE fif[1]; /* start of var length array */ } FR, FAR* LPFR, NEAR* NPFR; #else /* Microsoft C */ typedef struct { FRBASE; /* anonymous */ BYTE fif[1]; /* variable length fif field */ } FR, FAR* LPFR, NEAR* NPFR; #endif typedef LPFR FAR* LPLPFR; typedef LPLPFR FAR* LPLPLPFR; /******** @doc EXTERNAL OEMNSF DATATYPES @types LLPARAMS | Structure containing low-level T.30 capabilities or parameters. @field BYTE | Baud | Baud Rate Capability or Mode. @flag Baud Rate Mode Codes | V27_2400 = 0 V27_4800 = 2 V29_7200 = 3 V29_9600 = 1 V33_12000 = 6 V33_14400 = 4 V17_7200 = 11 V17_9600 = 9 V17_12000 = 10 V17_14400 = 8 @flag V27_SLOW | Baud Rate Capability: V.27 at 2400bps only. @flag V27_ONLY | Baud Rate Capability: V.27 only, at 2400bps and 4800bps. @flag V29_ONLY | Baud Rate Capability: V.29 only, at 7200bps and 9600bps. @flag V27_V29 | Baud Rate Capability: V.27 and V.29 at the above speeds. @flag V27_V29_V33 | Baud Rate Capability: V.27 and V.29 at the above speeds plus V.33 at 12000bps and 14400bps. @flag V27_V29_V33_V17 | Baud Rate Capability: V.27, V.29, V.33 at the above speeds plus V.17 at 12000bps and 14400bps. @field BYTE | MinScan | Minimum Scan-line time Requirement or Mode. @flag Minscan Mode Codes | MINSCAN_40 = 4 MINSCAN_20 = 0 MINSCAN_10 = 2 MINSCAN_5 = 1 MINSCAN_0 = 7 @flag MINSCAN_0_0_0 | MinScan Reqmnt: 0ms at all vertical resolutions @flag MINSCAN_5_5_5 | MinScan Reqmnt: 5ms at all vertical resolutions @flag MINSCAN_10_10_10 | MinScan Reqmnt: 10ms at all vertical resolutions @flag MINSCAN_20_20_20 | MinScan Reqmnt: 20ms at all vertical resolutions @flag MINSCAN_40_40_40 | MinScan Reqmnt: 40ms at all vertical resolutions @flag MINSCAN_40_20_20 | MinScan Reqmnt: 40ms at 100dpi, 20ms at all other resolutions @flag MINSCAN_20_10_10 | MinScan Reqmnt: 20ms at 100dpi, 10ms at all other resolutions @flag MINSCAN_10_5_5 | MinScan Reqmnt: 10ms at 100dpi, 5ms at all other resolutions @flag MINSCAN_40_40_20 | MinScan Reqmnt: 40ms at 100dpi and 200dpi, 20ms at 400dpi @flag MINSCAN_20_20_10 | MinScan Reqmnt: 20ms at 100dpi and 200dpi, 10ms at 400dpi @flag MINSCAN_10_10_5 | MinScan Reqmnt: 10ms at 100dpi and 200dpi, 5ms at 400dpi @flag MINSCAN_40_20_10 | MinScan Reqmnt: 40ms at 100dpi, 20ms at 200dpi, 10ms at 400dpi @flag MINSCAN_20_10_5 | MinScan Reqmnt: 20ms at 100dpi, 10ms at 200dpi, 5ms at 400dpi @field BYTE | fECM | ECM Capability or Mode (boolean). @field BYTE | fECM64 | Small-Frame (64 byte frame) ECM Capability or Mode (boolean). @tagname _LLPARAMS @xref , ********/ typedef struct { BYTE Baud; BYTE MinScan; BYTE fECM; BYTE fECM64; /** BYTE fNonEfaxBFT :1; BYTE fNonEfaxSUB :1; BYTE fNonEfaxSEP :1; BYTE fNonEfaxPWD :1; BYTE fNonEfaxCharMode:1; BYTE fNonEfaxDTM :1; BYTE fNonEfaxBTM :1; BYTE fNonEfaxEDI :1; **/ } LLPARAMS, FAR* LPLLPARAMS, NEAR* NPLLPARAMS; /** Baud rate capability codes **/ #define V27_SLOW 0 #define V27_ONLY 2 #define V29_ONLY 1 #define V33_ONLY 4 #define V17_ONLY 8 #define V27_V29 3 #define V27_V29_V33 7 #define V27_V29_V33_V17 11 #define V_ALL 15 /** Baud rate mode codes **/ #define V27_2400 0 #define V29_9600 1 #define V27_4800 2 #define V29_7200 3 #define V33_14400 4 #define V33_12000 6 #define V17_14400 8 #define V17_9600 9 #define V17_12000 10 #define V17_7200 11 /** Minscan capability codes **/ #define MINSCAN_0_0_0 7 #define MINSCAN_5_5_5 1 #define MINSCAN_10_10_10 2 #define MINSCAN_20_20_20 0 #define MINSCAN_40_40_40 4 #define MINSCAN_40_20_20 5 #define MINSCAN_20_10_10 3 #define MINSCAN_10_5_5 6 #define MINSCAN_10_10_5 10 #define MINSCAN_20_20_10 8 #define MINSCAN_40_40_20 12 #define MINSCAN_40_20_10 13 #define MINSCAN_20_10_5 11 typedef enum { WHICHDCS_FIRST = 0, WHICHDCS_NOREPLY = 1, WHICHDCS_FTT = 2, WHICHDCS_DIS = 3 } WHICHDCS; #pragma pack() #endif /* _FR_H */