Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
3.7 KiB

  1. #define IDSIZE 20
  2. #define MFR_SIZE 80
  3. #define RESPONSE_BUF_SIZE 300
  4. typedef enum {
  5. PCB_SEND_CAPS,
  6. PCB_SEND_PARAMS,
  7. PCB_RECV_PARAMS
  8. } PCBTYPE;
  9. typedef struct {
  10. USHORT uPCBSize; // must set this
  11. BOOL fEFAX; // accepts EFAX linearized file format
  12. BYTE Resolution; // one or more of the RES_ #defines below
  13. BYTE Encoding; // one or more of the ENCODE_ #defines below
  14. BYTE PageWidth; // one of the WIDTH_ #defines below
  15. BYTE PageLength; // one of the LENGTH_ #defines below
  16. BYTE MinScan; // one of the MINSCAN_ #defines below
  17. // used only in RecvCaps
  18. PCBTYPE pcbtype;
  19. // BOOL fG3image;
  20. BOOL fG3Poll; // has G3 file available for polling
  21. BOOL fNewT30; // handles PWD/SEP/SUB
  22. CHAR szID[IDSIZE+2]; // Must use '0' to '9' or ' '(space) only
  23. BOOL fBinary; // accepts binary files inside linearized EFAX messages
  24. BOOL fRambo; // accepts Rambo inside linearized EFAX messages
  25. BOOL fExtCapsSupport;// supports extended caps
  26. BOOL fExtCapsAvail; // has extended caps available for polling
  27. // add more as they become clear
  28. BYTE Baud;
  29. } PCB, far* LPPCB, near* NPPCB;
  30. // Array to hold parsed class2 command strings.
  31. #define MAX_CLASS2_COMMANDS 10
  32. #define MAX_PARAM_LENGTH 50
  33. typedef struct cl2_command {
  34. USHORT comm_count;
  35. BYTE command[MAX_CLASS2_COMMANDS];
  36. BYTE parameters[MAX_CLASS2_COMMANDS][MAX_PARAM_LENGTH];
  37. } CL2_COMM_ARRAY;
  38. // structure for modem specific hacks
  39. typedef struct {
  40. // Fields for manufacturer, model, and revision number
  41. CHAR szATI[MFR_SIZE];
  42. CHAR szMFR[MFR_SIZE];
  43. CHAR szMDL[MFR_SIZE];
  44. CHAR szREV[MFR_SIZE];
  45. //Fields for specific actions to take
  46. //BOR values to use
  47. USHORT iReceiveBOR;
  48. USHORT iSendBOR;
  49. //Value to enable data to be recieved after FDR
  50. CHAR szDC2[2];
  51. BOOL bIsSierra;
  52. BOOL bIsExar;
  53. BOOL fSkipCtrlQ; // DONT wait for CtrlQ after FDT
  54. BOOL fSWFBOR; // Implement AT+FBOR=1 in software (i.e., bitreverse)
  55. // Only invoked on send(recv) if iSendBOR(iRecvBOR)
  56. // is 1 (in which it will send AT+FBOR=0).
  57. } MFRSPEC, far *LPMFRSPEC;
  58. /**-------------------- from MODEM.H -----------------------------**/
  59. typedef char C2SZ;
  60. typedef char *C2PSTR;
  61. /**-------------------- from COMMODEM.H -----------------------------**/
  62. #define MAXPHONESIZE 60
  63. #define DIALBUFSIZE MAXPHONESIZE + 10
  64. /**-------------------- modelled after MODEMINT.H -----------------------------**/
  65. // used for Resync type stuff. RepeatCount = 2
  66. // This has to be multi-line too, because echo could be on and
  67. // we could get the command echoed back instead of response!
  68. // Looks like even 330 is too short for some modems..
  69. #define Class2SyncModemDialog(pTG, s, l, w) \
  70. Class2iModemDialog(pTG, (s), (l), 550, TRUE, 2, (C2PSTR)(w), (C2PSTR)(NULL))
  71. // has to be >1 try & multi-line because we can have RING noises
  72. // coming in at anytime while on-hook
  73. /**
  74. #define Class2LocalModemDialog(s, l, w) \
  75. Class2iModemDialog((s), (l), 1500, TRUE, 2, (C2PSTR)(w), (C2PSTR)(NULL))
  76. **/