📄 a4drv.h
字号:
#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 + -