What's wrong here (DX8 midi)?
I get nothing but silence when this is done
assume the subs are called top to bottom
VB Code:
Option Explicit
Dim DX As DirectX8
Dim DSound As DirectSound8
Dim DSAudio As IBasicAudio 'Basic Audio Objectt
Dim DSEvent As IMediaEvent 'MediaEvent Object
Dim DSControl As IMediaControl 'MediaControl Object
Dim DSPosition As IMediaPosition 'MediaPosition Object
Public DisableSound As Boolean
Public DisableMusic As Boolean
Public Sub InitDirectX8(ByVal Handle As Long)
Set DX = New DirectX8
Set DSound = DX.DirectSoundCreate("")
DSound.SetCooperativeLevel Handle, DSSCL_NORMAL
End Sub
Public Sub LoadMusic(FileName As String)
'On Error GoTo ErrorHandle:
Set DSControl = New FilgraphManager
FileName = App.Path & "\tilesets\" & FileName
Select Case Right(FileName, 4)
Case ".wav", ".mid", ".mp3"
Case Else
If Dir(FileName & ".mid") <> "" Then
FileName = FileName + ".mid"
ElseIf Dir(FileName & ".mp3") <> "" Then
FileName = FileName + ".mp3"
End If
End Select
Call DSControl.RenderFile(FileName) 'yes, a valid midi file
Set DSAudio = DSControl
DSAudio.Volume = 0
DSAudio.Balance = 0
Set DSEvent = DSControl
Set DSPosition = DSControl
If ObjPtr(DSPosition) Then DSPosition.Rate = 1#
DSPosition.CurrentPosition = 0
end sub
Public Sub PlayMusic()
'On Error Resume Next
If DisableMusic = False Then
DSControl.Stop
DSPosition.CurrentPosition = 0
DSPosition.Rate = 1
DSAudio.Volume = 0
DSAudio.Balance = 0
DSControl.Run
End If
End Sub