diff options
| author | 2019-04-24 22:53:21 -0400 | |
|---|---|---|
| committer | 2019-04-24 22:53:21 -0400 | |
| commit | 53f746fa9a41647d69cdbd52de7e49de4acbfe6b (patch) | |
| tree | 7b62619ffedc3012d131c63c12451779d22e8fd9 /src/core/core.cpp | |
| parent | Merge pull request #2404 from lioncash/unicode (diff) | |
| parent | web_browser: Make OpenPage non-const (diff) | |
| download | yuzu-53f746fa9a41647d69cdbd52de7e49de4acbfe6b.tar.gz yuzu-53f746fa9a41647d69cdbd52de7e49de4acbfe6b.tar.xz yuzu-53f746fa9a41647d69cdbd52de7e49de4acbfe6b.zip | |
Merge pull request #2228 from DarkLordZach/applet-manager-p1
applets: Add AppletManager and implement PhotoViewer and Error applets
Diffstat (limited to 'src/core/core.cpp')
| -rw-r--r-- | src/core/core.cpp | 50 |
1 files changed, 17 insertions, 33 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index 175a5f2ea..7106151bd 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp | |||
| @@ -18,13 +18,18 @@ | |||
| 18 | #include "core/file_sys/registered_cache.h" | 18 | #include "core/file_sys/registered_cache.h" |
| 19 | #include "core/file_sys/vfs_concat.h" | 19 | #include "core/file_sys/vfs_concat.h" |
| 20 | #include "core/file_sys/vfs_real.h" | 20 | #include "core/file_sys/vfs_real.h" |
| 21 | #include "core/frontend/applets/error.h" | ||
| 22 | #include "core/frontend/applets/general_frontend.h" | ||
| 23 | #include "core/frontend/applets/profile_select.h" | ||
| 24 | #include "core/frontend/applets/software_keyboard.h" | ||
| 25 | #include "core/frontend/applets/web_browser.h" | ||
| 21 | #include "core/gdbstub/gdbstub.h" | 26 | #include "core/gdbstub/gdbstub.h" |
| 22 | #include "core/hle/kernel/client_port.h" | 27 | #include "core/hle/kernel/client_port.h" |
| 23 | #include "core/hle/kernel/kernel.h" | 28 | #include "core/hle/kernel/kernel.h" |
| 24 | #include "core/hle/kernel/process.h" | 29 | #include "core/hle/kernel/process.h" |
| 25 | #include "core/hle/kernel/scheduler.h" | 30 | #include "core/hle/kernel/scheduler.h" |
| 26 | #include "core/hle/kernel/thread.h" | 31 | #include "core/hle/kernel/thread.h" |
| 27 | #include "core/hle/service/am/applets/software_keyboard.h" | 32 | #include "core/hle/service/am/applets/applets.h" |
| 28 | #include "core/hle/service/service.h" | 33 | #include "core/hle/service/service.h" |
| 29 | #include "core/hle/service/sm/sm.h" | 34 | #include "core/hle/service/sm/sm.h" |
| 30 | #include "core/loader/loader.h" | 35 | #include "core/loader/loader.h" |
| @@ -110,12 +115,7 @@ struct System::Impl { | |||
| 110 | content_provider = std::make_unique<FileSys::ContentProviderUnion>(); | 115 | content_provider = std::make_unique<FileSys::ContentProviderUnion>(); |
| 111 | 116 | ||
| 112 | /// Create default implementations of applets if one is not provided. | 117 | /// Create default implementations of applets if one is not provided. |
| 113 | if (profile_selector == nullptr) | 118 | applet_manager.SetDefaultAppletsIfMissing(); |
| 114 | profile_selector = std::make_unique<Core::Frontend::DefaultProfileSelectApplet>(); | ||
| 115 | if (software_keyboard == nullptr) | ||
| 116 | software_keyboard = std::make_unique<Core::Frontend::DefaultSoftwareKeyboardApplet>(); | ||
| 117 | if (web_browser == nullptr) | ||
| 118 | web_browser = std::make_unique<Core::Frontend::DefaultWebBrowserApplet>(); | ||
| 119 | 119 | ||
| 120 | telemetry_session = std::make_unique<Core::TelemetrySession>(); | 120 | telemetry_session = std::make_unique<Core::TelemetrySession>(); |
| 121 | service_manager = std::make_shared<Service::SM::ServiceManager>(); | 121 | service_manager = std::make_shared<Service::SM::ServiceManager>(); |
| @@ -223,9 +223,7 @@ struct System::Impl { | |||
| 223 | app_loader.reset(); | 223 | app_loader.reset(); |
| 224 | 224 | ||
| 225 | // Clear all applets | 225 | // Clear all applets |
| 226 | profile_selector.reset(); | 226 | applet_manager.ClearAll(); |
| 227 | software_keyboard.reset(); | ||
| 228 | web_browser.reset(); | ||
| 229 | 227 | ||
| 230 | LOG_DEBUG(Core, "Shutdown OK"); | 228 | LOG_DEBUG(Core, "Shutdown OK"); |
| 231 | } | 229 | } |
| @@ -264,9 +262,7 @@ struct System::Impl { | |||
| 264 | std::unique_ptr<FileSys::CheatEngine> cheat_engine; | 262 | std::unique_ptr<FileSys::CheatEngine> cheat_engine; |
| 265 | 263 | ||
| 266 | /// Frontend applets | 264 | /// Frontend applets |
| 267 | std::unique_ptr<Core::Frontend::ProfileSelectApplet> profile_selector; | 265 | Service::AM::Applets::AppletManager applet_manager; |
| 268 | std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> software_keyboard; | ||
| 269 | std::unique_ptr<Core::Frontend::WebBrowserApplet> web_browser; | ||
| 270 | 266 | ||
| 271 | /// Service manager | 267 | /// Service manager |
| 272 | std::shared_ptr<Service::SM::ServiceManager> service_manager; | 268 | std::shared_ptr<Service::SM::ServiceManager> service_manager; |
| @@ -476,20 +472,20 @@ std::shared_ptr<FileSys::VfsFilesystem> System::GetFilesystem() const { | |||
| 476 | return impl->virtual_filesystem; | 472 | return impl->virtual_filesystem; |
| 477 | } | 473 | } |
| 478 | 474 | ||
| 479 | void System::SetProfileSelector(std::unique_ptr<Frontend::ProfileSelectApplet> applet) { | 475 | void System::SetAppletFrontendSet(Service::AM::Applets::AppletFrontendSet&& set) { |
| 480 | impl->profile_selector = std::move(applet); | 476 | impl->applet_manager.SetAppletFrontendSet(std::move(set)); |
| 481 | } | 477 | } |
| 482 | 478 | ||
| 483 | const Frontend::ProfileSelectApplet& System::GetProfileSelector() const { | 479 | void System::SetDefaultAppletFrontendSet() { |
| 484 | return *impl->profile_selector; | 480 | impl->applet_manager.SetDefaultAppletFrontendSet(); |
| 485 | } | 481 | } |
| 486 | 482 | ||
| 487 | void System::SetSoftwareKeyboard(std::unique_ptr<Frontend::SoftwareKeyboardApplet> applet) { | 483 | Service::AM::Applets::AppletManager& System::GetAppletManager() { |
| 488 | impl->software_keyboard = std::move(applet); | 484 | return impl->applet_manager; |
| 489 | } | 485 | } |
| 490 | 486 | ||
| 491 | const Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const { | 487 | const Service::AM::Applets::AppletManager& System::GetAppletManager() const { |
| 492 | return *impl->software_keyboard; | 488 | return impl->applet_manager; |
| 493 | } | 489 | } |
| 494 | 490 | ||
| 495 | void System::SetContentProvider(std::unique_ptr<FileSys::ContentProviderUnion> provider) { | 491 | void System::SetContentProvider(std::unique_ptr<FileSys::ContentProviderUnion> provider) { |
| @@ -513,18 +509,6 @@ void System::ClearContentProvider(FileSys::ContentProviderUnionSlot slot) { | |||
| 513 | impl->content_provider->ClearSlot(slot); | 509 | impl->content_provider->ClearSlot(slot); |
| 514 | } | 510 | } |
| 515 | 511 | ||
| 516 | void System::SetWebBrowser(std::unique_ptr<Frontend::WebBrowserApplet> applet) { | ||
| 517 | impl->web_browser = std::move(applet); | ||
| 518 | } | ||
| 519 | |||
| 520 | Frontend::WebBrowserApplet& System::GetWebBrowser() { | ||
| 521 | return *impl->web_browser; | ||
| 522 | } | ||
| 523 | |||
| 524 | const Frontend::WebBrowserApplet& System::GetWebBrowser() const { | ||
| 525 | return *impl->web_browser; | ||
| 526 | } | ||
| 527 | |||
| 528 | System::ResultStatus System::Init(Frontend::EmuWindow& emu_window) { | 512 | System::ResultStatus System::Init(Frontend::EmuWindow& emu_window) { |
| 529 | return impl->Init(*this, emu_window); | 513 | return impl->Init(*this, emu_window); |
| 530 | } | 514 | } |