Merge pull request #4490 from wwylele/teakra-new

audio: implement DSP LLE
This commit is contained in:
Ben 2019-01-11 16:45:00 +01:00 committed by GitHub
commit 4f23d5d69e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 766 additions and 61 deletions

View file

@ -6,6 +6,7 @@
#include "audio_core/sink.h"
#include "audio_core/sink_details.h"
#include "citra_qt/configuration/configure_audio.h"
#include "core/core.h"
#include "core/settings.h"
#include "ui_configure_audio.h"
@ -19,6 +20,11 @@ ConfigureAudio::ConfigureAudio(QWidget* parent)
ui->output_sink_combo_box->addItem(id);
}
ui->emulation_combo_box->addItem(tr("HLE (fast)"));
ui->emulation_combo_box->addItem(tr("LLE (accurate)"));
ui->emulation_combo_box->addItem(tr("LLE multi-core"));
ui->emulation_combo_box->setEnabled(!Core::System::GetInstance().IsPoweredOn());
connect(ui->volume_slider, &QSlider::valueChanged, this,
&ConfigureAudio::setVolumeIndicatorText);
@ -41,6 +47,18 @@ void ConfigureAudio::setConfiguration() {
ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching);
ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum());
setVolumeIndicatorText(ui->volume_slider->sliderPosition());
int selection;
if (Settings::values.enable_dsp_lle) {
if (Settings::values.enable_dsp_lle_multithread) {
selection = 2;
} else {
selection = 1;
}
} else {
selection = 0;
}
ui->emulation_combo_box->setCurrentIndex(selection);
}
void ConfigureAudio::setOutputSinkFromSinkID() {
@ -85,6 +103,8 @@ void ConfigureAudio::applyConfiguration() {
.toStdString();
Settings::values.volume =
static_cast<float>(ui->volume_slider->sliderPosition()) / ui->volume_slider->maximum();
Settings::values.enable_dsp_lle = ui->emulation_combo_box->currentIndex() != 0;
Settings::values.enable_dsp_lle_multithread = ui->emulation_combo_box->currentIndex() == 2;
}
void ConfigureAudio::updateAudioDevices(int sink_index) {