mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-12-18 11:30:59 +01:00
Implement option to start QLaunch from Tools menu
This commit is contained in:
parent
362f2047b4
commit
16e19b0b3c
5 changed files with 47 additions and 2 deletions
|
@ -15,8 +15,8 @@ IGlobalStateController::IGlobalStateController(Core::System& system_)
|
||||||
{0, nullptr, "RequestToEnterSleep"},
|
{0, nullptr, "RequestToEnterSleep"},
|
||||||
{1, nullptr, "EnterSleep"},
|
{1, nullptr, "EnterSleep"},
|
||||||
{2, nullptr, "StartSleepSequence"},
|
{2, nullptr, "StartSleepSequence"},
|
||||||
{3, nullptr, "StartShutdownSequence"},
|
{3, D<&IGlobalStateController::StartShutdownSequence>, "StartShutdownSequence"},
|
||||||
{4, nullptr, "StartRebootSequence"},
|
{4, D<&IGlobalStateController::StartRebootSequence>, "StartRebootSequence"},
|
||||||
{9, nullptr, "IsAutoPowerDownRequested"},
|
{9, nullptr, "IsAutoPowerDownRequested"},
|
||||||
{10, D<&IGlobalStateController::LoadAndApplyIdlePolicySettings>, "LoadAndApplyIdlePolicySettings"},
|
{10, D<&IGlobalStateController::LoadAndApplyIdlePolicySettings>, "LoadAndApplyIdlePolicySettings"},
|
||||||
{11, nullptr, "NotifyCecSettingsChanged"},
|
{11, nullptr, "NotifyCecSettingsChanged"},
|
||||||
|
@ -31,6 +31,18 @@ IGlobalStateController::IGlobalStateController(Core::System& system_)
|
||||||
RegisterHandlers(functions);
|
RegisterHandlers(functions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result IGlobalStateController::StartShutdownSequence() {
|
||||||
|
LOG_INFO(Service_AM, "called");
|
||||||
|
system.Exit();
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
|
||||||
|
Result IGlobalStateController::StartRebootSequence() {
|
||||||
|
LOG_INFO(Service_AM, "called");
|
||||||
|
system.Exit();
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
|
||||||
IGlobalStateController::~IGlobalStateController() = default;
|
IGlobalStateController::~IGlobalStateController() = default;
|
||||||
|
|
||||||
Result IGlobalStateController::LoadAndApplyIdlePolicySettings() {
|
Result IGlobalStateController::LoadAndApplyIdlePolicySettings() {
|
||||||
|
|
|
@ -18,6 +18,8 @@ public:
|
||||||
~IGlobalStateController() override;
|
~IGlobalStateController() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Result StartShutdownSequence();
|
||||||
|
Result StartRebootSequence();
|
||||||
Result LoadAndApplyIdlePolicySettings();
|
Result LoadAndApplyIdlePolicySettings();
|
||||||
Result ShouldSleepOnBoot(Out<bool> out_should_sleep_on_boot);
|
Result ShouldSleepOnBoot(Out<bool> out_should_sleep_on_boot);
|
||||||
Result GetHdcpAuthenticationFailedEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
Result GetHdcpAuthenticationFailedEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
||||||
|
|
|
@ -1577,6 +1577,7 @@ void GMainWindow::ConnectMenuEvents() {
|
||||||
[this]() { OnCabinet(Service::NFP::CabinetMode::StartFormatter); });
|
[this]() { OnCabinet(Service::NFP::CabinetMode::StartFormatter); });
|
||||||
connect_menu(ui->action_Load_Mii_Edit, &GMainWindow::OnMiiEdit);
|
connect_menu(ui->action_Load_Mii_Edit, &GMainWindow::OnMiiEdit);
|
||||||
connect_menu(ui->action_Open_Controller_Menu, &GMainWindow::OnOpenControllerMenu);
|
connect_menu(ui->action_Open_Controller_Menu, &GMainWindow::OnOpenControllerMenu);
|
||||||
|
connect_menu(ui->action_Load_Home_Menu, &GMainWindow::OnHomeMenu);
|
||||||
connect_menu(ui->action_Capture_Screenshot, &GMainWindow::OnCaptureScreenshot);
|
connect_menu(ui->action_Capture_Screenshot, &GMainWindow::OnCaptureScreenshot);
|
||||||
|
|
||||||
// TAS
|
// TAS
|
||||||
|
@ -4291,6 +4292,29 @@ void GMainWindow::OnOpenControllerMenu() {
|
||||||
LibraryAppletParameters(ControllerAppletId, Service::AM::AppletId::Controller));
|
LibraryAppletParameters(ControllerAppletId, Service::AM::AppletId::Controller));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GMainWindow::OnHomeMenu() {
|
||||||
|
constexpr u64 QLaunchId = static_cast<u64>(Service::AM::AppletProgramId::QLaunch);
|
||||||
|
auto bis_system = system->GetFileSystemController().GetSystemNANDContents();
|
||||||
|
if (!bis_system) {
|
||||||
|
QMessageBox::warning(this, tr("No firmware available"),
|
||||||
|
tr("Please install the firmware to use the Home Menu."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto qlaunch_applet_nca = bis_system->GetEntry(QLaunchId, FileSys::ContentRecordType::Program);
|
||||||
|
if (!qlaunch_applet_nca) {
|
||||||
|
QMessageBox::warning(this, tr("Home Menu Applet"),
|
||||||
|
tr("Home Menu is not available. Please reinstall firmware."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
system->GetFrontendAppletHolder().SetCurrentAppletId(Service::AM::AppletId::QLaunch);
|
||||||
|
|
||||||
|
const auto filename = QString::fromStdString((qlaunch_applet_nca->GetFullPath()));
|
||||||
|
UISettings::values.roms_path = QFileInfo(filename).path().toStdString();
|
||||||
|
BootGame(filename, LibraryAppletParameters(QLaunchId, Service::AM::AppletId::QLaunch));
|
||||||
|
}
|
||||||
|
|
||||||
void GMainWindow::OnCaptureScreenshot() {
|
void GMainWindow::OnCaptureScreenshot() {
|
||||||
if (emu_thread == nullptr || !emu_thread->IsRunning()) {
|
if (emu_thread == nullptr || !emu_thread->IsRunning()) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -399,6 +399,7 @@ private slots:
|
||||||
void OnCabinet(Service::NFP::CabinetMode mode);
|
void OnCabinet(Service::NFP::CabinetMode mode);
|
||||||
void OnMiiEdit();
|
void OnMiiEdit();
|
||||||
void OnOpenControllerMenu();
|
void OnOpenControllerMenu();
|
||||||
|
void OnHomeMenu();
|
||||||
void OnCaptureScreenshot();
|
void OnCaptureScreenshot();
|
||||||
void OnCheckFirmwareDecryption();
|
void OnCheckFirmwareDecryption();
|
||||||
void OnLanguageChanged(const QString& locale);
|
void OnLanguageChanged(const QString& locale);
|
||||||
|
|
|
@ -173,6 +173,7 @@
|
||||||
<addaction name="action_Load_Album"/>
|
<addaction name="action_Load_Album"/>
|
||||||
<addaction name="action_Load_Mii_Edit"/>
|
<addaction name="action_Load_Mii_Edit"/>
|
||||||
<addaction name="action_Open_Controller_Menu"/>
|
<addaction name="action_Open_Controller_Menu"/>
|
||||||
|
<addaction name="action_Load_Home_Menu"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="action_Capture_Screenshot"/>
|
<addaction name="action_Capture_Screenshot"/>
|
||||||
<addaction name="menuTAS"/>
|
<addaction name="menuTAS"/>
|
||||||
|
@ -475,6 +476,11 @@
|
||||||
<string>Install Decryption Keys</string>
|
<string>Install Decryption Keys</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="action_Load_Home_Menu">
|
||||||
|
<property name="text">
|
||||||
|
<string>Open Home Menu</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="suyu.qrc"/>
|
<include location="suyu.qrc"/>
|
||||||
|
|
Loading…
Reference in a new issue