Browse Source
Merge pull request #8581 from devsnek/send-resume
implement resume message
pull/15/merge
bunnei
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with
23 additions and
0 deletions
-
src/core/hle/service/am/am.cpp
-
src/core/hle/service/am/am.h
-
src/yuzu/main.cpp
-
src/yuzu/main.h
|
|
|
@ -636,6 +636,10 @@ void AppletMessageQueue::RequestExit() { |
|
|
|
PushMessage(AppletMessage::Exit); |
|
|
|
} |
|
|
|
|
|
|
|
void AppletMessageQueue::RequestResume() { |
|
|
|
PushMessage(AppletMessage::Resume); |
|
|
|
} |
|
|
|
|
|
|
|
void AppletMessageQueue::FocusStateChanged() { |
|
|
|
PushMessage(AppletMessage::FocusStateChanged); |
|
|
|
} |
|
|
|
|
|
|
|
@ -90,6 +90,7 @@ public: |
|
|
|
AppletMessage PopMessage(); |
|
|
|
std::size_t GetMessageCount() const; |
|
|
|
void RequestExit(); |
|
|
|
void RequestResume(); |
|
|
|
void FocusStateChanged(); |
|
|
|
void OperationModeChanged(); |
|
|
|
|
|
|
|
|
|
|
|
@ -1131,6 +1131,7 @@ void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) { |
|
|
|
OnPauseGame(); |
|
|
|
} else if (!emu_thread->IsRunning() && auto_paused && state == Qt::ApplicationActive) { |
|
|
|
auto_paused = false; |
|
|
|
RequestGameResume(); |
|
|
|
OnStartGame(); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -2570,6 +2571,7 @@ void GMainWindow::OnPauseContinueGame() { |
|
|
|
if (emu_thread->IsRunning()) { |
|
|
|
OnPauseGame(); |
|
|
|
} else { |
|
|
|
RequestGameResume(); |
|
|
|
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) { |
|
|
|
ui->action_Show_Filter_Bar->setChecked(state); |
|
|
|
emit(OnToggleFilterBar()); |
|
|
|
|
|
|
|
@ -244,6 +244,7 @@ private: |
|
|
|
bool ConfirmChangeGame(); |
|
|
|
bool ConfirmForceLockedExit(); |
|
|
|
void RequestGameExit(); |
|
|
|
void RequestGameResume(); |
|
|
|
void closeEvent(QCloseEvent* event) override; |
|
|
|
|
|
|
|
private slots: |
|
|
|
|