logs: cleanup for audio backends

In process of removing GENERAL log channel.
This commit is contained in:
Nekotekina 2020-01-31 15:05:35 +03:00
parent a867522b16
commit 67075dfc6c
6 changed files with 55 additions and 44 deletions

View file

@ -7,23 +7,23 @@
#pragma comment(lib, "OpenAL32.lib")
#endif
LOG_CHANNEL(OpenAL);
#define checkForAlError(sit) do { ALenum g_last_al_error = alGetError(); if(g_last_al_error != AL_NO_ERROR) fmt::throw_exception("%s: OpenAL error 0x%04x", sit, g_last_al_error); } while(0)
#define checkForAlcError(sit) do { ALCenum g_last_alc_error = alcGetError(m_device); if(g_last_alc_error != ALC_NO_ERROR) fmt::throw_exception("%s: OpenALC error 0x%04x", sit, g_last_alc_error); } while(0)
#define checkForAlError(sit) do { ALenum g_last_al_error = alGetError(); if(g_last_al_error != AL_NO_ERROR) OpenAL.error("%s: OpenAL error 0x%04x", sit, g_last_al_error); } while(0)
#define checkForAlcError(sit) do { ALCenum g_last_alc_error = alcGetError(m_device); if(g_last_alc_error != ALC_NO_ERROR) OpenAL.error("%s: OpenALC error 0x%04x", sit, g_last_alc_error); return; } while(0)
OpenALBackend::OpenALBackend()
: m_sampling_rate(get_sampling_rate())
, m_sample_size(get_sample_size())
{
ALCdevice* m_device = alcOpenDevice(nullptr);
checkForAlcError("OpenALBackend->alcOpenDevice");
checkForAlcError("alcOpenDevice");
ALCcontext* m_context = alcCreateContext(m_device, nullptr);
checkForAlcError("OpenALBackend->alcCreateContext");
checkForAlcError("alcCreateContext");
alcMakeContextCurrent(m_context);
checkForAlcError("OpenALBackend->alcMakeContextCurrent");
checkForAlcError("alcMakeContextCurrent");
if (get_channels() == 2)
{
@ -128,7 +128,7 @@ bool OpenALBackend::AddData(const void* src, u32 num_samples)
// Fail if there are no free buffers remaining
if (m_num_unqueued == 0)
{
LOG_WARNING(GENERAL, "OpenALBackend : no unqueued buffers remaining");
OpenAL.warning("No unqueued buffers remaining");
return false;
}

View file

@ -7,10 +7,11 @@
#include "ALSABackend.h"
LOG_CHANNEL(ALSA);
static void error(int err, const char* reason)
{
LOG_ERROR(GENERAL, "ALSA: %s failed: %s\n", reason, snd_strerror(err));
ALSA.error("ALSA: %s failed: %s\n", reason, snd_strerror(err));
}
static bool check(int err, const char* reason)
@ -105,7 +106,7 @@ void ALSABackend::Open(u32 num_buffers)
if (!check(snd_pcm_prepare(tls_handle), "snd_pcm_prepare"))
return;
LOG_NOTICE(GENERAL, "ALSA: bufsize_frames=%u, period_frames=%u", bufsize_frames, period_frames);
ALSA.notice("bufsize_frames=%u, period_frames=%u", bufsize_frames, period_frames);
}
void ALSABackend::Close()
@ -137,7 +138,7 @@ bool ALSABackend::AddData(const void* src, u32 num_samples)
if (res == -EAGAIN)
{
LOG_WARNING(GENERAL, "ALSA: EAGAIN");
ALSA.warning("EAGAIN");
return false;
}
@ -147,7 +148,7 @@ bool ALSABackend::AddData(const void* src, u32 num_samples)
if (res < 0)
{
LOG_WARNING(GENERAL, "ALSA: failed to recover (%d)", res);
ALSA.warning("Failed to recover (%d)", res);
return false;
}
@ -156,7 +157,7 @@ bool ALSABackend::AddData(const void* src, u32 num_samples)
if (res != num_frames)
{
LOG_WARNING(GENERAL, "ALSA: error (%d)", res);
ALSA.warning("Error (%d)", res);
return false;
}

View file

@ -4,6 +4,8 @@
#include "FAudioBackend.h"
LOG_CHANNEL(FAudio);
FAudioBackend::FAudioBackend()
{
u32 res;
@ -11,13 +13,15 @@ FAudioBackend::FAudioBackend()
res = FAudioCreate(&m_instance, 0, FAUDIO_DEFAULT_PROCESSOR);
if (res)
{
fmt::throw_exception("FAudioCreate() failed(0x%08x)", res);
FAudio.fatal("FAudioCreate() failed(0x%08x)", res);
return;
}
res = FAudio_CreateMasteringVoice(m_instance, &m_master_voice, g_cfg.audio.downmix_to_2ch ? 2 : 8, 48000, 0, 0, nullptr);
if (res)
{
fmt::throw_exception("FAudio_CreateMasteringVoice() failed(0x%08x)", res);
FAudio.fatal("FAudio_CreateMasteringVoice() failed(0x%08x)", res);
return;
}
}
@ -48,7 +52,7 @@ void FAudioBackend::Play()
u32 res = FAudioSourceVoice_Start(m_source_voice, 0, FAUDIO_COMMIT_NOW);
if (res)
{
LOG_ERROR(GENERAL, "FAudioSourceVoice_Start() failed(0x%08x)", res);
FAudio.error("FAudioSourceVoice_Start() failed(0x%08x)", res);
Emu.Pause();
}
}
@ -60,7 +64,7 @@ void FAudioBackend::Pause()
u32 res = FAudioSourceVoice_Stop(m_source_voice, 0, FAUDIO_COMMIT_NOW);
if (res)
{
LOG_ERROR(GENERAL, "FAudioSourceVoice_Stop() failed(0x%08x)", res);
FAudio.error("FAudioSourceVoice_Stop() failed(0x%08x)", res);
Emu.Pause();
}
}
@ -72,7 +76,7 @@ void FAudioBackend::Flush()
u32 res = FAudioSourceVoice_FlushSourceBuffers(m_source_voice);
if (res)
{
LOG_ERROR(GENERAL, "FAudioSourceVoice_FlushSourceBuffers() failed(0x%08x)", res);
FAudio.error("FAudioSourceVoice_FlushSourceBuffers() failed(0x%08x)", res);
Emu.Pause();
}
}
@ -111,7 +115,7 @@ void FAudioBackend::Open(u32 /* num_buffers */)
u32 res = FAudio_CreateSourceVoice(m_instance, &m_source_voice, &waveformatex, 0, FAUDIO_DEFAULT_FREQ_RATIO, nullptr, nullptr, nullptr);
if (res)
{
LOG_ERROR(GENERAL, "FAudio_CreateSourceVoice() failed(0x%08x)", res);
FAudio.error("FAudio_CreateSourceVoice() failed(0x%08x)", res);
Emu.Pause();
}
@ -128,7 +132,7 @@ bool FAudioBackend::AddData(const void* src, u32 num_samples)
if (state.BuffersQueued >= MAX_AUDIO_BUFFERS)
{
LOG_WARNING(GENERAL, "XAudio2Backend : too many buffers enqueued (%d)", state.BuffersQueued);
FAudio.warning("Too many buffers enqueued (%d)", state.BuffersQueued);
return false;
}
@ -146,7 +150,7 @@ bool FAudioBackend::AddData(const void* src, u32 num_samples)
u32 res = FAudioSourceVoice_SubmitSourceBuffer(m_source_voice, &buffer, nullptr);
if (res)
{
LOG_ERROR(GENERAL, "FAudioSourceVoice_SubmitSourceBuffer() failed(0x%08x)", res);
FAudio.error("FAudioSourceVoice_SubmitSourceBuffer() failed(0x%08x)", res);
Emu.Pause();
return false;
}
@ -170,7 +174,7 @@ f32 FAudioBackend::SetFrequencyRatio(f32 new_ratio)
u32 res = FAudioSourceVoice_SetFrequencyRatio(m_source_voice, new_ratio, FAUDIO_COMMIT_NOW);
if (res)
{
LOG_ERROR(GENERAL, "FAudioSourceVoice_SetFrequencyRatio() failed(0x%08x)", res);
FAudio.error("FAudioSourceVoice_SetFrequencyRatio() failed(0x%08x)", res);
Emu.Pause();
return 1.0f;
}

View file

@ -9,6 +9,8 @@
#include "XAudio2Backend.h"
#include "3rdparty/XAudio2_7/XAudio2.h"
LOG_CHANNEL(XAudio);
class XAudio27Library : public XAudio2Backend::XAudio2Library
{
const HMODULE tls_xaudio2_lib;
@ -25,7 +27,7 @@ public:
hr = CoInitializeEx(nullptr, COINIT_MULTITHREADED);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : CoInitializeEx() failed(0x%08x)", (u32)hr);
XAudio.error("CoInitializeEx() failed(0x%08x)", (u32)hr);
Emu.Pause();
return;
}
@ -33,7 +35,7 @@ public:
hr = XAudio2Create(&tls_xaudio2_instance, 0, XAUDIO2_DEFAULT_PROCESSOR);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : XAudio2Create() failed(0x%08x)", (u32)hr);
XAudio.error("XAudio2Create() failed(0x%08x)", (u32)hr);
Emu.Pause();
return;
}
@ -41,7 +43,7 @@ public:
hr = tls_xaudio2_instance->CreateMasteringVoice(&tls_master_voice, g_cfg.audio.downmix_to_2ch ? 2 : 8, 48000);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : CreateMasteringVoice() failed(0x%08x)", (u32)hr);
XAudio.error("CreateMasteringVoice() failed(0x%08x)", (u32)hr);
tls_xaudio2_instance->Release();
Emu.Pause();
}
@ -76,7 +78,7 @@ public:
HRESULT hr = tls_source_voice->Start();
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : Start() failed(0x%08x)", (u32)hr);
XAudio.error("Start() failed(0x%08x)", (u32)hr);
Emu.Pause();
}
}
@ -86,7 +88,7 @@ public:
HRESULT hr = tls_source_voice->FlushSourceBuffers();
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : FlushSourceBuffers() failed(0x%08x)", (u32)hr);
XAudio.error("FlushSourceBuffers() failed(0x%08x)", (u32)hr);
Emu.Pause();
}
}
@ -96,7 +98,7 @@ public:
HRESULT hr = tls_source_voice->Stop();
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : Stop() failed(0x%08x)", (u32)hr);
XAudio.error("Stop() failed(0x%08x)", (u32)hr);
Emu.Pause();
}
}
@ -129,7 +131,7 @@ public:
hr = tls_xaudio2_instance->CreateSourceVoice(&tls_source_voice, &waveformatex, 0, XAUDIO2_DEFAULT_FREQ_RATIO);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : CreateSourceVoice() failed(0x%08x)", (u32)hr);
XAudio.error("CreateSourceVoice() failed(0x%08x)", (u32)hr);
Emu.Pause();
return;
}
@ -145,7 +147,7 @@ public:
// XAudio 2.7 bug workaround, when it says "SimpList: non-growable list ran out of room for new elements" and hits int 3
if (state.BuffersQueued >= MAX_AUDIO_BUFFERS)
{
LOG_WARNING(GENERAL, "XAudio2Backend : too many buffers enqueued (%d, pos=%u)", state.BuffersQueued, state.SamplesPlayed);
XAudio.warning("Too many buffers enqueued (%d, pos=%u)", state.BuffersQueued, state.SamplesPlayed);
return false;
}
@ -164,7 +166,7 @@ public:
HRESULT hr = tls_source_voice->SubmitSourceBuffer(&buffer);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : AddData() failed(0x%08x)", (u32)hr);
XAudio.error("AddData() failed(0x%08x)", (u32)hr);
Emu.Pause();
return false;
}
@ -188,7 +190,7 @@ public:
HRESULT hr = tls_source_voice->SetFrequencyRatio(new_ratio);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : SetFrequencyRatio() failed(0x%08x)", (u32)hr);
XAudio.error("SetFrequencyRatio() failed(0x%08x)", (u32)hr);
Emu.Pause();
return 1.0f;
}

View file

@ -9,6 +9,8 @@
#include "XAudio2Backend.h"
#include "3rdparty/minidx12/Include/xaudio2.h"
LOG_CHANNEL(XAudio);
class XAudio28Library : public XAudio2Backend::XAudio2Library
{
const HMODULE tls_xaudio2_lib;
@ -27,7 +29,7 @@ public:
hr = CoInitializeEx(nullptr, COINIT_MULTITHREADED);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : CoInitializeEx() failed(0x%08x)", (u32)hr);
XAudio.error("CoInitializeEx() failed(0x%08x)", (u32)hr);
Emu.Pause();
return;
}
@ -35,7 +37,7 @@ public:
hr = create(&tls_xaudio2_instance, 0, XAUDIO2_DEFAULT_PROCESSOR);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : XAudio2Create() failed(0x%08x)", (u32)hr);
XAudio.error("XAudio2Create() failed(0x%08x)", (u32)hr);
Emu.Pause();
return;
}
@ -43,7 +45,7 @@ public:
hr = tls_xaudio2_instance->CreateMasteringVoice(&tls_master_voice, g_cfg.audio.downmix_to_2ch ? 2 : 8, 48000);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : CreateMasteringVoice() failed(0x%08x)", (u32)hr);
XAudio.error("CreateMasteringVoice() failed(0x%08x)", (u32)hr);
tls_xaudio2_instance->Release();
Emu.Pause();
}
@ -80,7 +82,7 @@ public:
HRESULT hr = tls_source_voice->Start();
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : Start() failed(0x%08x)", (u32)hr);
XAudio.error("Start() failed(0x%08x)", (u32)hr);
Emu.Pause();
}
}
@ -92,7 +94,7 @@ public:
HRESULT hr = tls_source_voice->FlushSourceBuffers();
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : FlushSourceBuffers() failed(0x%08x)", (u32)hr);
XAudio.error("FlushSourceBuffers() failed(0x%08x)", (u32)hr);
Emu.Pause();
}
}
@ -104,7 +106,7 @@ public:
HRESULT hr = tls_source_voice->Stop();
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : Stop() failed(0x%08x)", (u32)hr);
XAudio.error("Stop() failed(0x%08x)", (u32)hr);
Emu.Pause();
}
}
@ -139,7 +141,7 @@ public:
hr = tls_xaudio2_instance->CreateSourceVoice(&tls_source_voice, &waveformatex, 0, XAUDIO2_DEFAULT_FREQ_RATIO);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : CreateSourceVoice() failed(0x%08x)", (u32)hr);
XAudio.error("CreateSourceVoice() failed(0x%08x)", (u32)hr);
Emu.Pause();
return;
}
@ -157,7 +159,7 @@ public:
if (state.BuffersQueued >= MAX_AUDIO_BUFFERS)
{
LOG_WARNING(GENERAL, "XAudio2Backend : too many buffers enqueued (%d)", state.BuffersQueued);
XAudio.warning("Too many buffers enqueued (%d)", state.BuffersQueued);
return false;
}
@ -176,7 +178,7 @@ public:
HRESULT hr = tls_source_voice->SubmitSourceBuffer(&buffer);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : AddData() failed(0x%08x)", (u32)hr);
XAudio.error("AddData() failed(0x%08x)", (u32)hr);
Emu.Pause();
return false;
}
@ -200,7 +202,7 @@ public:
HRESULT hr = tls_source_voice->SetFrequencyRatio(new_ratio);
if (FAILED(hr))
{
LOG_ERROR(GENERAL, "XAudio2Backend : SetFrequencyRatio() failed(0x%08x)", (u32)hr);
XAudio.error("SetFrequencyRatio() failed(0x%08x)", (u32)hr);
Emu.Pause();
return 1.0f;
}

View file

@ -8,6 +8,8 @@
#include "XAudio2Backend.h"
#include <Windows.h>
LOG_CHANNEL(XAudio);
XAudio2Backend::XAudio2Backend()
{
}
@ -43,19 +45,19 @@ void XAudio2Backend::Open(u32 /* num_buffers */)
// XAudio 2.9 uses the same code as XAudio 2.8
lib.reset(xa28_init(hmodule));
LOG_SUCCESS(GENERAL, "XAudio 2.9 initialized");
XAudio.success("XAudio 2.9 initialized");
}
else if (hmodule = LoadLibraryExW(L"XAudio2_8.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32))
{
lib.reset(xa28_init(hmodule));
LOG_SUCCESS(GENERAL, "XAudio 2.8 initialized");
XAudio.success("XAudio 2.8 initialized");
}
else if (hmodule = LoadLibraryExW(L"XAudio2_7.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32))
{
lib.reset(xa27_init(hmodule));
LOG_SUCCESS(GENERAL, "XAudio 2.7 initialized");
XAudio.success("XAudio 2.7 initialized");
}
else
{