VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "FX"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Public Enum BassDX8_FXConst
BASS_FX_DX8_CHORUS = 0
BASS_FX_DX8_COMPRESSOR = 1
BASS_FX_DX8_DISTORTION = 2
BASS_FX_DX8_ECHO = 3
BASS_FX_DX8_FLANGER = 4
BASS_FX_DX8_GARGLE = 5
BASS_FX_DX8_I3DL2REVERB = 6
BASS_FX_DX8_PARAMEQ = 7
BASS_FX_DX8_REVERB = 8
End Enum

Public Enum BassDX8_PhaseConst
BASS_DX8_PHASE_NEG_180 = 0
BASS_DX8_PHASE_NEG_90 = 1
BASS_DX8_PHASE_ZERO = 2
BASS_DX8_PHASE_90 = 3
BASS_DX8_PHASE_180 = 4
End Enum

Private Declare Function BASS_ChannelSetFX Lib "bass.dll" (ByVal Handle As Long, ByVal Type_ As Long, ByVal Priority As Long) As Long
Private Declare Function BASS_FXSetParameters Lib "bass.dll" (ByVal Handle As Long, ByRef par As Any) As Long
Private Declare Function BASS_FXGetParameters Lib "bass.dll" (ByVal Handle As Long, ByRef par As Any) As Long
Private Declare Function BASS_FXReset Lib "bass.dll" (ByVal Handle As Long) As Long

Private mHandle As Long

Sub SetFX(Handle As Long, Type_ As BassDX8_FXConst, Priority As Integer)
mHandle = BASS_ChannelSetFX(Handle, Type_, Priority)
End Sub

Function Reset() As Boolean
Reset = BASS_FXReset(mHandle)
End Function

Function GetParameters()
Dim bl As Boolean
Dim tmp

bl = BASS_FXGetParameters(mHandle, tmp)
GetParameters = tmp

End Function

Function SetParameters(ByRef Params) As Boolean
SetParameters = BASS_FXSetParameters(mHandle, Params)
End Function

Property Get Handle() As Long
Handle = mHandle
End Property
