📄 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.
*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -