public void InitBass()
{
try
{
Log.Info("BASS: Initializing BASS audio engine...");
bool initOK = false;
if (_bassFreed && Config.MusicPlayer != AudioPlayer.Bass)
{
Log.Debug("BASS: BASS audio engine was previously freed. Re-Init");
if (!Bass.BASS_Init(0, 48000, 0, IntPtr.Zero, Guid.Empty))
{
if (Bass.BASS_ErrorGetCode() != BASSError.BASS_ERROR_ALREADY)
{
HandleBassError("Initialze");
}
}
}
switch (Config.MusicPlayer)
{
case AudioPlayer.Bass:
initOK = InitDirectSoundDevice();
break;
case AudioPlayer.Asio:
initOK = InitAsio();
break;
case AudioPlayer.WasApi:
initOK = InitWasapi();
break;
}
if (initOK)
{
if (Settings.Instance.WinAmpPlugins.Count > 0)
{
BassWaDsp.BASS_WADSP_Init(GUIGraphicsContext.ActiveForm);
}
Log.Info("BASS: Initialization done.");
_initialized = true;
_bassFreed = false;
}
else
{
BASSError error = Bass.BASS_ErrorGetCode();
if (Config.MusicPlayer == AudioPlayer.Asio)
{
BASSError errorasio = BassAsio.BASS_ASIO_ErrorGetCode();
Log.Error("BASS: Error initializing BASS audio engine {0} Asio: {1}",
Enum.GetName(typeof(BASSError), error), Enum.GetName(typeof(BASSError), errorasio));
}
else
Log.Error("BASS: Error initializing BASS audio engine {0}", Enum.GetName(typeof(BASSError), error));
}
}
catch (Exception ex)
{
Log.Error("BASS: Initialize failed. Reason: {0}", ex.Message);
}
}