loader: Add accessor for game control data
This commit is contained in:
		
							parent
							
								
									417e1ef09c
								
							
						
					
					
						commit
						0756f29a2c
					
				@ -15,6 +15,10 @@
 | 
			
		||||
#include "core/file_sys/control_metadata.h"
 | 
			
		||||
#include "core/file_sys/vfs.h"
 | 
			
		||||
 | 
			
		||||
namespace FileSys {
 | 
			
		||||
class NACP;
 | 
			
		||||
} // namespace FileSys
 | 
			
		||||
 | 
			
		||||
namespace Kernel {
 | 
			
		||||
struct AddressMapping;
 | 
			
		||||
class Process;
 | 
			
		||||
@ -245,11 +249,11 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get the developer of the application
 | 
			
		||||
     * @param developer Reference to store the application developer into
 | 
			
		||||
     * Get the control data (CNMT) of the application
 | 
			
		||||
     * @param control Reference to store the application control data into
 | 
			
		||||
     * @return ResultStatus result of function
 | 
			
		||||
     */
 | 
			
		||||
    virtual ResultStatus ReadDeveloper(std::string& developer) {
 | 
			
		||||
    virtual ResultStatus ReadControlData(FileSys::NACP& control) {
 | 
			
		||||
        return ResultStatus::ErrorNotImplemented;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -152,10 +152,10 @@ ResultStatus AppLoader_NSP::ReadTitle(std::string& title) {
 | 
			
		||||
    return ResultStatus::Success;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultStatus AppLoader_NSP::ReadDeveloper(std::string& developer) {
 | 
			
		||||
ResultStatus AppLoader_NSP::ReadControlData(FileSys::NACP& nacp) {
 | 
			
		||||
    if (nacp_file == nullptr)
 | 
			
		||||
        return ResultStatus::ErrorNoControl;
 | 
			
		||||
    developer = nacp_file->GetDeveloperName();
 | 
			
		||||
    nacp = *nacp_file;
 | 
			
		||||
    return ResultStatus::Success;
 | 
			
		||||
}
 | 
			
		||||
} // namespace Loader
 | 
			
		||||
 | 
			
		||||
@ -43,7 +43,7 @@ public:
 | 
			
		||||
    ResultStatus ReadProgramId(u64& out_program_id) override;
 | 
			
		||||
    ResultStatus ReadIcon(std::vector<u8>& buffer) override;
 | 
			
		||||
    ResultStatus ReadTitle(std::string& title) override;
 | 
			
		||||
    ResultStatus ReadDeveloper(std::string& developer) override;
 | 
			
		||||
    ResultStatus ReadControlData(FileSys::NACP& nacp) override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    std::unique_ptr<FileSys::NSP> nsp;
 | 
			
		||||
 | 
			
		||||
@ -121,10 +121,11 @@ ResultStatus AppLoader_XCI::ReadTitle(std::string& title) {
 | 
			
		||||
    return ResultStatus::Success;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultStatus AppLoader_XCI::ReadDeveloper(std::string& developer) {
 | 
			
		||||
ResultStatus AppLoader_XCI::ReadControlData(FileSys::NACP& control) {
 | 
			
		||||
    if (nacp_file == nullptr)
 | 
			
		||||
        return ResultStatus::ErrorNoControl;
 | 
			
		||||
    developer = nacp_file->GetDeveloperName();
 | 
			
		||||
    control = *nacp_file;
 | 
			
		||||
    return ResultStatus::Success;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Loader
 | 
			
		||||
 | 
			
		||||
@ -43,7 +43,7 @@ public:
 | 
			
		||||
    ResultStatus ReadProgramId(u64& out_program_id) override;
 | 
			
		||||
    ResultStatus ReadIcon(std::vector<u8>& buffer) override;
 | 
			
		||||
    ResultStatus ReadTitle(std::string& title) override;
 | 
			
		||||
    ResultStatus ReadDeveloper(std::string& developer) override;
 | 
			
		||||
    ResultStatus ReadControlData(FileSys::NACP& control) override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    std::unique_ptr<FileSys::XCI> xci;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user