mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-09 05:32:36 +00:00
[fs] moved temp folder cleanup upstream (per-application level) to avoid per-program retrigger)
This commit is contained in:
@@ -312,6 +312,10 @@ struct System::Impl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SystemResultStatus Load(System& system, Frontend::EmuWindow& emu_window, const std::string& filepath, Service::AM::FrontendAppletParameters& params) {
|
SystemResultStatus Load(System& system, Frontend::EmuWindow& emu_window, const std::string& filepath, Service::AM::FrontendAppletParameters& params) {
|
||||||
|
if (params.launch_type == Service::AM::LaunchType::FrontendInitiated) {
|
||||||
|
fs_controller.InitTempStorage();
|
||||||
|
}
|
||||||
|
|
||||||
InitializeKernel(system);
|
InitializeKernel(system);
|
||||||
|
|
||||||
if (params.applet_type == Service::AM::AppletType::Application) {
|
if (params.applet_type == Service::AM::AppletType::Application) {
|
||||||
|
|||||||
@@ -57,11 +57,7 @@ std::string GetFutureSaveDataPath(SaveDataSpaceId space_id, SaveDataType type, u
|
|||||||
|
|
||||||
SaveDataFactory::SaveDataFactory(Core::System& system_, ProgramId program_id_,
|
SaveDataFactory::SaveDataFactory(Core::System& system_, ProgramId program_id_,
|
||||||
VirtualDir save_directory_)
|
VirtualDir save_directory_)
|
||||||
: system{system_}, program_id{program_id_}, dir{std::move(save_directory_)} {
|
: system{system_}, program_id{program_id_}, dir{std::move(save_directory_)} {}
|
||||||
// Delete all temporary storages
|
|
||||||
// On hardware, it is expected that temporary storage be empty at first use.
|
|
||||||
dir->DeleteSubdirectoryRecursive("temp");
|
|
||||||
}
|
|
||||||
|
|
||||||
SaveDataFactory::~SaveDataFactory() = default;
|
SaveDataFactory::~SaveDataFactory() = default;
|
||||||
|
|
||||||
|
|||||||
@@ -787,6 +787,13 @@ void FileSystemController::CreateFactories(FileSys::VfsFilesystem& vfs, bool ove
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FileSystemController::InitTempStorage() {
|
||||||
|
const auto save_directory = system.GetFilesystem()->OpenDirectory(Common::FS::GetEdenPathString(Common::FS::EdenPath::SaveDir), FileSys::OpenMode::ReadWrite);
|
||||||
|
if (save_directory != nullptr) {
|
||||||
|
save_directory->DeleteSubdirectoryRecursive("temp");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void FileSystemController::Reset() {
|
void FileSystemController::Reset() {
|
||||||
std::scoped_lock lk{registration_lock};
|
std::scoped_lock lk{registration_lock};
|
||||||
registrations.clear();
|
registrations.clear();
|
||||||
|
|||||||
@@ -127,6 +127,8 @@ public:
|
|||||||
// above is called.
|
// above is called.
|
||||||
void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite = true);
|
void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite = true);
|
||||||
|
|
||||||
|
void InitTempStorage();
|
||||||
|
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user