module: Create BCAT backend based upon Settings value on construction
This commit is contained in:
		
							parent
							
								
									2903f3524e
								
							
						
					
					
						commit
						68658a8385
					
				| @ -1,3 +1,9 @@ | ||||
| if (YUZU_ENABLE_BOXCAT) | ||||
|     set(BCAT_BOXCAT_ADDITIONAL_SOURCES hle/service/bcat/backend/boxcat.cpp hle/service/bcat/backend/boxcat.h) | ||||
| else() | ||||
|     set(BCAT_BOXCAT_ADDITIONAL_SOURCES) | ||||
| endif() | ||||
| 
 | ||||
| add_library(core STATIC | ||||
|     arm/arm_interface.h | ||||
|     arm/arm_interface.cpp | ||||
| @ -82,6 +88,8 @@ add_library(core STATIC | ||||
|     file_sys/vfs_concat.h | ||||
|     file_sys/vfs_layered.cpp | ||||
|     file_sys/vfs_layered.h | ||||
|     file_sys/vfs_libzip.cpp | ||||
|     file_sys/vfs_libzip.h | ||||
|     file_sys/vfs_offset.cpp | ||||
|     file_sys/vfs_offset.h | ||||
|     file_sys/vfs_real.cpp | ||||
| @ -241,6 +249,9 @@ add_library(core STATIC | ||||
|     hle/service/audio/errors.h | ||||
|     hle/service/audio/hwopus.cpp | ||||
|     hle/service/audio/hwopus.h | ||||
|     hle/service/bcat/backend/backend.cpp | ||||
|     hle/service/bcat/backend/backend.h | ||||
|     ${BCAT_BOXCAT_ADDITIONAL_SOURCES} | ||||
|     hle/service/bcat/bcat.cpp | ||||
|     hle/service/bcat/bcat.h | ||||
|     hle/service/bcat/module.cpp | ||||
| @ -499,6 +510,15 @@ create_target_directory_groups(core) | ||||
| 
 | ||||
| target_link_libraries(core PUBLIC common PRIVATE audio_core video_core) | ||||
| target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt json-headers mbedtls opus unicorn open_source_archives) | ||||
| 
 | ||||
| if (YUZU_ENABLE_BOXCAT) | ||||
|     get_directory_property(OPENSSL_LIBS | ||||
|         DIRECTORY ${PROJECT_SOURCE_DIR}/externals/libressl | ||||
|         DEFINITION OPENSSL_LIBS) | ||||
|     target_compile_definitions(core PRIVATE -DCPPHTTPLIB_OPENSSL_SUPPORT -DYUZU_ENABLE_BOXCAT) | ||||
|     target_link_libraries(core PRIVATE httplib json-headers ${OPENSSL_LIBS} zip) | ||||
| endif() | ||||
| 
 | ||||
| if (ENABLE_WEB_SERVICE) | ||||
|     target_compile_definitions(core PRIVATE -DENABLE_WEB_SERVICE) | ||||
|     target_link_libraries(core PRIVATE web_service) | ||||
|  | ||||
| @ -38,10 +38,22 @@ void Module::Interface::CreateBcatService(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IBcatService>(); | ||||
| namespace { | ||||
| std::unique_ptr<Backend> CreateBackendFromSettings(DirectoryGetter getter) { | ||||
|     const auto backend = Settings::values.bcat_backend; | ||||
| 
 | ||||
| #ifdef YUZU_ENABLE_BOXCAT | ||||
|     if (backend == "boxcat") | ||||
|         return std::make_unique<Boxcat>(std::move(getter)); | ||||
| #endif | ||||
| 
 | ||||
|     return std::make_unique<NullBackend>(std::move(getter)); | ||||
| } | ||||
| } // Anonymous namespace
 | ||||
| 
 | ||||
| Module::Interface::Interface(std::shared_ptr<Module> 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; | ||||
| 
 | ||||
|  | ||||
| @ -8,6 +8,8 @@ | ||||
| 
 | ||||
| namespace Service::BCAT { | ||||
| 
 | ||||
| class Backend; | ||||
| 
 | ||||
| class Module final { | ||||
| public: | ||||
|     class Interface : public ServiceFramework<Interface> { | ||||
| @ -19,6 +21,7 @@ public: | ||||
| 
 | ||||
|     protected: | ||||
|         std::shared_ptr<Module> module; | ||||
|         std::unique_ptr<Backend> backend; | ||||
|     }; | ||||
| }; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Zach Hilman
						Zach Hilman