📄 tw8vid.bas
字号:
Attribute VB_Name = "TW8VID"
'===================================================
Global Const LONG_MAX = 16& * 1024& * 1024
Global Const MAX_ADAPTERS = 8 ' 一台计算机中可以安装 TW8VID 的最大块数 (16)
Global Const MAX_CHANNELS = 8 * MAX_ADAPTERS '每块 TW8VID 有 8 个通道, 最大通道数为 (8 * MAX_ADAPTERS = 64)
Global Const CHANNEL_MASK = MAX_CHANNELS - 1
Global Const FILE_FLAG = 1 'TV_VoiceLen 中放入 FILE_FLAG 表示TV_VoiceData 中是文件名
Global Const DTMF_LEN = 32 '每个通道在初始化后最多可接收的 DTMF 码 (32)
'返回码常量定义
'==============
Global Const E_DRIVER = 255 ' TW8VID 驱动没有起来(TV_Installed调用结果)
Global Const E_OK = 0 ' 没有错误
Global Const E_COMMAND = 1 ' 错误命令
Global Const E_LENGTH = 2 ' 缓冲区过大
Global Const E_PLAY_RECORD = 3 ' 放音与录音冲突
Global Const E_CHANNEL = 4 ' 错误的通道号
Global Const E_ARGUMENT = 5 ' 参数错误
Global Const E_ERR_SYNC = 6 ' 0x6
Global Const E_OUT_OF_MEMORY = 7 ' 内存溢出
Global Const E_ERR = 8 ' 0x8
Global Const E_RECORD_BUSY = 9 ' 录音忙
Global Const E_FILEOPEN = 10 ' 文件打开错误
Global Const E_PLAY_BUSY = 11 ' 放音忙
'通道类型常量定义
'================
Global Const CT_INTERNAL = 0 ' 内线通道
Global Const CT_EXTERNAL = 1 ' 外线通道
Global Const CT_EMPTY = 2 ' 空通道
'压缩比常量定义
'==============
Global Const RATE_64K = 0 '8K字节/秒
Global Const RATE_32K = 1 '4K字节/秒
Global Const RATE_16K = 2 '2K字节/秒
Global Const RATE_8K = 3
Global Const RATE_48K = 4
Global Const RATE_24K = 5
Global Const RATE_12K = 6
Global Const RATE_6K = 7
Global Const SIGNAL_TYPE = 8 '信号音种类数 (8)
Global Const SIG_UNKNOWN = 96 '未知的信号音 (0x60)
Global Const SIG_TIMEOUT = 97 '信号音检查超时 (0x61)
Global Const SIG_OFFHOOK = 98 '被呼叫方已经摘机 (0x62)
Global Const SIG_NOBODY = 99 '电话拨通之后无人接听 (0x63)
Global Const SIG_SILENCE = 64 '无信号音 (0x40)
Global Const SIG_DIAL = 65 '拨号音 (0x41)
Global Const SIG_RING = 0 ' 振铃回音 (0x00)
Global Const SIG_BUSY1 = 1 ' 忙音 1 (0x01)
Global Const SIG_BUSY2 = 2 ' 忙音 2 (0x02)
' CHAR_NAME is for TV_MakeSentence(...)
' Type menu
Global Const CN_END = 0 ' End of sentence (Also end of string)
Global Const CN_NOTHING = 1 ' Do nothing
Global Const CN_DIGIT0 = 2 '
Global Const CN_DIGIT1 = 3 '
Global Const CN_DIGIT2 = 4 '
Global Const CN_DIGIT3 = 5 '
Global Const CN_DIGIT4 = 6 ' 0 - 4
Global Const CN_DIGIT5 = 7 '
Global Const CN_DIGIT6 = 8 '
Global Const CN_DIGIT7 = 9 '
Global Const CN_DIGIT8 = 10 '
Global Const CN_DIGIT9 = 11 ' 5 - 9
Global Const CN_TEN = 12 ' 10
Global Const CN_HUNDRED = 13 ' 100
Global Const CN_THOUSAND = 14 ' 1,000
Global Const CN_10THOUSAND = 15 ' 10,000
Global Const CN_100MILLION = 16 ' 100,000,000
Global Const CN_POINT = 17 ' "."
Global Const CN_NEGATIVE = 18 ' "-"
Global Const CN_LAST = 19 ' To be continued by YOU !
' END TYPE
Type PCB_STRUC
SilenceSigMin As Long '(125=5秒)无信号音的最短长度 (单位: 40ms)
DialSigMin As Long '( 50=2秒)拨号音的最短长度 (单位: 40ms)
SignalPara(SIGNAL_TYPE, 4) As Long
'// 各种信号音的时间参数 (单位: 40ms)
'// 其中第一个下标表示信号音类型, 用户可以定义信 号音类型 3 到 7
'// [x][0] : 信号音为低时的最小时间
'// [x][1] : 信号音为低时的最大时间
'// [x][2] : 信号音为高时的最小时间
'// [x][3] : 信号音为高时的最大时间
'//
'// 缺省值: [SIG_RING ][] = 90,110, 22, 28 (4,1 秒)
'// [SIG_BUSY1][] = 7, 11, 7, 11 (0.35, 0.35 秒)
'// [SIG_BUSY2][] = 11, 14, 11, 14 (0.5, 0.5 秒)
End Type ' 参数控制块
Type SP_STRUC
MajorVer As String * 1 '驱动程序主版本号
MinorVer As String * 1 '驱动程序副版本号
IRQNo As String * 1 '第一块 TW8VID 的IRQ 设置
IntrNo As String * 1 'IRQ 对应的中断号
PCBAddr As PCB_STRUC '指向 PCB_STRUC的指针
PCBAddr_Ofs As Long '
PCBAddr_Seg As Long '
AdapterNum As Long '系统中安装的TW8VID卡的数量
ChannelNum As Long '统中可使用的通道数
TW8VIDSeg(MAX_ADAPTERS) As Long '每块TW8VID 使用的段地址
End Type ' 系统参数结构
'AS A ENUM
'Global Const WS_HANGUP = 0
'Global Const WS_OFFHOOK = 1
'Global Const WS_DIALING = 2
'Global Const WS_BUSY = 3
'Global Const WS_CALLING = 4
'Global Const WS_RINGING = 5
'Global Const WS_CALLER = 6
'Global Const WS_LISTENER = 7
'Global Const WS_PLAYING = 8
'Global Const WS_RECORDING = 9
'Global Const WS_FINISH = 10
'Global Const WS_TIMER = 11
'Global Const WS_DTMF = 12
'WORKING_STATUS
Type CHANNEL_STRUC
CType As Long
CStatus As Long 'WORKING_STATUS
DTMF As String
'CS_Channel As long
FileName As String
End Type
Global Channels(MAX_CHANNELS) As CHANNEL_STRUC
Declare Function TV_Installed Lib "tw8vid32.dll" () As Long
Declare Sub TV_Initialize Lib "tw8vid32.dll" ()
Declare Function TV_ChannelType Lib "tw8vid32.dll" (ByVal s As Long) As Long
Declare Sub TV_Disable Lib "tw8vid32.dll" ()
Declare Sub TV_SysPara Lib "tw8vid32.dll" (sp As SP_STRUC)
Declare Function TV_OffHookDetect Lib "tw8vid32.dll" (ByVal i As Long) As Long
Declare Function TV_RingDetect Lib "tw8vid32.dll" (ByVal i As Long) As Long
Declare Sub TV_HangUpCtrl Lib "tw8vid32.dll" (ByVal i As Long)
Declare Sub TV_OffHookCtrl Lib "tw8vid32.dll" (ByVal i As Long)
Declare Sub TV_RingCtrl Lib "tw8vid32.dll" (ByVal i As Long)
Declare Sub TV_PowerCtrl Lib "tw8vid32.dll" (ByVal i As Long)
Declare Sub TV_CompressRatio Lib "tw8vid32.dll" (ByVal i As Long)
Declare Function TV_StartDial Lib "tw8vid32.dll" (ByVal Chn As Long, ByVal This_LPSTR As String) As Long
Declare Function TV_StopDial Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Function TV_DialRest Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Sub TV_FlushDTMF Lib "tw8vid32.dll" (ByVal Chn As Long)
Declare Function TV_GetDTMFChar Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Function TV_GetDTMFStr Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Sub TV_StartTimer Lib "tw8vid32.dll" (ByVal Chn As Long, ByVal AllTime As Long)
Declare Function TV_TimerElapsed Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Function TV_CheckSignal Lib "tw8vid32.dll" (ByVal Chn As Long, X As Any, Y As Any) As Long
Declare Function TV_ListenerOffHook Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Sub TV_ConnectChannels Lib "tw8vid32.dll" (ByVal chn1 As Long, ByVal chn2 As Long)
Declare Sub TV_DisconnectChannels Lib "tw8vid32.dll" (ByVal chn1 As Long, ByVal chn2 As Long)
Declare Sub TV_ConnectTo Lib "tw8vid32.dll" (ByVal Schn As Long, ByVal Dchn As Long)
Declare Sub TV_DisConnect Lib "tw8vid32.dll" (ByVal chn1 As Long)
Declare Sub TV_Connect3 Lib "tw8vid32.dll" (ByVal chn1 As Long, ByVal chn2 As Long, ByVal chn3 As Long)
Declare Sub TV_Disconnect3 Lib "tw8vid32.dll" (ByVal chn1 As Long, ByVal chn2 As Long, ByVal chn3 As Long)
Declare Sub TV_GenerateSignal Lib "tw8vid32.dll" (ByVal i As Long, ByVal j As Long)
Declare Sub TV_GenerateRing Lib "tw8vid32.dll" (ByVal Chn As Long)
Declare Function TV_StartRecordFile Lib "tw8vid32.dll" (ByVal Chn As Long, ByVal FileName As String, ByVal Start As Long, ByVal Length As Long) As Long
Declare Function TV_RecordFileRest Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Function TV_StopRecordFile Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Function TV_TruncateFile Lib "tw8vid32.dll" (ByVal FileName As String, ByVal Length As Long) As Long
Declare Function TV_StartPlayFile Lib "tw8vid32.dll" (ByVal Chn As Long, ByVal FileName As String, ByVal Start As Long, ByVal Length As Long) As Long
Declare Function TV_PlayFileRest Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Function TV_StopPlayFile Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Function TV_SetClose Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Function TV_SetLength Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Sub TV_GetPcb Lib "tw8vid32.dll" (ThisPCB As PCB_STRUC)
Declare Sub TV_SetPcb Lib "tw8vid32.dll" (ThisPCB As PCB_STRUC)
Declare Sub TV_GetSerial Lib "tw8vid32.dll" (ByVal Serial As String)
Declare Sub TV_StartMonitor Lib "tw8vid32.dll" (ByVal Chn As Long)
Declare Function TV_MonitorOffHook Lib "tw8vid32.dll" (ByVal Chn As Long, ByVal RingTime As Long) As Long
Declare Function TV_MonitorBusy Lib "tw8vid32.dll" (ByVal Chn As Long, ByVal VoiceType As Long, ByVal VoiceNum As Long) As Long
Declare Function TV_TW8BRingTimes Lib "tw8vid32.dll" (ByVal RingTime As Long) As Long
Declare Sub TV_PulseMode Lib "tw8vid32.dll" (ByVal i As Long)
Declare Function TV_PlaySentenceRest Lib "tw8vid32.dll" (ByVal Chn As Long) As Long
Declare Sub TV_MakeSentence Lib "tw8vid32.dll" (ByVal Dig_DB As Double, ByVal Dig_Str As String)
Declare Function TV_PlaySentence Lib "tw8vid32.dll" (ByVal Chn As Long, ByVal Chars As String) As Long
Declare Sub TV_SetVoicei Lib "tw8vid32.dll" (ByVal i As Long, ByVal strs As String)
Declare Function TV_ReceiveCallingID Lib "tw8vid32.dll" (ByVal Ch As Long, ByVal rb As String, ByVal rl As Long) As Long
Declare Sub TV_SetSignalLevel Lib "tw8vid32.dll" (ByVal level As Long)
Declare Sub TV_SetChannelMode Lib "tw8vid32.dll" (byvalchannel As Long, ByVal mode As Long)
Declare Function TV_GetLastError Lib "tw8vid32.dll" () As Long
Declare Sub TV_SetSignalParam Lib "tw8vid32.dll" (ByVal Tis As Long, ByVal lmin As Long, ByVal lmax As Long, ByVal hmin As Long, ByVal hmax As Long)
Declare Sub TV_SetDTMFSendSpeed Lib "tw8vid32.dll" (ByVal CNO As Long, ByVal SPEED As Long)
Declare Function TV_SetOcTime Lib "tw8vid32.dll" (ByVal i As Long) As Long
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -