Attribute VB_Name = "mod_LineSpec"

Option Explicit
Option Base 0

Public Declare Function LineSpec_Startup Lib "linespec.dll" Alias "Startup" (ByVal InitMode As Long) As Long
Public Declare Function LineSpec_GetSpectrum Lib "linespec.dll" Alias "GetSpectrum" (SingleArray As Single, ByVal ArraySize As Long, ByVal Stereo As Long, ByVal Flags As Long, Boost As Single) As Long
Public Declare Sub LineSpec_Shutdown Lib "linespec.dll" Alias "Shutdown" ()

' For multithread, use &H1000000 as init flag;

' Passing the single array (3 values, stereo, no boost):
' Private SpectrumArray(5) As Single
' Call LineSpec_GetSpectrum(SpectrumArray(0), 3&, 3&, 0&, ByVal 0&)

' Passing the single array (1024 values, downmixed as mono, boost 1.5):
' Private SpectrumArray(1023) As Single
' Private SpectrumBoost As Single
' SpectrumBoost = 1.5
' Call LineSpec_GetSpectrum(SpectrumArray(0), 1024&, 0&, 0&, VarPtr(SpectrumBoost))
'
' (examples untested, sorry)
' Multidimensional arrays should work, so I have not yet tested if it is
'   (Channel, Frequ) or (Frequ, Channel)
