diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 82c934f7eb031b0b48a751bd889445b8e17f60d1..94a5765087596f6cb3e867d5a1caf00668cf7f43 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -87,6 +87,8 @@ add_library(core STATIC frontend/applets/profile_select.h frontend/applets/software_keyboard.cpp frontend/applets/software_keyboard.h + frontend/applets/web_browser.cpp + frontend/applets/web_browser.h frontend/emu_window.cpp frontend/emu_window.h frontend/framebuffer_layout.cpp diff --git a/src/core/core.cpp b/src/core/core.cpp index fd10199ec17b8505fbb3e335bd25fdfcc3fec325..373dff2e6705d9216ed111c686dc4a2c7375aca1 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -31,7 +31,9 @@ #include "core/loader/loader.h" #include "core/perf_stats.h" #include "core/telemetry_session.h" +#include "frontend/applets/profile_select.h" #include "frontend/applets/software_keyboard.h" +#include "frontend/applets/web_browser.h" #include "video_core/debug_utils/debug_utils.h" #include "video_core/gpu.h" #include "video_core/renderer_base.h" @@ -103,6 +105,8 @@ struct System::Impl { profile_selector = std::make_unique<Core::Frontend::DefaultProfileSelectApplet>(); if (software_keyboard == nullptr) software_keyboard = std::make_unique<Core::Frontend::DefaultSoftwareKeyboardApplet>(); + if (web_browser == nullptr) + web_browser = std::make_unique<Core::Frontend::DefaultWebBrowserApplet>(); auto main_process = Kernel::Process::Create(kernel, "main"); kernel.MakeCurrentProcess(main_process.get()); @@ -233,6 +237,7 @@ struct System::Impl { /// Frontend applets std::unique_ptr<Core::Frontend::ProfileSelectApplet> profile_selector; std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> software_keyboard; + std::unique_ptr<Core::Frontend::WebBrowserApplet> web_browser; /// Service manager std::shared_ptr<Service::SM::ServiceManager> service_manager; @@ -443,6 +448,14 @@ const Core::Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() cons return *impl->software_keyboard; } +void System::SetWebBrowser(std::unique_ptr<Core::Frontend::WebBrowserApplet> applet) { + impl->web_browser = std::move(applet); +} + +const Core::Frontend::WebBrowserApplet& System::GetWebBrowser() const { + return *impl->web_browser; +} + System::ResultStatus System::Init(Frontend::EmuWindow& emu_window) { return impl->Init(*this, emu_window); } diff --git a/src/core/core.h b/src/core/core.h index 869921493d63b3195b3be9b37264bbf776a9efdc..a53dbb4d48f5eb57454bcfc09d39c4a7042bb3d5 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -11,11 +11,12 @@ #include "common/common_types.h" #include "core/file_sys/vfs_types.h" #include "core/hle/kernel/object.h" -#include "frontend/applets/profile_select.h" namespace Core::Frontend { class EmuWindow; +class ProfileSelectApplet; class SoftwareKeyboardApplet; +class WebBrowserApplet; } // namespace Core::Frontend namespace FileSys { @@ -250,6 +251,10 @@ public: const Core::Frontend::SoftwareKeyboardApplet& GetSoftwareKeyboard() const; + void SetWebBrowser(std::unique_ptr<Core::Frontend::WebBrowserApplet> applet); + + const Core::Frontend::WebBrowserApplet& GetWebBrowser() const; + private: System(); diff --git a/src/core/hle/service/am/applets/profile_select.cpp b/src/core/hle/service/am/applets/profile_select.cpp index 4c7b45454d94faf1859c84a582f8600162693b44..14e2a1fee8f0d65a3867125f9ff155ee6b1050f1 100644 --- a/src/core/hle/service/am/applets/profile_select.cpp +++ b/src/core/hle/service/am/applets/profile_select.cpp @@ -7,7 +7,7 @@ #include "common/assert.h" #include "common/string_util.h" #include "core/core.h" -#include "core/frontend/applets/software_keyboard.h" +#include "core/frontend/applets/profile_select.h" #include "core/hle/service/am/am.h" #include "core/hle/service/am/applets/profile_select.h"