www.pudn.com > 使用语音卡做的投诉抢修管理系统.zip > TW8A.H


 
/***************************************************************************** 
 
	(C) Copyright by Beijing Taixing Data Engineering Co., Ltd. 
 
	FILE ........... TW8A.H 
	FUNCTION ....... Header file for TurboWay - TW8A API 
	VERSION ........ 1.00 
	AUTHOR ......... Mr. Zhang Qilin 
	CREATE ......... October 5, 1994 
	UPDATE ......... June 19, 1998 
 
	May 23, 1995	- Modify MAX_ADAPTERS from 4 to 8 
	August 1, 1995	- Add:	   TW_TW8BRingTimes(...) 
	August 9, 1995	- Add:	   TW_PulseMode(...) 
	September 8, 1995 - Add :  TW_TW8BMode(...) 
				   TW_TW8BVoltage(...) 
	September 24, 1998 - Add:	TW_GetPcb, TW_SetPcb 
 
*****************************************************************************/ 
#ifndef __TW8A_H__ 
#define __TW8A_H__ 
 
/* 
#ifdef	_DLL_MAIN_ 
#define	TW8A_VAR	_declspec(dllexport) 
#else 
 
#ifdef _MSC_VER 
#define	TW8A_VAR	_declspec(dllimport) 
#else 
#define TW8A_VAR	extern 
#endif 
#endif 
*/ 
 
#define TW8A_API	__stdcall 
 
#ifdef _MSC_VER 
#pragma pack(push, enter_tw8a_h) 
#pragma pack(1) 
#endif 
 
#define MAX_ADAPTERS	8 
#define MAX_CHANNELS	(8 * MAX_ADAPTERS) 
 
#define FILE_FLAG	1	/* For TW_PlaySentence(...) */ 
#define DTMF_LEN	32 
 
/* 
 *	Return code for function call 
 */ 
#define E_DRIVER		0xff	/* TW8A driver not installed */ 
#define E_OK			0x00	/* OK */ 
#define E_COMMAND		0x01	/* Invalid command 当驱动没装上时,所有后继命令均返回此值 */ 
#define E_LENGTH		0x02	/* Too few buffer length */ 
#define E_PLAY_RECORD	0x03	/* Play/Record conflict */ 
#define E_CHANNEL		0x04	/* Invalid channel number */ 
#define E_INTERRUPT		0x05	/* Interrupt not installed (can be regarded as E_DRIVER) */ 
 
#define	CT_INTERNAL	0	/* Internal channel */ 
#define	CT_EXTERNAL	1	/* External channel */ 
#define	CT_EMPTY	2	/* Empty channel */ 
 
#define	RATE_64K	0 
#define RATE_32K	1 
#define RATE_16K	2 
#define RATE_8K		3 
#define RATE_48K	4 
#define RATE_24K	5 
#define RATE_12K	6 
#define RATE_6K		7 
 
#define SIGNAL_TYPE	8 
/* 
 *	Signal type 
 */ 
#define	SIG_UNKNOWN	0x60 
#define SIG_TIMEOUT	0x61 
#define SIG_OFFHOOK	0x62 
#define SIG_NOBODY	0x63 
 
#define SIG_SILENCE	0x40 
#define SIG_DIAL	0x41 
 
#define SIG_RING	0x00 
#define SIG_BUSY1	0x01 
#define SIG_BUSY2	0x02 
 
/*  
 *	CHAR_NAME is for TW_MakeSentence(...) 
 */ 
typedef enum { 
	CN_END = 0,		/* End of sentence (Also end of string) */ 
	CN_NOTHING,		/* Do nothing */ 
	CN_DIGIT0, CN_DIGIT1, CN_DIGIT2, CN_DIGIT3, CN_DIGIT4,	/* 0 - 4 */ 
	CN_DIGIT5, CN_DIGIT6, CN_DIGIT7, CN_DIGIT8, CN_DIGIT9,	/* 5 - 9 */ 
	CN_TEN,			/*          10 */ 
	CN_HUNDRED,		/*         100 */ 
	CN_THOUSAND,		/*       1,000 */ 
	CN_10THOUSAND,		/*      10,000 */ 
	CN_100MILLION,		/* 100,000,000 */ 
	CN_POINT,		/* "." */ 
	CN_NEGATIVE,		/* "-" */ 
 
	CN_LAST			/* To be continued by YOU ! */ 
} CHAR_NAME; 
 
typedef struct { 
	WORD	SilenceSigMin;	/* Min. count of SIG_SILENCE */ 
	WORD	DialSigMin;	/* Min. count of SIG_DIAL */ 
	WORD	SignalPara[SIGNAL_TYPE][4]; 
	/*	[x][0] : Min count of low 
	 *	[x][1] : Max count of low 
	 *	[x][2] : Min count of high 
	 *	[x][3] : Max count of high 
	 */ 
} PCB_STRUC;	/* Parameter Control Block Structure */ 
 
typedef struct { 
	BYTE	MajorVer; 
	BYTE	MinorVer; 
	BYTE	IRQNo; 
	BYTE	IntrNo;				/* reserved, always 0 */ 
	PCB_STRUC	*PCBAddr; 
	WORD	AdapterNum; 
	WORD	ChannelNum; 
	WORD	TW8ASeg[MAX_ADAPTERS]; 
} SP_STRUC;	/* System Parameter Structure */ 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
typedef void (*TW_CALLBACK_FUNC)(DWORD); 
 
//TW8A_VAR BYTE	TW_ReturnCode;	/* TW_ReturnCode 是最近所调用函数的返回码. */ 
//TW8A_VAR DWORD	TW_BufLength;	/* 2048 */ 
//TW8A_VAR LPSTR*	TW_VoiceData;	/* Voice data for CHAR_NAME */ 
 
void TW8A_API	TW_SetCallback(TW_CALLBACK_FUNC); 
 
/* 初始化函数 */ 
WORD TW8A_API	TW_Installed(void); 
void TW8A_API	TW_Initialize(void); 
void TW8A_API	TW_Disable(void); 
 
/* 检测及控制函数 */ 
WORD TW8A_API	TW_ChannelType(WORD); 
BOOL TW8A_API	TW_OffHookDetect (WORD); 
WORD TW8A_API	TW_RingDetect (WORD); 
void TW8A_API	TW_HangUpCtrl (WORD); 
void TW8A_API	TW_OffHookCtrl (WORD); 
void TW8A_API	TW_RingCtrl (WORD); 
void TW8A_API	TW_PowerCtrl (WORD); 
 
void TW8A_API	TW_SysPara (SP_STRUC*); 
void TW8A_API	TW_CompressRatio (WORD); 
 
DWORD TW8A_API	TW_StartRecord (WORD, PBYTE, DWORD); 
DWORD TW8A_API	TW_StopRecord (WORD); 
DWORD TW8A_API	TW_RecordRest (WORD); 
DWORD TW8A_API	TW_StartPlay (WORD, PBYTE, DWORD); 
DWORD TW8A_API	TW_StopPlay (WORD); 
DWORD TW8A_API	TW_PlayRest (WORD); 
DWORD TW8A_API	TW_StartDial (WORD Channel, LPCSTR DialStr); 
DWORD TW8A_API	TW_StopDial (WORD Channel); 
DWORD TW8A_API	TW_DialRest (WORD); 
 
void TW8A_API	TW_FlushDTMF (WORD); 
int TW8A_API	TW_GetDTMFChar (WORD); 
LPSTR TW8A_API	TW_GetDTMFStr (WORD, LPSTR); 
void TW8A_API	TW_StartTimer (WORD, LONG); 
LONG TW8A_API	TW_TimerElapsed (WORD); 
WORD TW8A_API	TW_CheckSignal (WORD, DWORD *, DWORD *); 
WORD TW8A_API	TW_CheckOffHook (WORD, DWORD *, DWORD *); 
BOOL TW8A_API	TW_ListenerOffHook (WORD); 
 
void TW8A_API	TW_ConnectChannels (WORD, WORD); 
void TW8A_API	TW_DisconnectChannels (WORD, WORD); 
void TW8A_API	TW_ConnectTo (WORD, WORD); 
void TW8A_API	TW_Disconnect (WORD); 
void TW8A_API	TW_Connect3 (WORD, WORD, WORD); 
void TW8A_API	TW_Disconnect3 (WORD, WORD, WORD); 
 
void TW8A_API	TW_GenerateSignal (WORD, WORD); 
void TW8A_API	TW_GenerateRing (WORD); 
 
LONG TW8A_API	TW_StartRecordFile (WORD, LPCSTR, LONG, DWORD); 
LONG TW8A_API	TW_RecordFileRest (WORD); 
LONG TW8A_API	TW_StopRecordFile (WORD); 
BOOL TW8A_API	TW_TruncateFile (LPCSTR, LONG); 
LONG TW8A_API	TW_StartPlayFile (WORD, LPCSTR, DWORD, DWORD); 
LONG TW8A_API	TW_PlayFileRest (WORD); 
LONG TW8A_API	TW_StopPlayFile (WORD); 
 
void TW8A_API	TW_MakeSentence (double, LPSTR); 
LONG TW8A_API	TW_PlaySentence (WORD, LPSTR); 
LONG TW8A_API	TW_PlaySentenceRest (WORD); 
 
void TW8A_API	TW_GetSerial (LPSTR); 
 
void TW8A_API	TW_StartMonitor (WORD); 
BOOL TW8A_API	TW_MonitorOffHook (WORD, WORD); 
BOOL TW8A_API	TW_MonitorBusy (WORD, WORD, DWORD); 
 
void TW8A_API	TW_PulseMode (BYTE); 
 
BYTE TW8A_API	TW_GetReturnCode (void); 
DWORD TW8A_API	TW_SetLength (DWORD); 
void TW8A_API	TW_SetVoice (LPSTR *); 
void TW8A_API	TW_SetVoicei (int, LPSTR); 
 
void TW8A_API	TW_GetPcb (PCB_STRUC *); 
void TW8A_API	TW_SetPcb (PCB_STRUC *); 
 
WORD TW8A_API	TW_TW8BRingStatus (WORD); 
void TW8A_API	TW_TW8BVoltage (WORD, WORD); 
 
#ifdef __cplusplus 
} 
#endif 
 
#ifdef _MSC_VER 
#pragma pack(pop, enter_tw8a_h) 
#endif 
 
#endif 
/***************************************************************************** 
	End Of File     - TW8A.H 
	Last Update     - October 13, 1998 
	(C) Copyright by Beijing Taixing Data Engineering Co., Ltd. 
*****************************************************************************/