From 85030c6e6bfe83b6671de45b25535fe3ef713319 Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Tue, 6 Jan 2015 19:49:25 +0000 Subject: Loader: Never forget to change is_loaded. --- src/core/loader/3dsx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/loader/3dsx.h') diff --git a/src/core/loader/3dsx.h b/src/core/loader/3dsx.h index da8836662..f28224628 100644 --- a/src/core/loader/3dsx.h +++ b/src/core/loader/3dsx.h @@ -26,7 +26,7 @@ public: private: std::string filename; - bool is_loaded; + bool is_loaded = false; }; } // namespace Loader -- cgit v1.2.3 From b5237e885df72f6c37532fc8af9573966e7b07e5 Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Tue, 6 Jan 2015 21:30:40 +0000 Subject: Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times. --- src/core/loader/3dsx.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'src/core/loader/3dsx.h') diff --git a/src/core/loader/3dsx.h b/src/core/loader/3dsx.h index f28224628..2f2e8bec0 100644 --- a/src/core/loader/3dsx.h +++ b/src/core/loader/3dsx.h @@ -15,18 +15,13 @@ namespace Loader { /// Loads an 3DSX file class AppLoader_THREEDSX final : public AppLoader { public: - AppLoader_THREEDSX(const std::string& filename); - ~AppLoader_THREEDSX() override; + AppLoader_THREEDSX(std::unique_ptr&& file) : AppLoader(std::move(file)) { } /** * Load the bootable file * @return ResultStatus result of function */ ResultStatus Load() override; - -private: - std::string filename; - bool is_loaded = false; }; } // namespace Loader -- cgit v1.2.3 From 82ec17db7df53ed1c376d1cdaa9a6587719a546d Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Tue, 6 Jan 2015 23:10:13 +0000 Subject: Loader: Guess filetype from the magic, or fallback to the extension. --- src/core/loader/3dsx.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/core/loader/3dsx.h') diff --git a/src/core/loader/3dsx.h b/src/core/loader/3dsx.h index 2f2e8bec0..a11667400 100644 --- a/src/core/loader/3dsx.h +++ b/src/core/loader/3dsx.h @@ -17,6 +17,13 @@ class AppLoader_THREEDSX final : public AppLoader { public: AppLoader_THREEDSX(std::unique_ptr&& file) : AppLoader(std::move(file)) { } + /** + * Returns the type of the file + * @param file FileUtil::IOFile open file + * @return FileType found, or FileType::Error if this loader doesn't know it + */ + static FileType IdentifyType(FileUtil::IOFile& file); + /** * Load the bootable file * @return ResultStatus result of function -- cgit v1.2.3