mirror of
https://git.h3cjp.net/H3cJP/citra.git
synced 2024-11-27 06:22:49 +00:00
DSP now works... committing this!!
This commit is contained in:
parent
5604613642
commit
3d1180ee21
|
@ -1,3 +1,4 @@
|
||||||
|
#pragma optimize("", off)
|
||||||
// Copyright 2017 Citra Emulator Project
|
// Copyright 2017 Citra Emulator Project
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
@ -14,7 +15,11 @@
|
||||||
namespace AudioCore {
|
namespace AudioCore {
|
||||||
|
|
||||||
DspInterface::DspInterface() = default;
|
DspInterface::DspInterface() = default;
|
||||||
DspInterface::~DspInterface() = default;
|
DspInterface::~DspInterface() {
|
||||||
|
LOG_WARNING(Audio_DSP, "c1");
|
||||||
|
sink.reset();
|
||||||
|
LOG_WARNING(Audio_DSP, "c2");
|
||||||
|
}
|
||||||
|
|
||||||
void DspInterface::SetSink(const std::string& sink_id, const std::string& audio_device) {
|
void DspInterface::SetSink(const std::string& sink_id, const std::string& audio_device) {
|
||||||
sink = CreateSinkFromID(Settings::values.sink_id, Settings::values.audio_device_id);
|
sink = CreateSinkFromID(Settings::values.sink_id, Settings::values.audio_device_id);
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#elif HAVE_FDK
|
#elif HAVE_FDK
|
||||||
#include "audio_core/hle/fdk_decoder.h"
|
#include "audio_core/hle/fdk_decoder.h"
|
||||||
#endif
|
#endif
|
||||||
|
#include <iostream>
|
||||||
#include "audio_core/hle/common.h"
|
#include "audio_core/hle/common.h"
|
||||||
#include "audio_core/hle/decoder.h"
|
#include "audio_core/hle/decoder.h"
|
||||||
#include "audio_core/hle/hle.h"
|
#include "audio_core/hle/hle.h"
|
||||||
|
@ -148,8 +149,11 @@ DspHle::Impl::Impl(DspHle& parent_, Memory::MemorySystem& memory) : parent(paren
|
||||||
}
|
}
|
||||||
|
|
||||||
DspHle::Impl::~Impl() {
|
DspHle::Impl::~Impl() {
|
||||||
|
LOG_WARNING(Audio_DSP, "b1");
|
||||||
Core::Timing& timing = Core::System::GetInstance().CoreTiming();
|
Core::Timing& timing = Core::System::GetInstance().CoreTiming();
|
||||||
|
LOG_WARNING(Audio_DSP, "b2");
|
||||||
timing.UnscheduleEvent(tick_event, 0);
|
timing.UnscheduleEvent(tick_event, 0);
|
||||||
|
LOG_WARNING(Audio_DSP, "b3");
|
||||||
}
|
}
|
||||||
|
|
||||||
DspState DspHle::Impl::GetDspState() const {
|
DspState DspHle::Impl::GetDspState() const {
|
||||||
|
@ -448,7 +452,12 @@ void DspHle::Impl::AudioTickCallback(s64 cycles_late) {
|
||||||
}
|
}
|
||||||
|
|
||||||
DspHle::DspHle(Memory::MemorySystem& memory) : impl(std::make_unique<Impl>(*this, memory)) {}
|
DspHle::DspHle(Memory::MemorySystem& memory) : impl(std::make_unique<Impl>(*this, memory)) {}
|
||||||
DspHle::~DspHle() = default;
|
DspHle::~DspHle() {
|
||||||
|
|
||||||
|
LOG_WARNING(Audio_DSP, "a1");
|
||||||
|
impl.reset();
|
||||||
|
LOG_WARNING(Audio_DSP, "a2");
|
||||||
|
}
|
||||||
|
|
||||||
u16 DspHle::RecvData(u32 register_number) {
|
u16 DspHle::RecvData(u32 register_number) {
|
||||||
return impl->RecvData(register_number);
|
return impl->RecvData(register_number);
|
||||||
|
|
|
@ -547,13 +547,10 @@ void System::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar&* service_manager.get();
|
ar&* service_manager.get();
|
||||||
ar& GPU::g_regs;
|
ar& GPU::g_regs;
|
||||||
ar& LCD::g_regs;
|
ar& LCD::g_regs;
|
||||||
if (Archive::is_loading::value) {
|
if (!dynamic_cast<AudioCore::DspHle*>(dsp_core.get())) {
|
||||||
dsp_core.reset();
|
throw std::runtime_error("Only HLE audio supported");
|
||||||
}
|
}
|
||||||
if (dsp_core) {
|
ar&* dynamic_cast<AudioCore::DspHle*>(dsp_core.get());
|
||||||
throw "BLEH";
|
|
||||||
}
|
|
||||||
ar& dsp_core;
|
|
||||||
ar&* memory.get();
|
ar&* memory.get();
|
||||||
ar&* kernel.get();
|
ar&* kernel.get();
|
||||||
|
|
||||||
|
@ -562,7 +559,7 @@ void System::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
Service::GSP::SetGlobalModule(*this);
|
Service::GSP::SetGlobalModule(*this);
|
||||||
|
|
||||||
memory->SetDSP(*dsp_core);
|
memory->SetDSP(*dsp_core);
|
||||||
dsp_core->SetSink(Settings::values.sink_id, Settings::values.audio_device_id);
|
// dsp_core->SetSink(Settings::values.sink_id, Settings::values.audio_device_id);
|
||||||
dsp_core->EnableStretching(Settings::values.enable_audio_stretching);
|
dsp_core->EnableStretching(Settings::values.enable_audio_stretching);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue