From 68658a8385b74454c8523efe95ceb81b34bb8812 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sun, 28 Apr 2019 18:49:46 -0400 Subject: module: Create BCAT backend based upon Settings value on construction --- src/core/hle/service/bcat/module.cpp | 14 +++++++++++++- src/core/hle/service/bcat/module.h | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/core/hle/service/bcat') diff --git a/src/core/hle/service/bcat/module.cpp b/src/core/hle/service/bcat/module.cpp index b7bd738fc..32d3d5cfc 100644 --- a/src/core/hle/service/bcat/module.cpp +++ b/src/core/hle/service/bcat/module.cpp @@ -38,10 +38,22 @@ void Module::Interface::CreateBcatService(Kernel::HLERequestContext& ctx) { IPC::ResponseBuilder rb{ctx, 2, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface(); +namespace { +std::unique_ptr CreateBackendFromSettings(DirectoryGetter getter) { + const auto backend = Settings::values.bcat_backend; + +#ifdef YUZU_ENABLE_BOXCAT + if (backend == "boxcat") + return std::make_unique(std::move(getter)); +#endif + + return std::make_unique(std::move(getter)); } +} // Anonymous namespace Module::Interface::Interface(std::shared_ptr module, const char* name) - : ServiceFramework(name), module(std::move(module)) {} + : ServiceFramework(name), module(std::move(module)), + backend(CreateBackendFromSettings(&Service::FileSystem::GetBCATDirectory)) {} Module::Interface::~Interface() = default; diff --git a/src/core/hle/service/bcat/module.h b/src/core/hle/service/bcat/module.h index f0d63cab0..4af363bfd 100644 --- a/src/core/hle/service/bcat/module.h +++ b/src/core/hle/service/bcat/module.h @@ -8,6 +8,8 @@ namespace Service::BCAT { +class Backend; + class Module final { public: class Interface : public ServiceFramework { @@ -19,6 +21,7 @@ public: protected: std::shared_ptr module; + std::unique_ptr backend; }; }; -- cgit v1.2.3