⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc08a32.h

📁 东进语音板卡开发
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef _TC08A32_H
#define _TC08A32_H

#include <windows.h>

#ifdef __cplusplus
extern "C" {
#endif

/*******************************************
	define value
********************************************/
#define	MAX_CARD_NO		16
#define	MAX_CHANNEL_NO	8 * MAX_CARD_NO
// add for support 256 channel, 2001.11.14
#define	MAX_CHANNEL_NO_256	(16 * MAX_CARD_NO)

#define LEN_FILEPATH	70

// the value of every card-type
#define	CARD_TYPE_T5_64		1
#define	CARD_TYPE_T5_128	2
#define	CARD_TYPE_T5_REC	3

#define	CARD_TYPE_T5_128_NT	10
#define	CARD_TYPE_T5_REC_NT	11
#define	CARD_TYPE_T5_ID_NT	12

// new-d160a
#define	CARD_TYPE_D160A_NT		30
// d160an	
#define	CARD_TYPE_D160A_NT_NEW	31

//YY ADD FOR PCI SUPPORT 2000.10.16
#define CARD_TYPE_D160A_PCI		50
//YY ADD FOR PCI SUPPORT 2000.10.16

#define CHTYPE_USER     0
#define CHTYPE_TRUNK    1
#define CHTYPE_EMPTY    2
#define CHTYPE_RECORD   3
#define CHTYPE_CS		4
#define CHTYPE_EM_CTRL	5
#define CHTYPE_EM_4VOC	6
#define CHTYPE_EM_2VOC	7

#define NODTMF    -1
#define DTMF_CODE_0		10
#define DTMF_CODE_1		1
#define DTMF_CODE_2		2
#define DTMF_CODE_3		3
#define DTMF_CODE_4		4
#define DTMF_CODE_5		5
#define DTMF_CODE_6		6
#define DTMF_CODE_7		7
#define DTMF_CODE_8		8
#define DTMF_CODE_9		9
#define DTMF_CODE_STAR	11
#define DTMF_CODE_SHARP	12
#define DTMF_CODE_A		13
#define DTMF_CODE_B		14
#define DTMF_CODE_C		15
#define DTMF_CODE_D		16


#define RECORD_CHECK    01
#define PLAY_CHECK              02
#define SEND_CHECK              03
#define SEND_READY_CHECK 04

#define R_BUSY          0x21
#define R_OTHER         0x20

#define	S_NODIALTONE	0x0F
#define S_NORESULT      0x10
#define S_BUSY          0x11
#define S_NOBODY        0x13
#define S_CONNECT       0x14
#define S_NOSIGNAL      0x15

#define S_DIALSIG       0x30


#define PACK_64KBPS     0
#define PACK_32KBPS     1
#define PACK_16KBPS     2
#define PACK_8KBPS     3

// NEW ADD for Feed and Signal

#define SIG_STOP		0
#define SIG_DIALTONE	1
#define SIG_BUSY1		2
#define SIG_BUSY2		3
#define SIG_RINGBACK	4
#define SIG_CUIGUA      5
#define SIG_STOP_NEW	10

#define HANG_UP_FLAG_FALSE 0
#define HANG_UP_FLAG_TRUE  1
#define HANG_UP_FLAG_START 2
#define HANG_UP_FLAG_PRESS_R  3


// caller-ID
#define	ID_STEP_NONE	0
#define	ID_STEP_HEAD	1
#define	ID_STEP_ID	2
#define	ID_STEP_OK	3
#define	ID_STEP_FAIL	4
#define	ID_STEP_LEN	5

// end of caller-ID

// add by syl
#define DJ_DIAL_LEN 64
#define DIAL_MAX_NO		DJ_DIAL_LEN
#define MAX_SPK_STR		DJ_DIAL_LEN
// end by syl

typedef struct {
	WORD PlayFlag;
	WORD RecordFlag;
	WORD PlayCount;
	WORD RecordCount;
	WORD DtmfCount;
	WORD DialFlag;
	WORD SigCount;
	WORD SigStartPoint;
	LPSTR SigBuf;
} TPD_RPB;

typedef struct {
	BYTE Busy1Count1Low;
	BYTE Busy1Count1High;
	BYTE Busy1Count0Low;
	BYTE Busy1Count0High;

	WORD  BusySigCount;
	WORD  BusySigLen;

	WORD  SendReadyLen;

	BYTE SendBusy1Count1Low;
	BYTE SendBusy1Count1High;
	BYTE SendBusy1Count0Low;
	BYTE SendBusy1Count0High;

	BYTE SendSigCount1Low;
	BYTE SendSigCount1High;
	BYTE SendSigCount0Low;
	BYTE SendSigCount0High;

	WORD  SendNoSignalLen;

	BYTE MaxRingTimes;
} TPD_WPB;

//use play index file
typedef struct{
	char *FileName[200];
	HANDLE gHandle[200];
	DWORD FileCount;
	int FileFlag[200];
}TPD_PIF;

/*******************************************
	define struct & type
********************************************/
typedef struct {
	// get from "TC08A-V.INI"
	WORD wCardNo;
	WORD wCardType;
	WORD wConnect;
	WORD wIRQ;
	char cbDir[LEN_FILEPATH];
	WORD wAddress[MAX_CARD_NO];
	
	// get from driver
	WORD wMajorVer;
	WORD wMinorVer;
	WORD wChType[MAX_CHANNEL_NO];

	WORD wMachineNo;

} TC_INI_TYPE;


/*******************************************
	define function
********************************************/
long WINAPI LoadDRV(void);
void WINAPI FreeDRV(void);

void WINAPI GetSysInfo( TC_INI_TYPE *TmpIni);
WORD WINAPI CheckValidCh(void);
WORD WINAPI CheckChType(WORD wChnlNo);
BOOL WINAPI IsSupportCallerID(void);

long WINAPI EnableCard(WORD wUsedCh, WORD wFileBufLen);
void WINAPI DisableCard(void);
void WINAPI SetPackRate ( WORD wPackRate );


void WINAPI PUSH_PLAY (void);

BOOL WINAPI RingDetect(WORD wChnlNo);
BOOL WINAPI CheckPolarity(WORD wChnlNo);
void WINAPI OffHook(WORD wChnlNo);
void WINAPI HangUp(WORD wChnlNo);

long WINAPI SetLink ( WORD wOne, WORD wAnother );
long WINAPI ClearLink ( WORD wOne, WORD wAnother );
long WINAPI LinkOneToAnother ( WORD wOne, WORD wAnother );
long WINAPI ClearOneFromAnother ( WORD wOne, WORD wAnother );
long WINAPI LinkThree( WORD wOne, WORD wTwo, WORD wThree);
long WINAPI ClearThree( WORD wOne, WORD wTwo, WORD wThree);

void WINAPI InitDtmfBuf(WORD wChnlNo);
short WINAPI GetDtmfCode( WORD wChnlNo);
BOOL WINAPI DtmfHit(WORD wChnlNo);

void WINAPI StartSigCheck ( WORD wChnlNo );
void WINAPI StopSigCheck ( WORD wChnlNo );
WORD WINAPI ReadCheckResult(WORD wChnlNo, WORD wMode);
WORD WINAPI ReadBusyCount(void);

void WINAPI SetBusyPara( WORD BusyLen );
void WINAPI SetDialPara ( WORD RingBack1, WORD RingBack0, WORD BusyLen, WORD RingTimes );
void WINAPI ReadSigBuf ( WORD wChnlNo, WORD *pwStartPoint, WORD *pwCount, BYTE *SigBuf );

void WINAPI StartPlay ( WORD wChnlNo, char *PlayBuf, DWORD dwStartPos, DWORD dwPlayLen);
void WINAPI StopPlay ( WORD wChnlNo);
BOOL WINAPI CheckPlayEnd ( WORD wChnlNo );
void WINAPI ReadStatus ( WORD wChnlNo, TPD_RPB *TmpRead );

BOOL WINAPI StartPlayFile ( WORD wChnlNo, LPSTR FileName, DWORD StartPos );
void WINAPI StopPlayFile (WORD wChnlNo);

// index play file
void WINAPI RsetIndexPlayFile(WORD Line);
BOOL WINAPI AddIndexPlayFile(WORD Line, char *FileName);
BOOL WINAPI StartIndexPlayFile( WORD wChnlNo);
BOOL WINAPI CheckIndexPlayFile(WORD ChnlNo);
void WINAPI StopIndexPlayFile(WORD wChnlNo);

void WINAPI ResetIndex (void);
BOOL WINAPI SetIndex ( char *VocBuf, DWORD dwVocLen);
void WINAPI StartPlayIndex( WORD wChnlNo, WORD *pIndexTable, WORD wIndexLen);

void WINAPI SendDtmfBuf(WORD wChnlNo, LPSTR DialNum);
BOOL WINAPI CheckSendEnd(WORD wChnlNo);

//static WORD StopRecord(WORD wChnlNo);
BOOL WINAPI StartRecordFile ( WORD wChnlNo, LPSTR FileName, DWORD dwRecordLen );
BOOL WINAPI CheckRecordEnd ( WORD wChnlNo );
void WINAPI StopRecordFile (WORD wChnlNo);


void WINAPI FeedSigFunc ( void );
void WINAPI StartTimer(WORD wChnlNo, WORD ClockType);
long WINAPI ElapseTime ( WORD wChnlNo, WORD ClockType );
void WINAPI StartPlaySignal (WORD wChnlNo, WORD SigType );
void WINAPI StartHangUpDetect ( WORD wChnlNo );
WORD WINAPI HangUpDetect ( WORD wChnlNo );
void WINAPI FeedRing(WORD wChnlNo);
void WINAPI FeedRealRing(WORD wChnlNo);
void WINAPI FeedPower(WORD wChnlNo);
BOOL WINAPI OffHookDetect(WORD wChnlNo);
BOOL WINAPI ReadGenerateSigBuf (LPSTR lpFileName);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -