|
||||
|
vbAccelerator - Contents of code file: cCDTocEntry.clsThis file is part of the download VB5 CD Ripper, which is described in the article CD Ripping in VB Part 1. VERSION 1.0 CLASS BEGIN MultiUse = -1 'True END Attribute VB_Name = "cTocEntry" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Option Explicit ' ------------------------------------------------------------ ' Name: cTocEntry ' Author: Steve McMahon (steve@vbaccelerator.com) ' Date: 2004-05-06 ' Description: ' Class describing a single entry in the Table of Contents ' (TOC) of a CD, intended for use with the wrapper around ' the CDRip.DLL API. ' ' See http://vbaccelerator.com/ ' ------------------------------------------------------------ Public Enum ECDRipTOCEntryType CDROMDATAFLAG = &H4 AUDIOTRKFLAG = &H10 End Enum Private m_cdIndex As Long Private m_startSector As Long Private m_endSector As Long Private m_trackNumber As Byte Private m_eEntryType As ECDRipTOCEntryType Private m_lOffset As Long Friend Sub fInit( _ ByVal lCDIndex As Long, _ ByVal lStartSector As Long, _ ByVal bFlag As Byte, _ ByVal bTrackNumber As Byte, _ ByVal lEndSector As Long _ ) m_cdIndex = lCDIndex m_startSector = lStartSector m_trackNumber = bTrackNumber m_eEntryType = bFlag m_endSector = lEndSector End Sub Public Property Get StartSector() As Long StartSector = m_startSector End Property Public Property Get EndSector() As Long EndSector = m_endSector End Property Public Property Get TrackNumber() As Byte TrackNumber = m_trackNumber End Property Public Property Get TOCEntryType() As ECDRipTOCEntryType TOCEntryType = m_eEntryType End Property Public Property Get Offset() As Long Offset = m_startSector + 150 ' 2s * 75 frames/second End Property Public Property Get SizeBytes() As Long Dim lFrames As Long lFrames = m_endSector - m_startSector SizeBytes = ((lFrames * 4&) / 75&) * 44100 End Property Public Property Get StartTimeMinutes() As Long StartTimeMinutes = Int(Offset / (75 * 60)) End Property Public Property Get StartTimeSeconds() As Long StartTimeSeconds = (Int(Offset / 75)) Mod 60 End Property Public Property Get StartTimeFrames() As Long StartTimeFrames = Offset Mod 75 End Property Public Property Get FormattedStartTime() As String FormattedStartTime = FormattedTime(StartTimeMinutes, _ StartTimeSeconds, StartTimeFrames) End Property Public Property Get FormattedLength() As String FormattedLength = FormattedTime(LengthMinutes, _ LengthSeconds, LengthFrames) End Property Private Function FormattedTime(ByVal minutes As Long, ByVal seconds As Long, ByVal frames As Long) As String FormattedTime = Format(minutes, "##0") & ":" & _ Format(seconds, "00") & "." & Format((frames * 60) / 75, "00") End Function Public Property Get LengthMinutes() As Long LengthMinutes = Int((m_endSector - m_startSector) / (75 * 60)) End Property Public Property Get LengthSeconds() As Long LengthSeconds = (Int((m_endSector - m_startSector) / 75)) Mod 60 End Property Public Property Get LengthFrames() As Long LengthFrames = (m_endSector - m_startSector) Mod 75 End Property Friend Property Get fCDIndex() As Long fCDIndex = m_cdIndex End Property
|
|||
|