?? dtmf.frm
字號:
VERSION 5.00
Begin VB.Form Form1
Caption = "DTMF Decode (KB5RYO)"
ClientHeight = 5385
ClientLeft = 60
ClientTop = 435
ClientWidth = 8610
LinkTopic = "Form1"
Picture = "DTMF.frx":0000
ScaleHeight = 359
ScaleMode = 3 'Pixel
ScaleWidth = 574
StartUpPosition = 3 'Windows Default
Begin VB.ListBox list1
BackColor = &H00C0FFFF&
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 2985
ItemData = "DTMF.frx":439C
Left = 5880
List = "DTMF.frx":439E
TabIndex = 7
Top = 840
Width = 2295
End
Begin VB.ComboBox DeviceBox
BackColor = &H00C0FFFF&
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 360
Left = 1560
TabIndex = 6
Text = " "
Top = 3480
Width = 3735
End
Begin VB.CommandButton Command1
Caption = "Clear"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 4320
TabIndex = 5
Top = 840
Width = 975
End
Begin VB.TextBox Text1
BackColor = &H00C0FFFF&
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1440
TabIndex = 4
Text = " "
Top = 840
Width = 2415
End
Begin VB.PictureBox Display
BackColor = &H00C0FFFF&
FillColor = &H00FFFFFF&
ForeColor = &H000080FF&
Height = 1215
Left = 1440
ScaleHeight = 77
ScaleMode = 3 'Pixel
ScaleWidth = 259
TabIndex = 3
Top = 1920
Width = 3945
End
Begin VB.CommandButton About
Caption = "About"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 4950
TabIndex = 2
Top = 4560
Width = 1335
End
Begin VB.CommandButton Close
Caption = "Close"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 2760
TabIndex = 1
Top = 4560
Width = 1335
End
Begin VB.CommandButton Start
Caption = "Start"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 600
TabIndex = 0
Top = 4560
Width = 1335
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'****************************************************
'DTMF Decoded by KB5RYO
'A simple DTMF decoded for the pc using the sound card...
'Uses AudioFFT code by Muphy McCauley(MurphyMc@Concentric.NET)
' http://www.fullspectrum.com/deeth/
'
'*****************************************************
Option Explicit
Private DevHandle As Long 'Handle of the open audio device
Private Visualizing As Boolean
Private Divisor As Long
Dim Tone_on(0 To 16) As Integer
Private ScopeHeight As Long 'Saves time because hitting up a Long is faster
'than a property.
Private Type WaveFormatEx
FormatTag As Integer
Channels As Integer
SamplesPerSec As Long
AvgBytesPerSec As Long
BlockAlign As Integer
BitsPerSample As Integer
ExtraDataSize As Integer
End Type
Private Type WaveHdr
lpData As Long
dwBufferLength As Long
dwBytesRecorded As Long
dwUser As Long
dwFlags As Long
dwLoops As Long
lpNext As Long 'wavehdr_tag
Reserved As Long
End Type
Private Type WaveInCaps
ManufacturerID As Integer 'wMid
ProductID As Integer 'wPid
DriverVersion As Long 'MMVERSIONS vDriverVersion
ProductName(1 To 32) As Byte 'szPname[MAXPNAMELEN]
Formats As Long
Channels As Integer
Reserved As Integer
End Type
Private Const WAVE_INVALIDFORMAT = &H0& '/* invalid format */
Private Const WAVE_FORMAT_1M08 = &H1& '/* 11.025 kHz, Mono, 8-bit
Private Const WAVE_FORMAT_1S08 = &H2& '/* 11.025 kHz, Stereo, 8-bit
Private Const WAVE_FORMAT_1M16 = &H4& '/* 11.025 kHz, Mono, 16-bit
Private Const WAVE_FORMAT_1S16 = &H8& '/* 11.025 kHz, Stereo, 16-bit
Private Const WAVE_FORMAT_2M08 = &H10& '/* 22.05 kHz, Mono, 8-bit
Private Const WAVE_FORMAT_2S08 = &H20& '/* 22.05 kHz, Stereo, 8-bit
Private Const WAVE_FORMAT_2M16 = &H40& '/* 22.05 kHz, Mono, 16-bit
Private Const WAVE_FORMAT_2S16 = &H80& '/* 22.05 kHz, Stereo, 16-bit
Private Const WAVE_FORMAT_4M08 = &H100& '/* 44.1 kHz, Mono, 8-bit
Private Const WAVE_FORMAT_4S08 = &H200& '/* 44.1 kHz, Stereo, 8-bit
Private Const WAVE_FORMAT_4M16 = &H400& '/* 44.1 kHz, Mono, 16-bit
Private Const WAVE_FORMAT_4S16 = &H800& '/* 44.1 kHz, Stereo, 16-bit
Private Const WAVE_FORMAT_PCM = 1
Private Const WHDR_DONE = &H1& '/* done bit */
Private Const WHDR_PREPARED = &H2& '/* set if this header has been prepared */
Private Const WHDR_BEGINLOOP = &H4& '/* loop start block */
Private Const WHDR_ENDLOOP = &H8& '/* loop end block */
Private Const WHDR_INQUEUE = &H10& '/* reserved for driver */
Private Const WIM_OPEN = &H3BE
Private Const WIM_CLOSE = &H3BF
Private Const WIM_DATA = &H3C0
Private Declare Function waveInAddBuffer Lib "winmm" (ByVal InputDeviceHandle As Long, ByVal WaveHdrPointer As Long, ByVal WaveHdrStructSize As Long) As Long
Private Declare Function waveInPrepareHeader Lib "winmm" (ByVal InputDeviceHandle As Long, ByVal WaveHdrPointer As Long, ByVal WaveHdrStructSize As Long) As Long
Private Declare Function waveInUnprepareHeader Lib "winmm" (ByVal InputDeviceHandle As Long, ByVal WaveHdrPointer As Long, ByVal WaveHdrStructSize As Long) As Long
Private Declare Function waveInGetNumDevs Lib "winmm" () As Long
Private Declare Function waveInGetDevCaps Lib "winmm" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, ByVal WaveInCapsPointer As Long, ByVal WaveInCapsStructSize As Long) As Long
Private Declare Function waveInOpen Lib "winmm" (WaveDeviceInputHandle As Long, ByVal WhichDevice As Long, ByVal WaveFormatExPointer As Long, ByVal CallBack As Long, ByVal CallBackInstance As Long, ByVal Flags As Long) As Long
Private Declare Function waveInClose Lib "winmm" (ByVal WaveDeviceInputHandle As Long) As Long
Private Declare Function waveInStart Lib "winmm" (ByVal WaveDeviceInputHandle As Long) As Long
Private Declare Function waveInReset Lib "winmm" (ByVal WaveDeviceInputHandle As Long) As Long
Private Declare Function waveInStop Lib "winmm" (ByVal WaveDeviceInputHandle As Long) As Long
Public Sub InitDevices()
'Fill the DeviceBox box with all the compatible audio input devices
'Bail if there are none.
Dim Caps As WaveInCaps, Which As Long
DeviceBox.Clear
For Which = 0 To waveInGetNumDevs - 1
Call waveInGetDevCaps(Which, VarPtr(Caps), Len(Caps))
If Caps.Formats And WAVE_FORMAT_1M16 Then '16-bit mono devices
Call DeviceBox.AddItem(StrConv(Caps.ProductName, vbUnicode), Which)
End If
Next
If DeviceBox.ListCount = 0 Then
MsgBox "You have no audio input devices!", vbCritical, "Ack!"
End 'Ewww! End! Bad me!
End If
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -