1
0
Fork 0
forked from suyu/suyu

implement resume message

This commit is contained in:
Gus Caplan 2022-07-14 18:42:56 -07:00
parent 09300abe92
commit 742f67908c
No known key found for this signature in database
GPG key ID: F00BD11880E82F0E
4 changed files with 23 additions and 0 deletions

View file

@ -636,6 +636,10 @@ void AppletMessageQueue::RequestExit() {
PushMessage(AppletMessage::Exit); PushMessage(AppletMessage::Exit);
} }
void AppletMessageQueue::RequestResume() {
PushMessage(AppletMessage::Resume);
}
void AppletMessageQueue::FocusStateChanged() { void AppletMessageQueue::FocusStateChanged() {
PushMessage(AppletMessage::FocusStateChanged); PushMessage(AppletMessage::FocusStateChanged);
} }

View file

@ -90,6 +90,7 @@ public:
AppletMessage PopMessage(); AppletMessage PopMessage();
std::size_t GetMessageCount() const; std::size_t GetMessageCount() const;
void RequestExit(); void RequestExit();
void RequestResume();
void FocusStateChanged(); void FocusStateChanged();
void OperationModeChanged(); void OperationModeChanged();

View file

@ -1131,6 +1131,7 @@ void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) {
OnPauseGame(); OnPauseGame();
} else if (!emu_thread->IsRunning() && auto_paused && state == Qt::ApplicationActive) { } else if (!emu_thread->IsRunning() && auto_paused && state == Qt::ApplicationActive) {
auto_paused = false; auto_paused = false;
RequestGameResume();
OnStartGame(); OnStartGame();
} }
} }
@ -2570,6 +2571,7 @@ void GMainWindow::OnPauseContinueGame() {
if (emu_thread->IsRunning()) { if (emu_thread->IsRunning()) {
OnPauseGame(); OnPauseGame();
} else { } else {
RequestGameResume();
OnStartGame(); OnStartGame();
} }
} }
@ -3749,6 +3751,21 @@ void GMainWindow::RequestGameExit() {
} }
} }
void GMainWindow::RequestGameResume() {
auto& sm{system->ServiceManager()};
auto applet_oe = sm.GetService<Service::AM::AppletOE>("appletOE");
auto applet_ae = sm.GetService<Service::AM::AppletAE>("appletAE");
if (applet_oe != nullptr) {
applet_oe->GetMessageQueue()->RequestResume();
return;
}
if (applet_ae != nullptr) {
applet_ae->GetMessageQueue()->RequestResume();
}
}
void GMainWindow::filterBarSetChecked(bool state) { void GMainWindow::filterBarSetChecked(bool state) {
ui->action_Show_Filter_Bar->setChecked(state); ui->action_Show_Filter_Bar->setChecked(state);
emit(OnToggleFilterBar()); emit(OnToggleFilterBar());

View file

@ -244,6 +244,7 @@ private:
bool ConfirmChangeGame(); bool ConfirmChangeGame();
bool ConfirmForceLockedExit(); bool ConfirmForceLockedExit();
void RequestGameExit(); void RequestGameExit();
void RequestGameResume();
void closeEvent(QCloseEvent* event) override; void closeEvent(QCloseEvent* event) override;
private slots: private slots: