mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-06-10 14:58:11 -05:00
Project Mjölnir: Part 2 - Controller Applet
Co-authored-by: Its-Rei <kupfel@gmail.com>
This commit is contained in:
@ -11,6 +11,7 @@
|
||||
#endif
|
||||
|
||||
// VFS includes must be before glad as they will conflict with Windows file api, which uses defines.
|
||||
#include "applets/controller.h"
|
||||
#include "applets/error.h"
|
||||
#include "applets/profile_select.h"
|
||||
#include "applets/software_keyboard.h"
|
||||
@ -19,7 +20,9 @@
|
||||
#include "configuration/configure_per_game.h"
|
||||
#include "core/file_sys/vfs.h"
|
||||
#include "core/file_sys/vfs_real.h"
|
||||
#include "core/frontend/applets/controller.h"
|
||||
#include "core/frontend/applets/general_frontend.h"
|
||||
#include "core/frontend/applets/software_keyboard.h"
|
||||
#include "core/hle/service/acc/profile_manager.h"
|
||||
#include "core/hle/service/am/applet_ae.h"
|
||||
#include "core/hle/service/am/applet_oe.h"
|
||||
@ -84,7 +87,6 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
|
||||
#include "core/file_sys/romfs.h"
|
||||
#include "core/file_sys/savedata_factory.h"
|
||||
#include "core/file_sys/submission_package.h"
|
||||
#include "core/frontend/applets/software_keyboard.h"
|
||||
#include "core/hle/kernel/process.h"
|
||||
#include "core/hle/service/am/am.h"
|
||||
#include "core/hle/service/filesystem/filesystem.h"
|
||||
@ -283,6 +285,19 @@ GMainWindow::~GMainWindow() {
|
||||
delete render_window;
|
||||
}
|
||||
|
||||
void GMainWindow::ControllerSelectorReconfigureControllers(
|
||||
const Core::Frontend::ControllerParameters& parameters) {
|
||||
QtControllerSelectorDialog dialog(this, parameters, input_subsystem.get());
|
||||
dialog.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint |
|
||||
Qt::WindowSystemMenuHint);
|
||||
dialog.setWindowModality(Qt::WindowModal);
|
||||
dialog.exec();
|
||||
|
||||
emit ControllerSelectorReconfigureFinished();
|
||||
|
||||
UpdateStatusButtons();
|
||||
}
|
||||
|
||||
void GMainWindow::ProfileSelectorSelectProfile() {
|
||||
const Service::Account::ProfileManager manager;
|
||||
int index = 0;
|
||||
@ -291,10 +306,12 @@ void GMainWindow::ProfileSelectorSelectProfile() {
|
||||
dialog.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint |
|
||||
Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint);
|
||||
dialog.setWindowModality(Qt::WindowModal);
|
||||
|
||||
if (dialog.exec() == QDialog::Rejected) {
|
||||
emit ProfileSelectorFinishedSelection(std::nullopt);
|
||||
return;
|
||||
}
|
||||
|
||||
index = dialog.GetIndex();
|
||||
}
|
||||
|
||||
@ -966,13 +983,14 @@ bool GMainWindow::LoadROM(const QString& filename) {
|
||||
system.SetFilesystem(vfs);
|
||||
|
||||
system.SetAppletFrontendSet({
|
||||
nullptr, // Parental Controls
|
||||
std::make_unique<QtErrorDisplay>(*this), //
|
||||
nullptr, // Photo Viewer
|
||||
std::make_unique<QtProfileSelector>(*this), //
|
||||
std::make_unique<QtSoftwareKeyboard>(*this), //
|
||||
std::make_unique<QtWebBrowser>(*this), //
|
||||
nullptr, // E-Commerce
|
||||
std::make_unique<QtControllerSelector>(*this), // Controller Selector
|
||||
nullptr, // E-Commerce
|
||||
std::make_unique<QtErrorDisplay>(*this), // Error Display
|
||||
nullptr, // Parental Controls
|
||||
nullptr, // Photo Viewer
|
||||
std::make_unique<QtProfileSelector>(*this), // Profile Selector
|
||||
std::make_unique<QtSoftwareKeyboard>(*this), // Software Keyboard
|
||||
std::make_unique<QtWebBrowser>(*this), // Web Browser
|
||||
});
|
||||
|
||||
system.RegisterHostThread();
|
||||
@ -2047,6 +2065,7 @@ void GMainWindow::OnStartGame() {
|
||||
|
||||
emu_thread->SetRunning(true);
|
||||
|
||||
qRegisterMetaType<Core::Frontend::ControllerParameters>("Core::Frontend::ControllerParameters");
|
||||
qRegisterMetaType<Core::Frontend::SoftwareKeyboardParameters>(
|
||||
"Core::Frontend::SoftwareKeyboardParameters");
|
||||
qRegisterMetaType<Core::System::ResultStatus>("Core::System::ResultStatus");
|
||||
|
Reference in New Issue
Block a user