android: Initialize filesystem components during application start
This commit is contained in:
		| @@ -247,6 +247,17 @@ void EmulationSession::ConfigureFilesystemProvider(const std::string& filepath) | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void EmulationSession::InitializeSystem() { | ||||||
|  |     // Initialize filesystem. | ||||||
|  |     m_system.SetFilesystem(m_vfs); | ||||||
|  |     m_system.GetUserChannel().clear(); | ||||||
|  |     m_manual_provider = std::make_unique<FileSys::ManualContentProvider>(); | ||||||
|  |     m_system.SetContentProvider(std::make_unique<FileSys::ContentProviderUnion>()); | ||||||
|  |     m_system.RegisterContentProvider(FileSys::ContentProviderUnionSlot::FrontendManual, | ||||||
|  |                                      m_manual_provider.get()); | ||||||
|  |     m_system.GetFileSystemController().CreateFactories(*m_vfs); | ||||||
|  | } | ||||||
|  |  | ||||||
| Core::SystemResultStatus EmulationSession::InitializeEmulation(const std::string& filepath) { | Core::SystemResultStatus EmulationSession::InitializeEmulation(const std::string& filepath) { | ||||||
|     std::scoped_lock lock(m_mutex); |     std::scoped_lock lock(m_mutex); | ||||||
|  |  | ||||||
| @@ -254,9 +265,6 @@ Core::SystemResultStatus EmulationSession::InitializeEmulation(const std::string | |||||||
|     m_window = |     m_window = | ||||||
|         std::make_unique<EmuWindow_Android>(&m_input_subsystem, m_native_window, m_vulkan_library); |         std::make_unique<EmuWindow_Android>(&m_input_subsystem, m_native_window, m_vulkan_library); | ||||||
|  |  | ||||||
|     m_system.SetFilesystem(m_vfs); |  | ||||||
|     m_system.GetUserChannel().clear(); |  | ||||||
|  |  | ||||||
|     // Initialize system. |     // Initialize system. | ||||||
|     jauto android_keyboard = std::make_unique<SoftwareKeyboard::AndroidKeyboard>(); |     jauto android_keyboard = std::make_unique<SoftwareKeyboard::AndroidKeyboard>(); | ||||||
|     m_software_keyboard = android_keyboard.get(); |     m_software_keyboard = android_keyboard.get(); | ||||||
| @@ -277,11 +285,6 @@ Core::SystemResultStatus EmulationSession::InitializeEmulation(const std::string | |||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     // Initialize filesystem. |     // Initialize filesystem. | ||||||
|     m_manual_provider = std::make_unique<FileSys::ManualContentProvider>(); |  | ||||||
|     m_system.SetContentProvider(std::make_unique<FileSys::ContentProviderUnion>()); |  | ||||||
|     m_system.RegisterContentProvider(FileSys::ContentProviderUnionSlot::FrontendManual, |  | ||||||
|                                      m_manual_provider.get()); |  | ||||||
|     m_system.GetFileSystemController().CreateFactories(*m_vfs); |  | ||||||
|     ConfigureFilesystemProvider(filepath); |     ConfigureFilesystemProvider(filepath); | ||||||
|  |  | ||||||
|     // Initialize account manager |     // Initialize account manager | ||||||
| @@ -663,11 +666,12 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchReleased(JNIEnv* env, jclass c | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmulation(JNIEnv* env, jclass clazz) { | void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeSystem(JNIEnv* env, jclass clazz) { | ||||||
|     // Create the default config.ini. |     // Create the default config.ini. | ||||||
|     Config{}; |     Config{}; | ||||||
|     // Initialize the emulated system. |     // Initialize the emulated system. | ||||||
|     EmulationSession::GetInstance().System().Initialize(); |     EmulationSession::GetInstance().System().Initialize(); | ||||||
|  |     EmulationSession::GetInstance().InitializeSystem(); | ||||||
| } | } | ||||||
|  |  | ||||||
| jint Java_org_yuzu_yuzu_1emu_NativeLibrary_defaultCPUCore(JNIEnv* env, jclass clazz) { | jint Java_org_yuzu_yuzu_1emu_NativeLibrary_defaultCPUCore(JNIEnv* env, jclass clazz) { | ||||||
|   | |||||||
| @@ -43,6 +43,7 @@ public: | |||||||
|  |  | ||||||
|     const Core::PerfStatsResults& PerfStats() const; |     const Core::PerfStatsResults& PerfStats() const; | ||||||
|     void ConfigureFilesystemProvider(const std::string& filepath); |     void ConfigureFilesystemProvider(const std::string& filepath); | ||||||
|  |     void InitializeSystem(); | ||||||
|     Core::SystemResultStatus InitializeEmulation(const std::string& filepath); |     Core::SystemResultStatus InitializeEmulation(const std::string& filepath); | ||||||
|  |  | ||||||
|     bool IsHandheldOnly(); |     bool IsHandheldOnly(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user