summaryrefslogtreecommitdiffstats
path: root/src/audio_core/hle/dsp.cpp
diff options
context:
space:
mode:
authorMaribel <MerryMage@users.noreply.github.com>2016-05-15 04:04:03 +0200
committerbunnei <bunneidev@gmail.com>2016-05-15 04:04:03 +0200
commit6f6af6928fdff8c807e4a4d03cfd8906e0c7c7cd (patch)
treec857bb669cb13a0358ec6f5bee504963254534c6 /src/audio_core/hle/dsp.cpp
parentMerge pull request #1794 from Subv/regression_fix (diff)
downloadyuzu-6f6af6928fdff8c807e4a4d03cfd8906e0c7c7cd.tar
yuzu-6f6af6928fdff8c807e4a4d03cfd8906e0c7c7cd.tar.gz
yuzu-6f6af6928fdff8c807e4a4d03cfd8906e0c7c7cd.tar.bz2
yuzu-6f6af6928fdff8c807e4a4d03cfd8906e0c7c7cd.tar.lz
yuzu-6f6af6928fdff8c807e4a4d03cfd8906e0c7c7cd.tar.xz
yuzu-6f6af6928fdff8c807e4a4d03cfd8906e0c7c7cd.tar.zst
yuzu-6f6af6928fdff8c807e4a4d03cfd8906e0c7c7cd.zip
Diffstat (limited to '')
-rw-r--r--src/audio_core/hle/dsp.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/audio_core/hle/dsp.cpp b/src/audio_core/hle/dsp.cpp
index 0cdbdb06a..5113ad8ca 100644
--- a/src/audio_core/hle/dsp.cpp
+++ b/src/audio_core/hle/dsp.cpp
@@ -9,6 +9,7 @@
#include "audio_core/hle/pipe.h"
#include "audio_core/hle/source.h"
#include "audio_core/sink.h"
+#include "audio_core/time_stretch.h"
namespace DSP {
namespace HLE {
@@ -48,15 +49,29 @@ static std::array<Source, num_sources> sources = {
};
static std::unique_ptr<AudioCore::Sink> sink;
+static AudioCore::TimeStretcher time_stretcher;
void Init() {
DSP::HLE::ResetPipes();
+
for (auto& source : sources) {
source.Reset();
}
+
+ time_stretcher.Reset();
+ if (sink) {
+ time_stretcher.SetOutputSampleRate(sink->GetNativeSampleRate());
+ }
}
void Shutdown() {
+ time_stretcher.Flush();
+ while (true) {
+ std::vector<s16> residual_audio = time_stretcher.Process(sink->SamplesInQueue());
+ if (residual_audio.empty())
+ break;
+ sink->EnqueueSamples(residual_audio);
+ }
}
bool Tick() {
@@ -77,6 +92,7 @@ bool Tick() {
void SetSink(std::unique_ptr<AudioCore::Sink> sink_) {
sink = std::move(sink_);
+ time_stretcher.SetOutputSampleRate(sink->GetNativeSampleRate());
}
} // namespace HLE