www.pudn.com > tv_song > 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