📄 tc08a32.pas
字号:
unit tc08a32;
interface
uses Windows;
const
MAX_CARD_NO= 16;
MAX_CHANNEL_NO= 8 * MAX_CARD_NO;
LEN_FILEPATH= 70;
// the value of every card-type
CARD_TYPE_T5_64= 1;
CARD_TYPE_T5_128= 2;
CARD_TYPE_T5_REC= 3;
CARD_TYPE_T5_128_NT= 10;
CARD_TYPE_T5_REC_NT= 11;
CARD_TYPE_T5_ID_NT= 12;
CHTYPE_USER= 0;
CHTYPE_TRUNK= 1;
CHTYPE_EMPTY= 2;
CHTYPE_RECORD= 3;
NODTMF= -1;
DTMF_CODE_0= 10;
DTMF_CODE_1= 1;
DTMF_CODE_2= 2;
DTMF_CODE_3= 3;
DTMF_CODE_4= 4;
DTMF_CODE_5= 5;
DTMF_CODE_6= 6;
DTMF_CODE_7= 7;
DTMF_CODE_8= 8;
DTMF_CODE_9= 9;
DTMF_CODE_STAR= 11;
DTMF_CODE_SHARP= 12;
DTMF_CODE_A= 13;
DTMF_CODE_B= 14;
DTMF_CODE_C= 15;
DTMF_CODE_D= 16;
RECORD_CHECK= 01;
PLAY_CHECK= 02;
SEND_CHECK= 03;
SEND_READY_CHECK= 04;
R_BUSY= $21;
R_OTHER= $20;
S_NORESULT = $10;
S_BUSY = $11;
S_NOBODY= $13;
S_CONNECT= $14;
S_NOSIGNAL= $15;
S_DIALSIG= $30;
PACK_64KBPS= 0;
PACK_32KBPS= 1;
PACK_16KBPS= 2;
PACK_8KBPS= 3;
// NEW ADD for Feed and Signal
SIG_STOP= 0;
SIG_DIALTONE= 1;
SIG_BUSY1= 2;
SIG_BUSY2= 3;
SIG_RINGBACK= 4;
HANG_UP_FLAG_FALSE= 0;
HANG_UP_FLAG_TRUE= 1;
HANG_UP_FLAG_START= 2;
HANG_UP_FLAG_PRESS_R= 3;
// caller-ID
ID_STEP_NONE= 0;
ID_STEP_HEAD= 1;
ID_STEP_ID= 2;
ID_STEP_OK= 3;
ID_STEP_FAIL= 4;
ID_STEP_LEN= 5;
// end of caller-ID
// nCadenceType value
SIG_CADENCE_BUSY =1 ;//busy tone
SIG_CADENCE_RINGBACK =2;//ringback tone
type
TPD_RPB= record
PlayFlag:WORD ;
RecordFlag:WORD ;
PlayCount:WORD ;
RecordCount:WORD ;
DtmfCount:WORD ;
DialFlag:WORD ;
SigCount:WORD ;
SigStartPoint:WORD ;
SigBuf:PChar;
end;
TPD_WPB=record
Busy1Count1Low:BYTE;
Busy1Count1High:BYTE ;
Busy1Count0Low:BYTE ;
Busy1Count0High:BYTE ;
BusySigCount:WORD ;
BusySigLen:WORD ;
SendReadyLen:WORD ;
SendBusy1Count1Low:BYTE ;
SendBusy1Count1High:BYTE ;
SendBusy1Count0Low:BYTE ;
SendBusy1Count0High:BYTE ;
SendSigCount1Low:BYTE ;
SendSigCount1High:BYTE ;
SendSigCount0Low:BYTE ;
SendSigCount0High:BYTE ;
SendNoSignalLen:WORD ;
MaxRingTimes:BYTE ;
end;
//use play index file
TPD_PIF =record
FileName:array[0..99] of char;
gHandle:array[0..99] of HFILE ;
FileCount:DWORD ;
end;
//*******************************************
// define struct & type
//********************************************/
TC_INI_TYPE =record
// get from "TC08A-V.INI"
wCardNo:WORD ;
wCardType:WORD ;
wConnect:WORD ;
wIRQ:WORD ;
cbDir:array[0..LEN_FILEPATH-1] of char;
wAddress:array[0..MAX_CARD_NO] of WORD;
// get from driver
wMajorVer:WORD ;
wMinorVer:WORD ;
wChType:array[0..MAX_CHANNEL_NO] of WORD ;
end;
function LoadDRV() : LongInt; stdcall; far external 'Tc08a32.dll';
procedure FreeDRV(); stdcall; far external 'Tc08a32.dll';
procedure GetSysInfo(TmpIni:pointer); stdcall; far external 'Tc08a32.dll';
function CheckValidCh() : WORD; stdcall; far external 'Tc08a32.dll';
function CheckChType(wChnlNo : WORD): WORD; stdcall; far external 'Tc08a32.dll';
function CheckChTypeNew(wChnlNo:word):integer;stdcall; far external 'Tc08a32.dll';
function DRec_OffHookDetect(wChnlNo:word):boolean;stdcall; far external 'Tc08a32.dll';
function IsSupportCallerID():boolean; stdcall; far external 'Tc08a32.dll';
function EnableCard(wUsedCh : WORD; wFileBufLen:WORD) : LONGINT; stdcall; far external 'Tc08a32.dll';
procedure DisableCard(); stdcall; far external 'Tc08a32.dll';
function SetPackRate( pack:integer) :Integer; stdcall; far external 'Tc08a32.dll';
procedure PUSH_PLAY(); stdcall; far external 'Tc08a32.dll';
function RingDetect(wChnlNo:WORD) : BOOLEAN; stdcall; far external 'Tc08a32.dll';
function CheckPolarity( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function OffHook(chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function HangUp(chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -