diff options
Diffstat (limited to 'src/yuzu')
| -rw-r--r-- | src/yuzu/configuration/configure_audio.cpp | 47 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_audio.h | 3 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_general.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics.cpp | 44 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_input.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu/debugger/wait_tree.cpp | 47 | ||||
| -rw-r--r-- | src/yuzu/game_list_worker.cpp | 7 | ||||
| -rw-r--r-- | src/yuzu/ui_settings.cpp | 8 | ||||
| -rw-r--r-- | src/yuzu/ui_settings.h | 5 | 
9 files changed, 99 insertions, 70 deletions
| diff --git a/src/yuzu/configuration/configure_audio.cpp b/src/yuzu/configuration/configure_audio.cpp index 6ea59f2a3..eb1da0f9e 100644 --- a/src/yuzu/configuration/configure_audio.cpp +++ b/src/yuzu/configuration/configure_audio.cpp @@ -21,9 +21,8 @@ ConfigureAudio::ConfigureAudio(QWidget* parent)          ui->output_sink_combo_box->addItem(sink_detail.id);      } -    connect(ui->volume_slider, &QSlider::valueChanged, [this] { -        ui->volume_indicator->setText(tr("%1 %").arg(ui->volume_slider->sliderPosition())); -    }); +    connect(ui->volume_slider, &QSlider::valueChanged, this, +            &ConfigureAudio::setVolumeIndicatorText);      this->setConfiguration();      connect(ui->output_sink_combo_box, @@ -37,32 +36,48 @@ ConfigureAudio::ConfigureAudio(QWidget* parent)  ConfigureAudio::~ConfigureAudio() = default;  void ConfigureAudio::setConfiguration() { +    setOutputSinkFromSinkID(); + +    // The device list cannot be pre-populated (nor listed) until the output sink is known. +    updateAudioDevices(ui->output_sink_combo_box->currentIndex()); + +    setAudioDeviceFromDeviceID(); + +    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()); +} + +void ConfigureAudio::setOutputSinkFromSinkID() {      int new_sink_index = 0; + +    const QString sink_id = QString::fromStdString(Settings::values.sink_id);      for (int index = 0; index < ui->output_sink_combo_box->count(); index++) { -        if (ui->output_sink_combo_box->itemText(index).toStdString() == Settings::values.sink_id) { +        if (ui->output_sink_combo_box->itemText(index) == sink_id) {              new_sink_index = index;              break;          }      } -    ui->output_sink_combo_box->setCurrentIndex(new_sink_index); -    ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); - -    // The device list cannot be pre-populated (nor listed) until the output sink is known. -    updateAudioDevices(new_sink_index); +    ui->output_sink_combo_box->setCurrentIndex(new_sink_index); +} +void ConfigureAudio::setAudioDeviceFromDeviceID() {      int new_device_index = -1; + +    const QString device_id = QString::fromStdString(Settings::values.audio_device_id);      for (int index = 0; index < ui->audio_device_combo_box->count(); index++) { -        if (ui->audio_device_combo_box->itemText(index).toStdString() == -            Settings::values.audio_device_id) { +        if (ui->audio_device_combo_box->itemText(index) == device_id) {              new_device_index = index;              break;          }      } +      ui->audio_device_combo_box->setCurrentIndex(new_device_index); +} -    ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); -    ui->volume_indicator->setText(tr("%1 %").arg(ui->volume_slider->sliderPosition())); +void ConfigureAudio::setVolumeIndicatorText(int percentage) { +    ui->volume_indicator->setText(tr("%1%", "Volume percentage (e.g. 50%)").arg(percentage));  }  void ConfigureAudio::applyConfiguration() { @@ -81,10 +96,10 @@ void ConfigureAudio::updateAudioDevices(int sink_index) {      ui->audio_device_combo_box->clear();      ui->audio_device_combo_box->addItem(AudioCore::auto_device_name); -    std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString(); -    std::vector<std::string> device_list = AudioCore::GetSinkDetails(sink_id).list_devices(); +    const std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString(); +    const std::vector<std::string> device_list = AudioCore::GetSinkDetails(sink_id).list_devices();      for (const auto& device : device_list) { -        ui->audio_device_combo_box->addItem(device.c_str()); +        ui->audio_device_combo_box->addItem(QString::fromStdString(device));      }  } diff --git a/src/yuzu/configuration/configure_audio.h b/src/yuzu/configuration/configure_audio.h index 4f0af4163..207f9dfb3 100644 --- a/src/yuzu/configuration/configure_audio.h +++ b/src/yuzu/configuration/configure_audio.h @@ -26,6 +26,9 @@ public slots:  private:      void setConfiguration(); +    void setOutputSinkFromSinkID(); +    void setAudioDeviceFromDeviceID(); +    void setVolumeIndicatorText(int percentage);      std::unique_ptr<Ui::ConfigureAudio> ui;  }; diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index 9292d9a42..f5db9e55b 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp @@ -13,7 +13,7 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent)      ui->setupUi(this); -    for (auto theme : UISettings::themes) { +    for (const auto& theme : UISettings::themes) {          ui->theme_combobox->addItem(theme.first, theme.second);      } diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp index 839d58f59..cd1549462 100644 --- a/src/yuzu/configuration/configure_graphics.cpp +++ b/src/yuzu/configuration/configure_graphics.cpp @@ -8,27 +8,7 @@  #include "ui_configure_graphics.h"  #include "yuzu/configuration/configure_graphics.h" -ConfigureGraphics::ConfigureGraphics(QWidget* parent) -    : QWidget(parent), ui(new Ui::ConfigureGraphics) { - -    ui->setupUi(this); -    this->setConfiguration(); - -    ui->frame_limit->setEnabled(Settings::values.use_frame_limit); -    connect(ui->toggle_frame_limit, &QCheckBox::stateChanged, ui->frame_limit, -            &QSpinBox::setEnabled); -    connect(ui->bg_button, &QPushButton::clicked, this, [this] { -        const QColor new_bg_color = QColorDialog::getColor(bg_color); -        if (!new_bg_color.isValid()) -            return; -        bg_color = new_bg_color; -        ui->bg_button->setStyleSheet( -            QString("QPushButton { background-color: %1 }").arg(bg_color.name())); -    }); -} - -ConfigureGraphics::~ConfigureGraphics() = default; - +namespace {  enum class Resolution : int {      Auto,      Scale1x, @@ -67,6 +47,28 @@ Resolution FromResolutionFactor(float factor) {      }      return Resolution::Auto;  } +} // Anonymous namespace + +ConfigureGraphics::ConfigureGraphics(QWidget* parent) +    : QWidget(parent), ui(new Ui::ConfigureGraphics) { + +    ui->setupUi(this); +    this->setConfiguration(); + +    ui->frame_limit->setEnabled(Settings::values.use_frame_limit); +    connect(ui->toggle_frame_limit, &QCheckBox::stateChanged, ui->frame_limit, +            &QSpinBox::setEnabled); +    connect(ui->bg_button, &QPushButton::clicked, this, [this] { +        const QColor new_bg_color = QColorDialog::getColor(bg_color); +        if (!new_bg_color.isValid()) +            return; +        bg_color = new_bg_color; +        ui->bg_button->setStyleSheet( +            QString("QPushButton { background-color: %1 }").arg(bg_color.name())); +    }); +} + +ConfigureGraphics::~ConfigureGraphics() = default;  void ConfigureGraphics::setConfiguration() {      ui->resolution_factor_combobox->setCurrentIndex( diff --git a/src/yuzu/configuration/configure_input.cpp b/src/yuzu/configuration/configure_input.cpp index d29abb74b..473937ea9 100644 --- a/src/yuzu/configuration/configure_input.cpp +++ b/src/yuzu/configuration/configure_input.cpp @@ -152,9 +152,9 @@ ConfigureInput::ConfigureInput(QWidget* parent)              }          }          connect(analog_map_stick[analog_id], &QPushButton::released, [=]() { -            QMessageBox::information( -                this, "Information", -                "After pressing OK, first move your joystick horizontally, and then vertically."); +            QMessageBox::information(this, tr("Information"), +                                     tr("After pressing OK, first move your joystick horizontally, " +                                        "and then vertically."));              handleClick(                  analog_map_stick[analog_id],                  [=](const Common::ParamPackage& params) { analogs_param[analog_id] = params; }, diff --git a/src/yuzu/debugger/wait_tree.cpp b/src/yuzu/debugger/wait_tree.cpp index a3b1fd357..4a09da685 100644 --- a/src/yuzu/debugger/wait_tree.cpp +++ b/src/yuzu/debugger/wait_tree.cpp @@ -119,7 +119,7 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeCallstack::GetChildren() cons      std::vector<std::unique_ptr<WaitTreeItem>> list;      constexpr std::size_t BaseRegister = 29; -    u64 base_pointer = thread.context.cpu_registers[BaseRegister]; +    u64 base_pointer = thread.GetContext().cpu_registers[BaseRegister];      while (base_pointer != 0) {          u64 lr = Memory::Read64(base_pointer + sizeof(u64)); @@ -213,7 +213,7 @@ WaitTreeThread::~WaitTreeThread() = default;  QString WaitTreeThread::GetText() const {      const auto& thread = static_cast<const Kernel::Thread&>(object);      QString status; -    switch (thread.status) { +    switch (thread.GetStatus()) {      case Kernel::ThreadStatus::Running:          status = tr("running");          break; @@ -246,15 +246,17 @@ QString WaitTreeThread::GetText() const {          status = tr("dead");          break;      } -    QString pc_info = tr(" PC = 0x%1 LR = 0x%2") -                          .arg(thread.context.pc, 8, 16, QLatin1Char('0')) -                          .arg(thread.context.cpu_registers[30], 8, 16, QLatin1Char('0')); + +    const auto& context = thread.GetContext(); +    const QString pc_info = tr(" PC = 0x%1 LR = 0x%2") +                                .arg(context.pc, 8, 16, QLatin1Char('0')) +                                .arg(context.cpu_registers[30], 8, 16, QLatin1Char('0'));      return WaitTreeWaitObject::GetText() + pc_info + " (" + status + ") ";  }  QColor WaitTreeThread::GetColor() const {      const auto& thread = static_cast<const Kernel::Thread&>(object); -    switch (thread.status) { +    switch (thread.GetStatus()) {      case Kernel::ThreadStatus::Running:          return QColor(Qt::GlobalColor::darkGreen);      case Kernel::ThreadStatus::Ready: @@ -284,7 +286,7 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeThread::GetChildren() const {      const auto& thread = static_cast<const Kernel::Thread&>(object);      QString processor; -    switch (thread.processor_id) { +    switch (thread.GetProcessorID()) {      case Kernel::ThreadProcessorId::THREADPROCESSORID_DEFAULT:          processor = tr("default");          break; @@ -292,32 +294,35 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeThread::GetChildren() const {      case Kernel::ThreadProcessorId::THREADPROCESSORID_1:      case Kernel::ThreadProcessorId::THREADPROCESSORID_2:      case Kernel::ThreadProcessorId::THREADPROCESSORID_3: -        processor = tr("core %1").arg(thread.processor_id); +        processor = tr("core %1").arg(thread.GetProcessorID());          break;      default: -        processor = tr("Unknown processor %1").arg(thread.processor_id); +        processor = tr("Unknown processor %1").arg(thread.GetProcessorID());          break;      }      list.push_back(std::make_unique<WaitTreeText>(tr("processor = %1").arg(processor))); -    list.push_back(std::make_unique<WaitTreeText>(tr("ideal core = %1").arg(thread.ideal_core)));      list.push_back( -        std::make_unique<WaitTreeText>(tr("affinity mask = %1").arg(thread.affinity_mask))); -    list.push_back(std::make_unique<WaitTreeText>(tr("thread id = %1").arg(thread.GetThreadId()))); +        std::make_unique<WaitTreeText>(tr("ideal core = %1").arg(thread.GetIdealCore()))); +    list.push_back( +        std::make_unique<WaitTreeText>(tr("affinity mask = %1").arg(thread.GetAffinityMask()))); +    list.push_back(std::make_unique<WaitTreeText>(tr("thread id = %1").arg(thread.GetThreadID())));      list.push_back(std::make_unique<WaitTreeText>(tr("priority = %1(current) / %2(normal)") -                                                      .arg(thread.current_priority) -                                                      .arg(thread.nominal_priority))); +                                                      .arg(thread.GetPriority()) +                                                      .arg(thread.GetNominalPriority())));      list.push_back(std::make_unique<WaitTreeText>( -        tr("last running ticks = %1").arg(thread.last_running_ticks))); +        tr("last running ticks = %1").arg(thread.GetLastRunningTicks()))); -    if (thread.mutex_wait_address != 0) -        list.push_back(std::make_unique<WaitTreeMutexInfo>(thread.mutex_wait_address)); -    else +    const VAddr mutex_wait_address = thread.GetMutexWaitAddress(); +    if (mutex_wait_address != 0) { +        list.push_back(std::make_unique<WaitTreeMutexInfo>(mutex_wait_address)); +    } else {          list.push_back(std::make_unique<WaitTreeText>(tr("not waiting for mutex"))); +    } -    if (thread.status == Kernel::ThreadStatus::WaitSynchAny || -        thread.status == Kernel::ThreadStatus::WaitSynchAll) { -        list.push_back(std::make_unique<WaitTreeObjectList>(thread.wait_objects, +    if (thread.GetStatus() == Kernel::ThreadStatus::WaitSynchAny || +        thread.GetStatus() == Kernel::ThreadStatus::WaitSynchAll) { +        list.push_back(std::make_unique<WaitTreeObjectList>(thread.GetWaitObjects(),                                                              thread.IsSleepingOnWaitAll()));      } diff --git a/src/yuzu/game_list_worker.cpp b/src/yuzu/game_list_worker.cpp index e228d61bd..1947bdb93 100644 --- a/src/yuzu/game_list_worker.cpp +++ b/src/yuzu/game_list_worker.cpp @@ -60,14 +60,13 @@ QString FormatGameName(const std::string& physical_name) {  QString FormatPatchNameVersions(const FileSys::PatchManager& patch_manager, bool updatable = true) {      QString out;      for (const auto& kv : patch_manager.GetPatchVersionNames()) { -        if (!updatable && kv.first == FileSys::PatchType::Update) +        if (!updatable && kv.first == "Update")              continue;          if (kv.second.empty()) { -            out.append(fmt::format("{}\n", FileSys::FormatPatchTypeName(kv.first)).c_str()); +            out.append(fmt::format("{}\n", kv.first).c_str());          } else { -            out.append(fmt::format("{} ({})\n", FileSys::FormatPatchTypeName(kv.first), kv.second) -                           .c_str()); +            out.append(fmt::format("{} ({})\n", kv.first, kv.second).c_str());          }      } diff --git a/src/yuzu/ui_settings.cpp b/src/yuzu/ui_settings.cpp index 120b34990..a314493fc 100644 --- a/src/yuzu/ui_settings.cpp +++ b/src/yuzu/ui_settings.cpp @@ -6,5 +6,11 @@  namespace UISettings { +const Themes themes{{ +    {"Default", "default"}, +    {"Dark", "qdarkstyle"}, +}}; +  Values values = {}; -} + +} // namespace UISettings diff --git a/src/yuzu/ui_settings.h b/src/yuzu/ui_settings.h index 89d9140f3..2e617d52a 100644 --- a/src/yuzu/ui_settings.h +++ b/src/yuzu/ui_settings.h @@ -15,9 +15,8 @@ namespace UISettings {  using ContextualShortcut = std::pair<QString, int>;  using Shortcut = std::pair<QString, ContextualShortcut>; -static const std::array<std::pair<QString, QString>, 2> themes = { -    {std::make_pair(QString("Default"), QString("default")), -     std::make_pair(QString("Dark"), QString("qdarkstyle"))}}; +using Themes = std::array<std::pair<const char*, const char*>, 2>; +extern const Themes themes;  struct Values {      QByteArray geometry; | 
