📄 tw8vid.h
字号:
/*****************************************************************************
FILE ........... TW8VID.H
FUNCTION ....... Header file for Telewind - TW8VID API
VERSION ........ 1.20
*****************************************************************************/
#ifndef __TW8VID_H
#define __TW8VID_H
//#include "idpriv.h"
#define MAX_ADAPTERS 16
#define MAX_CHANNELS (8 * MAX_ADAPTERS)
#define CHANNEL_MASK (MAX_CHANNELS-1)
#define FILE_FLAG 1 /* For TV_PlaySentence(...) */
#define DTMF_LEN 40
//#define MAX_CALLINGID_LEN 24
//modi by xfs
#define MAX_CALLINGID_LEN 15
/* Return code for function call
*/
#define E_DRIVER 0xff /* TW8VID 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_ARGUMENT 0x05
#define E_ERR_SYNC 0x6
#define E_OUT_OF_MEMORY 0x7
#define E_ERR 0x8
#define E_RECORD_BUSY 0x9
#define E_FILEOPEN 0xa
#define E_PLAY_BUSY 0xb
#define E_ErrNum 0xc // add by cpc 2001.6.12
#define E_NO_CONF_PORT 0x20
#define E_NO_FAX_PORT 0x21
#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
#define CM_NORMAL 0x0 /* channel work in not compress mode */
#define CM_COMPRESS 0x1 /* channel work in compress mode */
// Event Define
#define TW8VSR 0
#define TEvent_InterOffHook TW8VSR // 某一内线通道摘机事件
#define TEvent_Signal TW8VSR+1 // 检测到信号音事件(必须控制摘机后,方可产生该事件)
#define TEvent_NoSignal TW8VSR+2 // No Signal
#define TEvent_Ring TW8VSR+3 // 某一外线通道振铃事件
#define TEvent_DialEnd TW8VSR+4 // 拨号结束事件
#define TEvent_PlayEnd TW8VSR+5 // 放音结束事件
#define TEvent_RecordSpeed TW8VSR+6 // 录音设定完成时间(若要产生该事件,必须调用TV_SetPRSpeed(int,int,int)
// 对其产生速度进行设置,否则按默认8k产生该事件
#define TEvent_DialSpeed TW8VSR+7
#define TEvent_PlaySpeed TW8VSR+8 // 同 Event_RecordSpeed
#define TEvent_RecordEnd TW8VSR+9 // 录音结束事件
#define TEvent_GetChar TW8VSR+10 // 收到DTMF码事件
#define TEvent_OffHook TW8VSR+11 // 拨号后,被叫方摘机事件
#define TEvent_HangUp TW8VSR+12 // 挂机事件(必须调用设置忙音信号类型及忙音个数,方可产生该事件)
#define TEvent_Nobody TW8VSR+13 // 拨号后,没人接事件
#define TEvent_Busy TW8VSR+14 // 检测到忙音事件
#define TEvent_KeyHit TW8VSR+15 // 击健事件
#define TEvent_PlayErr TW8VSR+16 //
#define TEvent_RecordErr TW8VSR+17
#define TEvent_TimeOut TW8VSR+18 // 超时
// Set Macro Define
#define TSet_Mode 0 // Flag of poll or event mode set
#define TSet_Busy 1 // Flag of busy set
#define TSet_Dial 2 // Flag of dial speed set
#define TSet_Play 3 // Flag of play speed set
#define TSet_Record 4 // Flag of record speed set
#define AFTERDIAL 0
#define RECIEVEDIAL 1
typedef struct {
int Type; // Type of Event
int Channel; // Channel
int Result; //
} TV_Event;
/* CHAR_NAME is for TV_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 {
int silence_sig_min; /* Min. count of SIG_SILENCE */
int dial_sig_min; /* Min. count of SIG_DIAL */
int signal_para[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 PCB;
int AdapterNum;
int ChannelNum;
unsigned int TW8VIDSeg[MAX_ADAPTERS];
int far * reserved1;
unsigned char ( far * reserved2)[512];
} SP_STRUC; /* System Parameter Structure */
extern int TV_ReturnCode; /* Return code for last call */
extern int TV_CloseFile; /* Close files in TV_StartRecordFile() & TV_StartPlayFile() ? */
extern char far * *TV_VoiceData; /* Voice data for CHAR_NAME */
extern int *TV_VoiceLen; /* Voice data length for CHAR_NAME */
#ifdef __cplusplus
extern "C" {
#endif
#ifndef WIN32
#define WINAPI
#else
#define TM_NOTIFY (WM_USER+7)
#endif
int WINAPI TV_Installed (void);
int WINAPI TV_Initialize (void);
void WINAPI TV_Disable (void);
int WINAPI TV_ChannelType (int);
int WINAPI TV_OffHookDetect (int);
int WINAPI TV_RingDetect (int);
void WINAPI TV_HangUpCtrl (int);
void WINAPI TV_OffHookCtrl (int);
void WINAPI TV_RingCtrl (int);
void WINAPI TV_PowerCtrl (int);
void WINAPI TV_SysPara (SP_STRUC far *);
void WINAPI TV_CompressRatio (int);
int WINAPI TV_SetMDPREventSpeed(int,int,int);
long WINAPI TV_StartRecord (int, char far *, int);
long WINAPI TV_StartRecord2 (int, char far *, int);
long WINAPI TV_StopRecord (int);
long WINAPI TV_RecordRest (int);
long WINAPI TV_StartPlay (int, char far *, int);
long WINAPI TV_StopPlay (int);
long WINAPI TV_PlayRest (int);
int WINAPI TV_StartDial (int, char far *);
int WINAPI TV_StopDial (int);
int WINAPI TV_DialRest (int);
int WINAPI TV_SetNobodyTime(long);
int WINAPI TV_ReceiveCallingID (int ch, char far *rb, int rl);
void WINAPI TV_FlushDTMF (int);
int WINAPI TV_GetDTMFChar (int);
char far *WINAPI TV_GetDTMFStr (int);
void WINAPI TV_StartTimer (int, long);
void WINAPI TV_StopTimer(int);
long WINAPI TV_TimerElapsed (int);
int WINAPI TV_CheckSignal (int, int *, int *);
int WINAPI TV_CheckOffHook (int, int *, int *);
int WINAPI TV_ListenerOffHook (int);
void WINAPI TV_ConnectChannels (int, int);
void WINAPI TV_DisconnectChannels (int, int);
void WINAPI TV_ConnectTo (int, int);
void WINAPI TV_Disconnect (int);
void WINAPI TV_Connect3 (int, int, int);
void WINAPI TV_Disconnect3 (int, int, int);
void WINAPI TV_GenerateSignal (int, int);
void WINAPI TV_GenerateRing (int);
long WINAPI TV_StartRecordFile (int, char *, long, long);
long WINAPI TV_RecordFileRest (int);
long WINAPI TV_StopRecordFile (int);
int WINAPI TV_TruncateFile (char *, long);
long WINAPI TV_StartPlayFile (int, char *, long, long);
long WINAPI TV_PlayFileRest (int);
long WINAPI TV_StopPlayFile (int);
void WINAPI TV_MakeSentence (double, unsigned char *);
long WINAPI TV_PlaySentence (int, unsigned char *);
long WINAPI TV_PlaySentenceRest (int);
void WINAPI TV_GetSerial (char far *);
void WINAPI TV_StartMonitor (int);
int WINAPI TV_MonitorOffHook (int, int);
int WINAPI TV_MonitorBusy (int, int, int);
void WINAPI TV_SetSignalLevel( int );
void WINAPI TV_SetChannelMode( int , int );
void WINAPI TV_SetSignalParam( int , int , int ,int ,int );
void WINAPI TV_SetDTMFSendSpeed( int ch, int speed);
void WINAPI TV_SetVoi(int ch, int v);
void WINAPI TV_SetSendMode( int ch, int m);
int WINAPI TV_SetFaxPort( int port );
int WINAPI TV_SetConfPort( int inPort, int outPort );
int WINAPI TV_SetConfPort2( int inPort, int outPort );
int WINAPI TV_AttachConf( int ch, int conf );
int WINAPI TV_AttachFax( int ch, int fax );
int WINAPI TV_AttachTwpcm( int ch );
void WINAPI TV_ConnectToTW8VID(int nCard,int srcSt, int srcCh, int dstSt,int dstCh);
int WINAPI TV_OcDetect(int ch);
int WINAPI TV_SetOcTime(int t);
int WINAPI TV_SetOcInterval(int omin,int omax);
void WINAPI TV_SetVoicei(int i,char far *filename);
int WINAPI TV_GetLastError();
int WINAPI TV_InternalRingDetect( int ch );
int WINAPI TV_SetVos( int v);
int WINAPI TV_SetAmp(int v); // 20 -- 80
int WINAPI TV_GetAdapterBuffer(int, char *, int);
int WINAPI TV_SetAdapterParam(int which,int v);
int WINAPI TV_SetChannelFreq(int ch,int Hz);
long WINAPI TV_StartRecord2 (int, char far *, int);
int WINAPI TV_SetMonitorCalled(int ch,int Flag);
int WINAPI TV_WaitForEvent(int,int timeout,TV_Event *);
int WINAPI TV_GetEvent(int,TV_Event*);
int WINAPI TV_ClearEvent(int);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -