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

📄 tw8vid.bas

📁 广播级有线电视台MTV互动点播系统
💻 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 + -