diff --git a/Source/Core/Core/DSPEmulator.cpp b/Source/Core/Core/DSPEmulator.cpp index 5aaf8a602c..9a5cd62a95 100644 --- a/Source/Core/Core/DSPEmulator.cpp +++ b/Source/Core/Core/DSPEmulator.cpp @@ -2,15 +2,16 @@ // Licensed under GPLv2+ // Refer to the license.txt file included. -#include "Core/DSPEmulator.h" +#include +#include "Core/DSPEmulator.h" #include "Core/HW/DSPHLE/DSPHLE.h" #include "Core/HW/DSPLLE/DSPLLE.h" -DSPEmulator *CreateDSPEmulator(bool HLE) +std::unique_ptr CreateDSPEmulator(bool hle) { - if (HLE) - return new DSPHLE(); - else - return new DSPLLE(); + if (hle) + return std::make_unique(); + + return std::make_unique(); } diff --git a/Source/Core/Core/DSPEmulator.h b/Source/Core/Core/DSPEmulator.h index b05e56ee1f..e07f6dd6e3 100644 --- a/Source/Core/Core/DSPEmulator.h +++ b/Source/Core/Core/DSPEmulator.h @@ -4,6 +4,7 @@ #pragma once +#include #include "Common/CommonTypes.h" class PointerWrap; @@ -32,4 +33,4 @@ public: virtual u32 DSP_UpdateRate() = 0; }; -DSPEmulator *CreateDSPEmulator(bool HLE); +std::unique_ptr CreateDSPEmulator(bool hle); diff --git a/Source/Core/Core/HW/DSP.cpp b/Source/Core/Core/HW/DSP.cpp index 0956952fa6..a7b3641e81 100644 --- a/Source/Core/Core/HW/DSP.cpp +++ b/Source/Core/Core/HW/DSP.cpp @@ -23,11 +23,11 @@ // the just used buffer through the AXList (or whatever it might be called in // Nintendo games). -#include "AudioCommon/AudioCommon.h" +#include +#include "AudioCommon/AudioCommon.h" #include "Common/CommonTypes.h" #include "Common/MemoryUtil.h" - #include "Core/ConfigManager.h" #include "Core/CoreTiming.h" #include "Core/DSPEmulator.h" @@ -167,7 +167,7 @@ static ARAM_Info g_ARAM_Info; static u16 g_AR_MODE; static u16 g_AR_REFRESH; -static DSPEmulator *dsp_emulator; +static std::unique_ptr dsp_emulator; static int dsp_slice = 0; static bool dsp_is_lle = false; @@ -230,9 +230,9 @@ void FlushInstantDMA(u32 address) } } -DSPEmulator *GetDSPEmulator() +DSPEmulator* GetDSPEmulator() { - return dsp_emulator; + return dsp_emulator.get(); } void Init(bool hle) @@ -284,8 +284,7 @@ void Shutdown() } dsp_emulator->Shutdown(); - delete dsp_emulator; - dsp_emulator = nullptr; + dsp_emulator.reset(); } void RegisterMMIO(MMIO::Mapping* mmio, u32 base)