diff options
Diffstat (limited to 'src/citra_qt')
-rw-r--r-- | src/citra_qt/config.cpp | 10 | ||||
-rw-r--r-- | src/citra_qt/game_list.cpp | 16 | ||||
-rw-r--r-- | src/citra_qt/main.cpp | 11 | ||||
-rw-r--r-- | src/citra_qt/main.h | 1 | ||||
-rw-r--r-- | src/citra_qt/main.ui | 9 |
5 files changed, 40 insertions, 7 deletions
diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp index 1f4981ce1..8e247ff5c 100644 --- a/src/citra_qt/config.cpp +++ b/src/citra_qt/config.cpp @@ -62,6 +62,11 @@ void Config::ReadValues() { qt_config->beginGroup("Miscellaneous"); Settings::values.log_filter = qt_config->value("log_filter", "*:Info").toString().toStdString(); qt_config->endGroup(); + + qt_config->beginGroup("Debugging"); + Settings::values.use_gdbstub = qt_config->value("use_gdbstub", false).toBool(); + Settings::values.gdbstub_port = qt_config->value("gdbstub_port", 24689).toInt(); + qt_config->endGroup(); } void Config::SaveValues() { @@ -97,6 +102,11 @@ void Config::SaveValues() { qt_config->beginGroup("Miscellaneous"); qt_config->setValue("log_filter", QString::fromStdString(Settings::values.log_filter)); qt_config->endGroup(); + + qt_config->beginGroup("Debugging"); + qt_config->setValue("use_gdbstub", Settings::values.use_gdbstub); + qt_config->setValue("gdbstub_port", Settings::values.gdbstub_port); + qt_config->endGroup(); } void Config::Reload() { diff --git a/src/citra_qt/game_list.cpp b/src/citra_qt/game_list.cpp index e925f08a7..1f8d69a03 100644 --- a/src/citra_qt/game_list.cpp +++ b/src/citra_qt/game_list.cpp @@ -119,13 +119,14 @@ void GameList::LoadInterfaceLayout(QSettings& settings) void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, bool deep_scan) { - const auto callback = [&](const std::string& directory, - const std::string& virtual_name) -> int { + const auto callback = [&](unsigned* num_entries_out, + const std::string& directory, + const std::string& virtual_name) -> bool { std::string physical_name = directory + DIR_SEP + virtual_name; if (stop_processing) - return -1; // A negative return value breaks the callback loop. + return false; // Breaks the callback loop. if (deep_scan && FileUtil::IsDirectory(physical_name)) { AddFstEntriesToGameList(physical_name, true); @@ -135,11 +136,11 @@ void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, bool d Loader::FileType guessed_filetype = Loader::GuessFromExtension(filename_extension); if (guessed_filetype == Loader::FileType::Unknown) - return 0; + return true; Loader::FileType filetype = Loader::IdentifyFile(physical_name); if (filetype == Loader::FileType::Unknown) { LOG_WARNING(Frontend, "File %s is of indeterminate type and is possibly corrupted.", physical_name.c_str()); - return 0; + return true; } if (guessed_filetype != filetype) { LOG_WARNING(Frontend, "Filetype and extension of file %s do not match.", physical_name.c_str()); @@ -152,9 +153,10 @@ void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, bool d }); } - return 0; // We don't care about the found entries + return true; }; - FileUtil::ScanDirectoryTreeAndCallback(dir_path, callback); + + FileUtil::ForeachDirectoryEntry(nullptr, dir_path, callback); } void GameListWorker::run() diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index bcff6be64..d6c27f0df 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -44,6 +44,7 @@ #include "core/settings.h" #include "core/system.h" #include "core/arm/disassembler/load_symbol_map.h" +#include "core/gdbstub/gdbstub.h" #include "core/loader/loader.h" #include "video_core/video_core.h" @@ -143,6 +144,11 @@ GMainWindow::GMainWindow() : emu_thread(nullptr) game_list->LoadInterfaceLayout(settings); + ui.action_Use_Gdbstub->setChecked(Settings::values.use_gdbstub); + SetGdbstubEnabled(ui.action_Use_Gdbstub->isChecked()); + + GDBStub::SetServerPort(static_cast<u32>(Settings::values.gdbstub_port)); + ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer); SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked()); @@ -175,6 +181,7 @@ GMainWindow::GMainWindow() : emu_thread(nullptr) connect(ui.action_Stop, SIGNAL(triggered()), this, SLOT(OnStopGame())); connect(ui.action_Use_Hardware_Renderer, SIGNAL(triggered(bool)), this, SLOT(SetHardwareRendererEnabled(bool))); connect(ui.action_Use_Shader_JIT, SIGNAL(triggered(bool)), this, SLOT(SetShaderJITEnabled(bool))); + connect(ui.action_Use_Gdbstub, SIGNAL(triggered(bool)), this, SLOT(SetGdbstubEnabled(bool))); connect(ui.action_Single_Window_Mode, SIGNAL(triggered(bool)), this, SLOT(ToggleWindowMode())); connect(ui.action_Hotkeys, SIGNAL(triggered()), this, SLOT(OnOpenHotkeysDialog())); @@ -449,6 +456,10 @@ void GMainWindow::SetHardwareRendererEnabled(bool enabled) { config.Save(); } +void GMainWindow::SetGdbstubEnabled(bool enabled) { + GDBStub::ToggleServer(enabled); +} + void GMainWindow::SetShaderJITEnabled(bool enabled) { VideoCore::g_shader_jit_enabled = enabled; diff --git a/src/citra_qt/main.h b/src/citra_qt/main.h index 6d27ce6a9..f6d429cd9 100644 --- a/src/citra_qt/main.h +++ b/src/citra_qt/main.h @@ -99,6 +99,7 @@ private slots: void OnConfigure(); void OnDisplayTitleBars(bool); void SetHardwareRendererEnabled(bool); + void SetGdbstubEnabled(bool); void SetShaderJITEnabled(bool); void ToggleWindowMode(); diff --git a/src/citra_qt/main.ui b/src/citra_qt/main.ui index 997597642..1e8a07cfb 100644 --- a/src/citra_qt/main.ui +++ b/src/citra_qt/main.ui @@ -75,6 +75,7 @@ <addaction name="separator"/> <addaction name="action_Use_Hardware_Renderer"/> <addaction name="action_Use_Shader_JIT"/> + <addaction name="action_Use_Gdbstub"/> <addaction name="action_Configure"/> </widget> <widget class="QMenu" name="menu_View"> @@ -170,6 +171,14 @@ <string>Use Shader JIT</string> </property> </action> + <action name="action_Use_Gdbstub"> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="text"> + <string>Use Gdbstub</string> + </property> + </action> <action name="action_Configure"> <property name="text"> <string>Configure ...</string> |