diff options
| author | 2019-03-11 19:33:49 -0400 | |
|---|---|---|
| committer | 2019-04-17 11:35:24 -0400 | |
| commit | ec0bc3061e674c70958f97b1fad3dbeb8145d3f6 (patch) | |
| tree | 48de5c628cad354dbc3361ef689b94abdaf17b6b /src/core/core.cpp | |
| parent | am: Delegate applet creation to AppletManager (diff) | |
| download | yuzu-ec0bc3061e674c70958f97b1fad3dbeb8145d3f6.tar.gz yuzu-ec0bc3061e674c70958f97b1fad3dbeb8145d3f6.tar.xz yuzu-ec0bc3061e674c70958f97b1fad3dbeb8145d3f6.zip | |
core: Remove specific applets in favor of AppletManager
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 bc9e887b6..aa578a589 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp | |||
| @@ -20,13 +20,18 @@ | |||
| 20 | #include "core/file_sys/registered_cache.h" | 20 | #include "core/file_sys/registered_cache.h" |
| 21 | #include "core/file_sys/vfs_concat.h" | 21 | #include "core/file_sys/vfs_concat.h" |
| 22 | #include "core/file_sys/vfs_real.h" | 22 | #include "core/file_sys/vfs_real.h" |
| 23 | #include "core/frontend/applets/error.h" | ||
| 24 | #include "core/frontend/applets/general_frontend.h" | ||
| 25 | #include "core/frontend/applets/profile_select.h" | ||
| 26 | #include "core/frontend/applets/software_keyboard.h" | ||
| 27 | #include "core/frontend/applets/web_browser.h" | ||
| 23 | #include "core/gdbstub/gdbstub.h" | 28 | #include "core/gdbstub/gdbstub.h" |
| 24 | #include "core/hle/kernel/client_port.h" | 29 | #include "core/hle/kernel/client_port.h" |
| 25 | #include "core/hle/kernel/kernel.h" | 30 | #include "core/hle/kernel/kernel.h" |
| 26 | #include "core/hle/kernel/process.h" | 31 | #include "core/hle/kernel/process.h" |
| 27 | #include "core/hle/kernel/scheduler.h" | 32 | #include "core/hle/kernel/scheduler.h" |
| 28 | #include "core/hle/kernel/thread.h" | 33 | #include "core/hle/kernel/thread.h" |
| 29 | #include "core/hle/service/am/applets/software_keyboard.h" | 34 | #include "core/hle/service/am/applets/applets.h" |
| 30 | #include "core/hle/service/service.h" | 35 | #include "core/hle/service/service.h" |
| 31 | #include "core/hle/service/sm/sm.h" | 36 | #include "core/hle/service/sm/sm.h" |
| 32 | #include "core/loader/loader.h" | 37 | #include "core/loader/loader.h" |
| @@ -113,12 +118,7 @@ struct System::Impl { | |||
| 113 | content_provider = std::make_unique<FileSys::ContentProviderUnion>(); | 118 | content_provider = std::make_unique<FileSys::ContentProviderUnion>(); |
| 114 | 119 | ||
| 115 | /// Create default implementations of applets if one is not provided. | 120 | /// Create default implementations of applets if one is not provided. |
| 116 | if (profile_selector == nullptr) | 121 | applet_manager.SetDefaultAppletsIfMissing(); |
| 117 | profile_selector = std::make_unique<Core::Frontend::DefaultProfileSelectApplet>(); | ||
| 118 | if (software_keyboard == nullptr) | ||
| 119 | software_keyboard = std::make_unique<Core::Frontend::DefaultSoftwareKeyboardApplet>(); | ||
| 120 | if (web_browser == nullptr) | ||
| 121 | web_browser = std::make_unique<Core::Frontend::DefaultWebBrowserApplet>(); | ||
| 122 | 122 | ||
| 123 | auto main_process = Kernel::Process::Create(system, "main"); | 123 | auto main_process = Kernel::Process::Create(system, "main"); |
| 124 | kernel.MakeCurrentProcess(main_process.get()); | 124 | kernel.MakeCurrentProcess(main_process.get()); |
| @@ -224,9 +224,7 @@ struct System::Impl { | |||
| 224 | app_loader.reset(); | 224 | app_loader.reset(); |
| 225 | 225 | ||
| 226 | // Clear all applets | 226 | // Clear all applets |
| 227 | profile_selector.reset(); | 227 | applet_manager.ClearAll(); |
| 228 | software_keyboard.reset(); | ||
| 229 | web_browser.reset(); | ||
| 230 | 228 | ||
| 231 | LOG_DEBUG(Core, "Shutdown OK"); | 229 | LOG_DEBUG(Core, "Shutdown OK"); |
| 232 | } | 230 | } |
| @@ -265,9 +263,7 @@ struct System::Impl { | |||
| 265 | std::unique_ptr<FileSys::CheatEngine> cheat_engine; | 263 | std::unique_ptr<FileSys::CheatEngine> cheat_engine; |
| 266 | 264 | ||
| 267 | /// Frontend applets | 265 | /// Frontend applets |
| 268 | std::unique_ptr<Core::Frontend::ProfileSelectApplet> profile_selector; | 266 | Service::AM::Applets::AppletManager applet_manager; |
| 269 | std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> software_keyboard; | ||
| 270 | std::unique_ptr<Core::Frontend::WebBrowserApplet> web_browser; | ||
| 271 | 267 | ||
| 272 | /// Service manager | 268 | /// Service manager |
| 273 | std::shared_ptr<Service::SM::ServiceManager> service_manager; | 269 | std::shared_ptr<Service::SM::ServiceManager> service_manager; |
| @@ -477,20 +473,20 @@ std::shared_ptr<FileSys::VfsFilesystem> System::GetFilesystem() const { | |||
| 477 | return impl->virtual_filesystem; | 473 | return impl->virtual_filesystem; |
| 478 | } | 474 | } |
| 479 | 475 | ||
| 480 | void System::SetProfileSelector(std::unique_ptr<Frontend::ProfileSelectApplet> applet) { | 476 | void System::SetAppletFrontendSet(Service::AM::Applets::AppletFrontendSet&& set) { |
| 481 | impl->profile_selector = std::move(applet); | 477 | impl->applet_manager.SetAppletFrontendSet(std::move(set)); |
| 482 | } | 478 | } |
| 483 | 479 | ||
| 484 | const Frontend::ProfileSelectApplet& System::GetProfileSelector() const { | 480 | void System::SetDefaultAppletFrontendSet() { |
| 485 | return *impl->profile_selector; | 481 | impl->applet_manager.SetDefaultAppletFrontendSet(); |
| 486 | } | 482 | } |
| 487 | 483 | ||
| 488 | void System::SetSoftwareKeyboard(std::unique_ptr<Frontend::SoftwareKeyboardApplet> applet) { | 484 | Service::AM::Applets::AppletManager& System::GetAppletManager() { |
| 489 | impl->software_keyboard = std::move(applet); | 485 | return impl->applet_manager; |
| 490 | } | 486 | } |
| 491 | 487 | ||
| 492 | const Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const { | 488 | const Service::AM::Applets::AppletManager& System::GetAppletManager() const { |
| 493 | return *impl->software_keyboard; | 489 | return impl->applet_manager; |
| 494 | } | 490 | } |
| 495 | 491 | ||
| 496 | void System::SetContentProvider(std::unique_ptr<FileSys::ContentProviderUnion> provider) { | 492 | void System::SetContentProvider(std::unique_ptr<FileSys::ContentProviderUnion> provider) { |
| @@ -514,18 +510,6 @@ void System::ClearContentProvider(FileSys::ContentProviderUnionSlot slot) { | |||
| 514 | impl->content_provider->ClearSlot(slot); | 510 | impl->content_provider->ClearSlot(slot); |
| 515 | } | 511 | } |
| 516 | 512 | ||
| 517 | void System::SetWebBrowser(std::unique_ptr<Frontend::WebBrowserApplet> applet) { | ||
| 518 | impl->web_browser = std::move(applet); | ||
| 519 | } | ||
| 520 | |||
| 521 | Frontend::WebBrowserApplet& System::GetWebBrowser() { | ||
| 522 | return *impl->web_browser; | ||
| 523 | } | ||
| 524 | |||
| 525 | const Frontend::WebBrowserApplet& System::GetWebBrowser() const { | ||
| 526 | return *impl->web_browser; | ||
| 527 | } | ||
| 528 | |||
| 529 | System::ResultStatus System::Init(Frontend::EmuWindow& emu_window) { | 513 | System::ResultStatus System::Init(Frontend::EmuWindow& emu_window) { |
| 530 | return impl->Init(*this, emu_window); | 514 | return impl->Init(*this, emu_window); |
| 531 | } | 515 | } |