vbAccelerator - Contents of code file: vbalMp3DataWriter_cLameEncoderVersion.cls

This file is part of the download VB6 Pluggable CD Ripper, which is described in the article CD Ripping in VB Part 2.

VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "cLameEncoderVersion"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
' ------------------------------------------------------------
' Name:   cLameEncoderVersion
' Author: Steve McMahon (steve@vbaccelerator.com)
' Date:   2004-05-06
' Description:
' Wrapper around LAME Encoder Version call.
'
' See http://vbaccelerator.com/
' ------------------------------------------------------------

Private Declare Sub beVersion Lib "lameencshim.dll" ( _
   beVersion As BE_VERSION)

Private Const BE_MAX_HOMEPAGE As Long = 128
Private Type BE_VERSION
   '// BladeEnc DLL Version number
   byDLLMajorVersion As Byte
   byDLLMinorVersion As Byte
   '// BladeEnc Engine Version Number
   byMajorVersion As Byte
   byMinorVersion As Byte
   '// DLL Release date
   byDay As Byte
   byMonth As Byte
   
   btYearHomepageDetail(0 To 133) As Byte
   ' Word alignment problem
   'WORD wYear
   '// BladeEnc Homepage URL
   'CHAR  zHomepage[BE_MAX_HOMEPAGE + 1];

   'BYTE  byAlphaLevel;
   'BYTE  byBetaLevel;
   'BYTE  byMMXEnabled;

   btReserved(0 To 124) As Byte

End Type

Private m_tBeVer As BE_VERSION
Private m_dReleaseDate As Date
Private m_sHomePage As String

Public Property Get DllMajorVersion() As Byte
   DllMajorVersion = m_tBeVer.byDLLMajorVersion
End Property
Public Property Get DllMinorVersion() As Byte
   DllMinorVersion = m_tBeVer.byDLLMinorVersion
End Property
Public Property Get MajorVersion() As Byte
   MajorVersion = m_tBeVer.byMajorVersion
End Property
Public Property Get MinorVersion() As Byte
   MinorVersion = m_tBeVer.byMinorVersion
End Property
Public Property Get ReleaseDate() As Date
   ReleaseDate = m_dReleaseDate
End Property
Public Property Get HomePage() As String
   HomePage = m_sHomePage
End Property
Public Property Get AlphaLevel() As Byte
   AlphaLevel = m_tBeVer.btYearHomepageDetail(131)
End Property
Public Property Get BetaLevel() As Byte
   BetaLevel = m_tBeVer.btYearHomepageDetail(132)
End Property
Public Property Get MMXEnabled() As Byte
   MMXEnabled = m_tBeVer.btYearHomepageDetail(133)
End Property

Private Sub decodeReleaseDate()
Dim iYear As Long
   iYear = m_tBeVer.btYearHomepageDetail(0)
   iYear = iYear Or (m_tBeVer.btYearHomepageDetail(1) * &H100&)
   On Error Resume Next
   m_dReleaseDate = DateSerial(iYear, m_tBeVer.byMonth, m_tBeVer.byDay)
End Sub
Private Sub decodeHomePage()
Dim i As Long
   i = 2
   Do While m_tBeVer.btYearHomepageDetail(i) > 0 And (i <= BE_MAX_HOMEPAGE + 2)
      m_sHomePage = m_sHomePage & Chr(m_tBeVer.btYearHomepageDetail(i))
      i = i + 1
   Loop
End Sub

Private Sub Class_Initialize()
   beVersion m_tBeVer
   decodeReleaseDate
   decodeHomePage
End Sub