vbAccelerator - Contents of code file: frmDiscID.frmVERSION 5.00
Begin VB.Form frmDiskID
Caption = "Disk ID Calculator and Track Listing"
ClientHeight = 7425
ClientLeft = 2340
ClientTop = 2490
ClientWidth = 10185
BeginProperty Font
Name = "Tahoma"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Icon = "frmDiscID.frx":0000
LinkTopic = "Form1"
ScaleHeight = 7425
ScaleWidth = 10185
Begin VB.ListBox lstDetails
Height = 2595
Left = 1020
TabIndex = 8
Top = 4620
Width = 3855
End
Begin VB.CommandButton cmdQueryCDDB
Caption = "Get &Details..."
Height = 435
Left = 1020
TabIndex = 7
Top = 4140
Width = 1275
End
Begin VB.CommandButton cmdConfigure
Caption = "&Configure..."
Height = 375
Left = 180
TabIndex = 6
Top = 120
Width = 1335
End
Begin VB.TextBox txtCDDBQuery
Height = 315
Left = 1020
TabIndex = 2
Text = $"frmDiscID.frx":1272
Top = 3720
Width = 3795
End
Begin VB.ListBox lstToc
Height = 2595
Left = 1020
TabIndex = 1
Top = 1020
Width = 3795
End
Begin VB.ComboBox cboDrives
Height = 315
Left = 1020
Style = 2 'Dropdown List
TabIndex = 0
Top = 540
Width = 3795
End
Begin VB.Label lblCDDBQuery
Caption = "&Query:"
Height = 255
Left = 120
TabIndex = 5
Top = 3780
Width = 1095
End
Begin VB.Label lblToc
Caption = "&Toc:"
Height = 255
Left = 180
TabIndex = 4
Top = 1080
Width = 1095
End
Begin VB.Label lblDrives
Caption = "&Drives:"
Height = 255
Left = 180
TabIndex = 3
Top = 600
Width = 1155
End
End
Attribute VB_Name = "frmDiskID"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private m_cCDDrives As cCDDrives
Private WithEvents m_cFreeDb As cFreeDB
Attribute m_cFreeDb.VB_VarHelpID = -1
Private Sub showDrives()
Dim i As Long
For i = 1 To m_cCDDrives.Count
cboDrives.AddItem _
"Host Adaptor: " & m_cCDDrives.HostAdaptor(i) & _
", Device ID: " & m_cCDDrives.id(i) & _
", LUN: " & m_cCDDrives.lun(i)
Next i
If (cboDrives.ListCount > 0) Then
cboDrives.ListIndex = 0
End If
End Sub
Private Sub cboDrives_Click()
Screen.MousePointer = vbHourglass
lstToc.Clear
txtCDDBQuery.Text = ""
Dim cToc As cCDToc
Set cToc = m_cCDDrives.TOC(cboDrives.ListIndex + 1)
If (cToc.NoCD) Then
lstToc.AddItem "No CD."
Else
lstToc.AddItem "Tracks on CD: " & cToc.TrackCount
lstToc.AddItem ""
' Add the tracks:
Dim i As Long
For i = 1 To cToc.TrackCount
lstToc.AddItem _
"Track " & Format(i, "000") & ": " & _
Format(cToc.TrackLengthMinutes(i), "00") & ":" & _
Format(cToc.TrackLengthSeconds(i), "00") & ":" & _
Format(cToc.TrackLengthFrames(i), "00") & " " & _
IIf(cToc.TrackType(i) = ECDAudio, "(Audio) ", "(Data) ") & _
"Offset:" & _
cToc.TrackOffset(i)
Next i
lstToc.AddItem "Lead Out: " & _
Format(cToc.LeadOutMinutes, "00") & ":" & _
Format(cToc.LeadOutSeconds, "00") & ":" & _
Format(cToc.LeadOutFrames, "00") & " Offset:" & _
cToc.LeadOutOffset
lstToc.AddItem "Total Length (s): " & cToc.TotalLengthSeconds
lstToc.AddItem ""
lstToc.AddItem "Disk ID: " & Hex(cToc.CDDBId)
txtCDDBQuery.Text = cToc.CDDBQuery
End If
Screen.MousePointer = vbNormal
End Sub
Private Sub cmdConfigure_Click()
Dim fC As New frmConfigureFreeDb
fC.FreeDB = m_cFreeDb
fC.Show vbModal, Me
End Sub
Private Sub cmdQueryCDDB_Click()
lstDetails.Clear
cmdQueryCDDB.Enabled = False
m_cFreeDb.Command = txtCDDBQuery.Text
m_cFreeDb.Start
End Sub
Private Sub Form_Load()
Me.Show
Me.Refresh
Set m_cCDDrives = New cCDDrives
showDrives
Set m_cFreeDb = New cFreeDB
End Sub
Private Sub Form_Resize()
On Error Resume Next
Dim lWidth As Long
lWidth = Me.ScaleWidth - cboDrives.Left - 8 * Screen.TwipsPerPixelX
cboDrives.Width = lWidth
lstToc.Width = lWidth
txtCDDBQuery.Width = lWidth
lstDetails.Width = lWidth
End Sub
Private Sub m_cFreeDb_CommandReady()
Select Case True
Case InStr(m_cFreeDb.Command, "cddb query") > 0
Dim cQR As cFreeDbQueryResponse
Set cQR = m_cFreeDb.QueryResponse
If (cQR.MatchCount = 0) Then
If (cQR.ReturnCode = QRMoreThanOneMatch) Then
MsgBox "No matches found for that CD.", vbInformation
Else
MsgBox "Failed to retrieve information: " &
cQR.ReturnCodeDescription, vbExclamation
End If
cmdQueryCDDB.Enabled = True
Else
Dim iIndex As Long
If (cQR.MatchCount > 1) Then
Dim fS As New frmSelectMatch
fS.QueryResponse = cQR
fS.Show vbModal, Me
iIndex = fS.SelectedMatch
Else
iIndex = 1
End If
If (iIndex > 0) Then
lstDetails.AddItem "Artist: " & cQR.Artist(iIndex)
lstDetails.AddItem "Title: " & cQR.Title(iIndex)
lstDetails.AddItem "Category:" & cQR.Category(iIndex)
lstDetails.AddItem ""
m_cFreeDb.Command = "cddb read " & cQR.Category(iIndex) & " " &
cQR.DiscID(iIndex)
m_cFreeDb.Start
Else
cmdQueryCDDB.Enabled = True
End If
End If
Case InStr(m_cFreeDb.Command, "cddb read") > 0
showCDDetails m_cFreeDb.ReadResponse
cmdQueryCDDB.Enabled = True
End Select
End Sub
Private Sub showCDDetails( _
cRR As cFreeDbReadResponse _
)
With cRR
Dim i As Long
For i = 1 To .TrackCount
lstDetails.AddItem .Title(i)
Next i
End With
End Sub
|
|