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

📄 tw8aw.h

📁 电信语音系统源码
💻 H
字号:

/****************************************************************************

	(C) Copyright by Beijing TAIXING Data Engineering Co., Ltd.

	FILE ........... TW8AW.H
	FUNCTION ....... Head file of TW8AW.C
	VERSION ........ 1.00
	AUTHOR ......... Mr. Zhang Qilin
	CREATE ......... March 28, 1995
	UPDATE .........

****************************************************************************/

#ifndef __TW8AW_H
#define __TW8AW_H

#ifdef __cplusplus
extern "C" {
#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 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_YUAN,
        CN_JIAO,
        CN_FEN,

	CN_LAST			/* To be continued by YOU ! */
} CHAR_NAME;

typedef struct {
	unsigned int	SilenceSigMin;	/* Min. count of SIG_SILENCE */
	unsigned int	DialSigMin;	/* Min. count of SIG_DIAL */
	unsigned int	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 {
	unsigned char	MajorVer;
	unsigned char	MinorVer;
	unsigned char	IRQNo;
	unsigned char	IntrNo;

/*	PCB_STRUC far	*PCBAddr; */
	unsigned int	PCBAddr_Ofs;
        unsigned int	PCBAddr_Seg;

	unsigned int	AdapterNum;
	unsigned int	ChannelNum;
	unsigned int	TW8ASeg[MAX_ADAPTERS];
} SP_STRUC;	/* System Parameter Structure */


int FAR PASCAL TW_Installed (void);
void FAR PASCAL TW_Initialize (void);
void FAR PASCAL TW_Disable (void);

int FAR PASCAL TW_ChannelType (int);
int FAR PASCAL TW_OffHookDetect (int);
int FAR PASCAL TW_RingDetect (int);
void FAR PASCAL TW_HangUpCtrl (int);
void FAR PASCAL TW_OffHookCtrl (int);
void FAR PASCAL TW_RingCtrl (int);
void FAR PASCAL TW_PowerCtrl (int);
void FAR PASCAL TW_SysPara (SP_STRUC far *);
void FAR PASCAL TW_CompressRatio (int);

WORD FAR PASCAL TW_StartRecord (int, WORD, WORD);
WORD FAR PASCAL TW_StopRecord (int);
WORD FAR PASCAL TW_RecordRest (int);

WORD FAR PASCAL TW_StartPlay (int, WORD, WORD);
WORD FAR PASCAL TW_StopPlay (int);
WORD FAR PASCAL TW_PlayRest (int);
WORD FAR PASCAL TW_StartDial (int, LPSTR);
WORD FAR PASCAL TW_StopDial (int);
WORD FAR PASCAL TW_DialRest (int);

void FAR PASCAL TW_FlushDTMF (int);
int FAR PASCAL TW_GetDTMFChar (int);
LPSTR FAR PASCAL TW_GetDTMFStr (int);
void FAR PASCAL TW_StartTimer (int, long);
long FAR PASCAL TW_TimerElapsed (int);
int FAR PASCAL TW_CheckSignal (int, LPWORD, LPWORD);
int FAR PASCAL TW_CheckOffHook (int, LPWORD, LPWORD);
int FAR PASCAL TW_ListenerOffHook (int);

void FAR PASCAL TW_ConnectChannels (int, int);
void FAR PASCAL TW_DisconnectChannels (int, int);
void FAR PASCAL TW_ConnectTo (int, int);
void FAR PASCAL TW_Disconnect (int);
void FAR PASCAL TW_Connect3 (int, int, int);
void FAR PASCAL TW_Disconnect3 (int, int, int);

void FAR PASCAL TW_GenerateSignal (int, int);
void FAR PASCAL TW_GenerateRing (int);

long FAR PASCAL TW_StartRecordFile (int, LPSTR, long, long);
long FAR PASCAL TW_RecordFileRest (int);
long FAR PASCAL TW_StopRecordFile (int);
int FAR PASCAL TW_TruncateFile (LPSTR, long);
long FAR PASCAL TW_StartPlayFile (int, LPSTR, long, long);
long FAR PASCAL TW_PlayFileRest (int);
long FAR PASCAL TW_StopPlayFile (int);

void FAR PASCAL TW_MakeSentence (double, LPSTR);
long FAR PASCAL TW_PlaySentence (int, LPSTR);
long FAR PASCAL TW_PlaySentenceRest (int);

int FAR PASCAL TW_SetClose (int);
int FAR PASCAL TW_SetLength (int);
void FAR PASCAL TW_SetVoice (LPSTR *);
void FAR PASCAL TW_SetVoicei (int, LPSTR);
void FAR PASCAL TW_GetPcb (PCB_STRUC far *);
void FAR PASCAL TW_GetPcb2 (void far *, int);	/* December 11, 1995 */
void FAR PASCAL TW_SetPcb (PCB_STRUC far *);

void FAR PASCAL TW_GetSerial (LPSTR);

void FAR PASCAL TW_StartMonitor (int);
int FAR PASCAL TW_MonitorOffHook (int, int);
int FAR PASCAL TW_MonitorBusy (int, int, int);

int FAR PASCAL TW_TW8BRingTimes (int);
void FAR PASCAL TW_PulseMode (int);

#ifdef  __cplusplus
}
#endif

#endif
/****************************************************************************
	End Of File	- TW8AW.H
	Last Update	- December 11, 1995
	(C) Copyright by Beijing TAIXING Data Engineering Co., Ltd.
****************************************************************************/

⌨️ 快捷键说明

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