mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Expose loader helper functions for identifying files.
This commit is contained in:
		
							parent
							
								
									b3af7aad9e
								
							
						
					
					
						commit
						bba12520c4
					
				
					 2 changed files with 41 additions and 13 deletions
				
			
		|  | @ -26,12 +26,7 @@ const std::initializer_list<Kernel::AddressMapping> default_address_mappings = { | |||
|     { 0x1F000000, 0x600000, false }, // entire VRAM
 | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  * Identifies the type of a bootable file | ||||
|  * @param file open file | ||||
|  * @return FileType of file | ||||
|  */ | ||||
| static FileType IdentifyFile(FileUtil::IOFile& file) { | ||||
| FileType IdentifyFile(FileUtil::IOFile& file) { | ||||
|     FileType type; | ||||
| 
 | ||||
| #define CHECK_TYPE(loader) \ | ||||
|  | @ -48,12 +43,17 @@ static FileType IdentifyFile(FileUtil::IOFile& file) { | |||
|     return FileType::Unknown; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Guess the type of a bootable file from its extension | ||||
|  * @param extension_ String extension of bootable file | ||||
|  * @return FileType of file | ||||
|  */ | ||||
| static FileType GuessFromExtension(const std::string& extension_) { | ||||
| FileType IdentifyFile(const std::string& file_name) { | ||||
|     FileUtil::IOFile file(file_name, "rb"); | ||||
|     if (!file.IsOpen()) { | ||||
|         LOG_ERROR(Loader, "Failed to load file %s", file_name.c_str()); | ||||
|         return FileType::Unknown; | ||||
|     } | ||||
| 
 | ||||
|     return IdentifyFile(file); | ||||
| } | ||||
| 
 | ||||
| FileType GuessFromExtension(const std::string& extension_) { | ||||
|     std::string extension = Common::ToLower(extension_); | ||||
| 
 | ||||
|     if (extension == ".elf" || extension == ".axf") | ||||
|  | @ -71,7 +71,7 @@ static FileType GuessFromExtension(const std::string& extension_) { | |||
|     return FileType::Unknown; | ||||
| } | ||||
| 
 | ||||
| static const char* GetFileTypeString(FileType type) { | ||||
| const char* GetFileTypeString(FileType type) { | ||||
|     switch (type) { | ||||
|     case FileType::CCI: | ||||
|         return "NCSD"; | ||||
|  |  | |||
|  | @ -33,6 +33,34 @@ enum class FileType { | |||
|     THREEDSX, //3DSX
 | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  * Identifies the type of a bootable file based on the magic value in its header. | ||||
|  * @param file open file | ||||
|  * @return FileType of file | ||||
|  */ | ||||
| FileType IdentifyFile(FileUtil::IOFile& file); | ||||
| 
 | ||||
| /**
 | ||||
|  * Identifies the type of a bootable file based on the magic value in its header. | ||||
|  * @param file_name path to file | ||||
|  * @return FileType of file. Note: this will return FileType::Unknown if it is unable to determine | ||||
|  * a filetype, and will never return FileType::Error. | ||||
|  */ | ||||
| FileType IdentifyFile(const std::string& file_name); | ||||
| 
 | ||||
| /**
 | ||||
|  * Guess the type of a bootable file from its extension | ||||
|  * @param extension String extension of bootable file | ||||
|  * @return FileType of file. Note: this will return FileType::Unknown if it is unable to determine | ||||
|  * a filetype, and will never return FileType::Error. | ||||
|  */ | ||||
| FileType GuessFromExtension(const std::string& extension_); | ||||
| 
 | ||||
| /**
 | ||||
|  * Convert a FileType into a string which can be displayed to the user. | ||||
|  */ | ||||
| const char* GetFileTypeString(FileType type); | ||||
| 
 | ||||
| /// Return type for functions in Loader namespace
 | ||||
| enum class ResultStatus { | ||||
|     Success, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue