summaryrefslogtreecommitdiffstats
path: root/src/core/core.cpp
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-12-28 06:03:01 +0100
committerZach Hilman <zachhilman@gmail.com>2019-03-27 03:05:37 +0100
commit45cb41f51751631e8ca4ec9c21300ab6d38053a5 (patch)
tree5f25e3fe43f3844d2ffd4e8b2582faade79a7e38 /src/core/core.cpp
parentfile_sys: Create ContentProvider interface and default implementations (diff)
downloadyuzu-45cb41f51751631e8ca4ec9c21300ab6d38053a5.tar
yuzu-45cb41f51751631e8ca4ec9c21300ab6d38053a5.tar.gz
yuzu-45cb41f51751631e8ca4ec9c21300ab6d38053a5.tar.bz2
yuzu-45cb41f51751631e8ca4ec9c21300ab6d38053a5.tar.lz
yuzu-45cb41f51751631e8ca4ec9c21300ab6d38053a5.tar.xz
yuzu-45cb41f51751631e8ca4ec9c21300ab6d38053a5.tar.zst
yuzu-45cb41f51751631e8ca4ec9c21300ab6d38053a5.zip
Diffstat (limited to 'src/core/core.cpp')
-rw-r--r--src/core/core.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 4fe77c25b..bc9e887b6 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -17,6 +17,7 @@
#include "core/core_timing.h"
#include "core/cpu_core_manager.h"
#include "core/file_sys/mode.h"
+#include "core/file_sys/registered_cache.h"
#include "core/file_sys/vfs_concat.h"
#include "core/file_sys/vfs_real.h"
#include "core/gdbstub/gdbstub.h"
@@ -108,6 +109,8 @@ struct System::Impl {
// Create a default fs if one doesn't already exist.
if (virtual_filesystem == nullptr)
virtual_filesystem = std::make_shared<FileSys::RealVfsFilesystem>();
+ if (content_provider == nullptr)
+ content_provider = std::make_unique<FileSys::ContentProviderUnion>();
/// Create default implementations of applets if one is not provided.
if (profile_selector == nullptr)
@@ -249,6 +252,8 @@ struct System::Impl {
Kernel::KernelCore kernel;
/// RealVfsFilesystem instance
FileSys::VirtualFilesystem virtual_filesystem;
+ /// ContentProviderUnion instance
+ std::unique_ptr<FileSys::ContentProviderUnion> content_provider;
/// AppLoader used to load the current executing application
std::unique_ptr<Loader::AppLoader> app_loader;
std::unique_ptr<VideoCore::RendererBase> renderer;
@@ -488,6 +493,27 @@ const Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const {
return *impl->software_keyboard;
}
+void System::SetContentProvider(std::unique_ptr<FileSys::ContentProviderUnion> provider) {
+ impl->content_provider = std::move(provider);
+}
+
+FileSys::ContentProvider& System::GetContentProvider() {
+ return *impl->content_provider;
+}
+
+const FileSys::ContentProvider& System::GetContentProvider() const {
+ return *impl->content_provider;
+}
+
+void System::RegisterContentProvider(FileSys::ContentProviderUnionSlot slot,
+ FileSys::ContentProvider* provider) {
+ impl->content_provider->SetSlot(slot, provider);
+}
+
+void System::ClearContentProvider(FileSys::ContentProviderUnionSlot slot) {
+ impl->content_provider->ClearSlot(slot);
+}
+
void System::SetWebBrowser(std::unique_ptr<Frontend::WebBrowserApplet> applet) {
impl->web_browser = std::move(applet);
}