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

📄 a4drv.h

📁 单路开发文档和源代码例子12-13 VC源码 自动拨号
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __A4DRV_H__
#define __A4DRV_H__

//////////////////////////////////////////
//
//DLL版本
//如果用Tma4drv_DLL_Version()取的版本跟此不同
//就为同时发布的.h和DLL.
//
///////////////////////////////////////////
#define TMA4DRV_DLL_VERSION				 39


#define MAX_CHANNLES		1			//最多能同时控制的路数//保留,未使用
#define TOTALBUFSIZE		2000		//上一层播放文件时一次读入的数据不能超过此数字,否则会出现最后数据不能被播放
#define MAX_FILEVOLUME		200


//
//  Event Define
//  事件类型定义.同步与系统发出的消息,请选择其中一种方式处理
//
#define	TEvent_InterOffHook		0		// 本地电话机摘机事件

//TV_Event.data.dataResult
// 0 摘机
// 1 挂机			
#define TEvent_PcDoHook			1		// 本地调用TV_OffHookCtrl软摘机或TV_HangUpCtrl软挂机成功

//TV_Event.data.ptrData='1' 为一声震铃结束
//其它为开始震铃
//TV_Event.data.dataResult震铃次数
#define TEvent_Ring				3		// 某一外线通道振铃事件

#define TEvent_DialEnd			4		// 拨号结束事件

//TEvent.data.ptrData[0]=0为单文件播放结束
//TEvent.data.ptrData[0]=1为多文件连播结束,返回最后一个文件播放的ID
#define TEvent_PlayEnd			5		// 放音结束事件

#define TEvent_NoPSTNLine		6		//没有接入PSTN外线,当调用TV_OffHook(),让设备摘机后如果没有接入PSTN就触发该消息

#define TEvent_Silence			9		//通话是一定时间的静音.默认为5秒

//收到DTMF码事件
//如果是在电脑摘机TV_OffHookCtrl后需要接受对方按键,建议设置录音方式会TV_SetRecSource(RS_SPK)
#define TEvent_GetChar			10		// 收到DTMF码事件

//Result:1、3传统方式检测到
//Result:2使用检测彩铃方式检测到
//Result:4:使用级性反转方式检测到
//对每次拨号系统只提示一次
#define TEvent_OffHook			11		// 拨号后,被叫方摘机事件

#define TEvent_HangUp			12		// 挂机事件

#define TEvent_Nobody			13		// 拨号后,没人接听事件

#define TEvent_Busy				14		// 检测到忙音事件

#define TEvent_InterHangUp		19		// 本地电话机挂机

#define TEvent_Dial				28		//检测到拨号音

#define TEvent_TelDial			29		//检测到话机拨号DTMF码

#define TEvent_GetFsk			30		//得到FSK来电

#define TEvent_StopCallIn		31		//对方停止呼叫,(产生一个未接电话)

#define TEvent_GetDTMF			32		//得到DTMF码来电

#define TEvent_TelCallOut		33		//电话机呼出。也就电话机拨号后听到回铃音

#define TEvent_RingBack			34		//电脑拨号后接受到回铃音了

#define TEvent_PlugOut			36		//电话伴侣设备被拔掉

#define TEvent_PlugIn			37		//电话伴侣设备插入

#define TEvent_RecordError		38		//录音发生错误(建议重新初始化设备)

#define TEvent_PlayError		39		//播放错误(建议重新初始化设备)

#define TEvent_GetDTMFTimeOut	40		//接收DTMF来电超时(未震铃)。

#define TEvent_MicIn			41		//MIC插入状态

#define TEvent_MicOut			42		//MIC拔出状态

//(调用TV_StartFlash后达到指定的时间就完成一个FLASH),不是用户按电话机的拍插簧动作
#define TEvent_FlashEnd			43		//拍插簧(Flash)完成

//TV_Event.data.ptr为识别结果
#define TEvent_GetSpeech		44		//检测到准确的语音识别结果


//
//取事件的数据结构
//

#define MaxDataLen		46

typedef struct{
	long  Result;
	char ptrData[MaxDataLen];	
	}DATASTR;
typedef struct {
	long  Type;		// Type of Event:事件类型。(以上定义)
	DATASTR data;
}TV_Event;


typedef struct{

	DWORD SampleCount;//已经播放的采样点数量
	DWORD ByteCount;//已经播放的字节数

}DEV_PLAYSTATE;


//copy from mmsystem.h

/*
 *  extended waveform format structure used for all non-PCM formats. this
 *  structure is common to all non-PCM formats.
 */
typedef struct tTMWAVEFORMATEX
{
    WORD        wFormatTag;         /* format type */
    WORD        nChannels;          /* number of channels (i.e. mono, stereo...) */
    DWORD       nSamplesPerSec;     /* sample rate */
    DWORD       nAvgBytesPerSec;    /* for buffer estimation */
    WORD        nBlockAlign;        /* block size of data */
    WORD        wBitsPerSample;     /* number of bits per sample of mono data */
    WORD        cbSize;             /* the count in bytes of the size of */
				    /* extra information (after cbSize) */
} TMWAVEFORMATEX, *PTMWAVEFORMATEX, NEAR *NPTMWAVEFORMATEX, FAR *LPTMWAVEFORMATEX;
typedef const TMWAVEFORMATEX FAR *LPTMCWAVEFORMATEX;


//
//播放回调函数的参数
//

typedef struct {

	long iCallBackType;//类型。0:表示还未全部放完,1表示全部缓冲放完

	char *pBuf;//缓冲地址

	long lSize;//缓冲空闲大小

	void *pParam;//其它用户定义的参数

}TmPlayState,*pTmPlayState;

//
//播放回调函数类型
//
typedef long (CALLBACK *CallBack_PlayMix)(pTmPlayState pPlayState);


typedef struct {

	char *pBuf;//缓冲地址

	long lSize;//缓冲大小

	void *pParam;//用户定义的参数

}TmRecState,*pTmRecState;

//
//录音回调函数
//返回:保留,无意义
//pBuf:录音数据缓冲,回调将被马上删除,请在回调中复制出来再使用
//lBufSize:缓冲长度
//
typedef long (CALLBACK *CallBack_Record)(void *pParam,char *pBuf,long lBufSize);

typedef long (CALLBACK *CallBack_Record2)(pTmRecState RecState);


#define RS_MIC				0
#define RS_SPK				1
#define RS_DOID				2
#define RS_SPKDOID			3
#define RS_NULL				0xFFFF


#define DS_TEL				0x1
#define DS_OFFHOOK			0x2
#define DS_RING				0x4
#define DS_REMOTE			0x5

//
//对不同的放音方式用不同的音量设置
//不统一设置,避免互相音量干饶
//
#define VT_PLAYBUF			0
#define VT_PLAYFILE			1
#define VT_MASTER			2
#define VT_PLAYAUDIO		3//DATE:2005/1/11声卡播放的音量
#define VT_RECAUDIO			4//DATE:2005/1/11声卡录音的音量
#define VT_GROUPPLAY		5//统一设置播放组的音量
#define VT_GROUPREC			6//统一设置录音组的音量

#define WF_ALAW				0//ALAW  8k/s
#define WF_LINE				1//线性wave:16位,8K,单通道16k/s
#define WF_ADPCM			2//ADPCM 4位,8K,单通道 4k/s//此版本还不支持此压缩格式
#define WF_729B				3//使用729B压缩,每秒1K的存储空间,但用此格式保存的文件不能被windows播放器,如: MEDIA PLAY准确播放


//
//设备类型定义
//
#define DEVICE_TYPE_TELMATEI	  1//I型电话伴侣(A6)
#define DEVICE_TYPE_TELMATEII	  2//II型电话伴侣(V6)
#define DEVICE_TYPE_RECBOXS		  3//单路录音盒//此开发包不支持开发
#define DEVICE_TYPE_RECBOXT		  4//二路录音盒//此开发包不支持开发
#define DEVICE_TYPE_RECBOXF		  5//四路录音盒//此开发包不支持开发
#define DEVICE_TYPE_RECBOXE		  6//八路录音盒//此开发包不支持开发
#define DEVICE_TYPE_TELMATEV2	  7//电话伴侣V2
#define DEVICE_TYPE_TELMATEV3	  8//电话伴侣V3
#define DEVICE_TYPE_TELMATEE2	  9//电话伴侣2路外线
#define DEVICE_TYPE_TELMATEV7	  10//电话伴侣V7带耳机
#define DEVICE_TYPE_TELMATEV8	  11//电话伴侣V8带震铃
#define DEVICE_TYPE_TELMATEV5	  12//电话伴侣V5带耳机(座席)//不再提供,对应的提供DEVICE_TYPE_BRIDGEA3



#define DEVICE_TYPE_BRIDGEA1				21//玻瑞器A1
#define DEVICE_TYPE_BRIDGEA2				22//玻瑞器A2
#define DEVICE_TYPE_BRIDGEA3				23//玻瑞器A3
#define DEVICE_TYPE_BRIDGEA4				24//玻瑞器A4
#define DEVICE_TYPE_BRIDGEB1				31//玻瑞器B1
#define DEVICE_TYPE_BRIDGEB2				32//玻瑞器B2
#define DEVICE_TYPE_BRIDGEB3				33//玻瑞器B3
#define DEVICE_TYPE_BRIDGEB4				34//玻瑞器B4


#define DEVICE_TYPE_TELMATEOEM	  0xFF//V6OEM设备

#define DEVICE_TYPE_INVALIDATE	  0xFFFF//未授权的盒子



#define DEVICE_FM_TEL			 0x1//可接入电话机
#define DEVICE_FM_MICSPK		 0x2//设备带有耳机麦克风插口
#define DEVICE_FM_TELRING		 0x4//可以让电话机震铃
#define DEVICE_FM_DISABLEPSTN	 0x8//有此功能时可用TV_EnableRing()来控制电话机断开PSTN
#define DEVICE_FM_RPOLARITY		 0x10//具有级性反转检测对方摘机的功能
#define DEVICE_FM_PSTNREC		 0x20//具有PSTN通话录音功能
#define DEVICE_FM_PSTNOFFHOOK	 0x40//具有电脑摘机功能,摘机后就可以用电脑拨号、来电留言,如果有耳机可以用耳机通话器等功能了
#define DEVICE_FM_PSTNCALLID	 0x80//接收来电号码
#define DEVICE_FM_VOIP			 0x100//具有实现VOIP功能,网络语音跟PSTN数据转发。

/////////////////////////////////////////
//-----------------ERROR---------------//

#define TMERR_INVALID_HANDLE			-1//不合法的句柄
#define TMERR_NOMEMORY					-5//没有足够的内存

///////////////////////////////////////////

//
//开始消息定义
//同步与事件,请选择其中一种方式处理
//

/*******************************系统发出的消息****************************/

////////////////////////////////////////////////////////
// MsgName:		 WM_USBPLUG_MESSAGE
//
// Function:     设备插拔消息
//
// wParam:0		 设备被拔掉
//
// wParam:1		 设备被插入
//
// lParam:		 保留
//////////////////////////////////////////////////////////
#define WM_USBPLUG_MESSAGE			(WM_USER+700)
#define TI_USBPLUG_MESSAGE			WM_USBPLUG_MESSAGE


//////////////////////////////////////////////////////////
// MsgName:		 TI_RECORDBUF_MESSAGE
//
// Function:     把设备上采集到的数据返回消息
//
// wParam:		 数据内容长度
//
// lParam:		 数据内容
/////////////////////////////////////////////////////////
#define TI_RECORDBUF_MESSAGE		(WM_USER+703)//取的录音数据

/////////////////////////////////////////////////////////
// MsgName:		 TI_PLAYBUFEND_MESSAGE
//
// Function:     播放缓冲数据完毕
//
// wParam:		 保留
//
// lParam:		 保留
//////////////////////////////////////////////////////////
#define TI_PLAYBUFEND_MESSAGE		(WM_USER+705)

/////////////////////////////////////////////////////////
// MsgName:		 TI_HANGUP_MESSAGE
//
// Function:     通话过程中对方挂机消息

⌨️ 快捷键说明

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