windows-nt/Source/XPSP1/NT/printscan/fax/provider/t30/headers/fr.h

247 lines
5.3 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#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 <t FR>
********/
#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 <t IFR>
********/
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 <f OEM_NSxToBC>, <f OEM_CreateFrame>
********/
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 */