summaryrefslogtreecommitdiff
path: root/src/core/core.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2019-01-10 17:04:38 -0500
committerGravatar GitHub2019-01-10 17:04:38 -0500
commit83e8ad23310937bb72f4412c15f45231a19202f7 (patch)
tree80301af69b14a701f16e21d41ced436850085031 /src/core/core.cpp
parentMerge pull request #2010 from ReinUsesLisp/gmem (diff)
parentbuild: Copy web engine resources to correct location (diff)
downloadyuzu-83e8ad23310937bb72f4412c15f45231a19202f7.tar.gz
yuzu-83e8ad23310937bb72f4412c15f45231a19202f7.tar.xz
yuzu-83e8ad23310937bb72f4412c15f45231a19202f7.zip
Merge pull request #1939 from DarkLordZach/web-applet
applets: Implement HLE web browser applet (LibAppletOff)
Diffstat (limited to 'src/core/core.cpp')
-rw-r--r--src/core/core.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index fd10199ec..715172771 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -31,7 +31,9 @@
31#include "core/loader/loader.h" 31#include "core/loader/loader.h"
32#include "core/perf_stats.h" 32#include "core/perf_stats.h"
33#include "core/telemetry_session.h" 33#include "core/telemetry_session.h"
34#include "frontend/applets/profile_select.h"
34#include "frontend/applets/software_keyboard.h" 35#include "frontend/applets/software_keyboard.h"
36#include "frontend/applets/web_browser.h"
35#include "video_core/debug_utils/debug_utils.h" 37#include "video_core/debug_utils/debug_utils.h"
36#include "video_core/gpu.h" 38#include "video_core/gpu.h"
37#include "video_core/renderer_base.h" 39#include "video_core/renderer_base.h"
@@ -103,6 +105,8 @@ struct System::Impl {
103 profile_selector = std::make_unique<Core::Frontend::DefaultProfileSelectApplet>(); 105 profile_selector = std::make_unique<Core::Frontend::DefaultProfileSelectApplet>();
104 if (software_keyboard == nullptr) 106 if (software_keyboard == nullptr)
105 software_keyboard = std::make_unique<Core::Frontend::DefaultSoftwareKeyboardApplet>(); 107 software_keyboard = std::make_unique<Core::Frontend::DefaultSoftwareKeyboardApplet>();
108 if (web_browser == nullptr)
109 web_browser = std::make_unique<Core::Frontend::DefaultWebBrowserApplet>();
106 110
107 auto main_process = Kernel::Process::Create(kernel, "main"); 111 auto main_process = Kernel::Process::Create(kernel, "main");
108 kernel.MakeCurrentProcess(main_process.get()); 112 kernel.MakeCurrentProcess(main_process.get());
@@ -199,6 +203,11 @@ struct System::Impl {
199 // Close app loader 203 // Close app loader
200 app_loader.reset(); 204 app_loader.reset();
201 205
206 // Clear all applets
207 profile_selector.reset();
208 software_keyboard.reset();
209 web_browser.reset();
210
202 LOG_DEBUG(Core, "Shutdown OK"); 211 LOG_DEBUG(Core, "Shutdown OK");
203 } 212 }
204 213
@@ -233,6 +242,7 @@ struct System::Impl {
233 /// Frontend applets 242 /// Frontend applets
234 std::unique_ptr<Core::Frontend::ProfileSelectApplet> profile_selector; 243 std::unique_ptr<Core::Frontend::ProfileSelectApplet> profile_selector;
235 std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> software_keyboard; 244 std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> software_keyboard;
245 std::unique_ptr<Core::Frontend::WebBrowserApplet> web_browser;
236 246
237 /// Service manager 247 /// Service manager
238 std::shared_ptr<Service::SM::ServiceManager> service_manager; 248 std::shared_ptr<Service::SM::ServiceManager> service_manager;
@@ -443,6 +453,14 @@ const Core::Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() cons
443 return *impl->software_keyboard; 453 return *impl->software_keyboard;
444} 454}
445 455
456void System::SetWebBrowser(std::unique_ptr<Core::Frontend::WebBrowserApplet> applet) {
457 impl->web_browser = std::move(applet);
458}
459
460const Core::Frontend::WebBrowserApplet& System::GetWebBrowser() const {
461 return *impl->web_browser;
462}
463
446System::ResultStatus System::Init(Frontend::EmuWindow& emu_window) { 464System::ResultStatus System::Init(Frontend::EmuWindow& emu_window) {
447 return impl->Init(*this, emu_window); 465 return impl->Init(*this, emu_window);
448} 466}