diff options
Diffstat (limited to 'src/core/loader/xci.cpp')
| -rw-r--r-- | src/core/loader/xci.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/core/loader/xci.cpp b/src/core/loader/xci.cpp index 635d6ae15..269603eef 100644 --- a/src/core/loader/xci.cpp +++ b/src/core/loader/xci.cpp | |||
| @@ -22,9 +22,9 @@ namespace Loader { | |||
| 22 | 22 | ||
| 23 | AppLoader_XCI::AppLoader_XCI(FileSys::VirtualFile file_, | 23 | AppLoader_XCI::AppLoader_XCI(FileSys::VirtualFile file_, |
| 24 | const Service::FileSystem::FileSystemController& fsc, | 24 | const Service::FileSystem::FileSystemController& fsc, |
| 25 | const FileSys::ContentProvider& content_provider, | 25 | const FileSys::ContentProvider& content_provider, u64 program_id, |
| 26 | std::size_t program_index) | 26 | std::size_t program_index) |
| 27 | : AppLoader(file_), xci(std::make_unique<FileSys::XCI>(file_, program_index)), | 27 | : AppLoader(file_), xci(std::make_unique<FileSys::XCI>(file_, program_id, program_index)), |
| 28 | nca_loader(std::make_unique<AppLoader_NCA>(xci->GetProgramNCAFile())) { | 28 | nca_loader(std::make_unique<AppLoader_NCA>(xci->GetProgramNCAFile())) { |
| 29 | if (xci->GetStatus() != ResultStatus::Success) { | 29 | if (xci->GetStatus() != ResultStatus::Success) { |
| 30 | return; | 30 | return; |
| @@ -121,6 +121,11 @@ ResultStatus AppLoader_XCI::ReadProgramId(u64& out_program_id) { | |||
| 121 | return nca_loader->ReadProgramId(out_program_id); | 121 | return nca_loader->ReadProgramId(out_program_id); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | ResultStatus AppLoader_XCI::ReadProgramIds(std::vector<u64>& out_program_ids) { | ||
| 125 | out_program_ids = xci->GetProgramTitleIDs(); | ||
| 126 | return ResultStatus::Success; | ||
| 127 | } | ||
| 128 | |||
| 124 | ResultStatus AppLoader_XCI::ReadIcon(std::vector<u8>& buffer) { | 129 | ResultStatus AppLoader_XCI::ReadIcon(std::vector<u8>& buffer) { |
| 125 | if (icon_file == nullptr) { | 130 | if (icon_file == nullptr) { |
| 126 | return ResultStatus::ErrorNoControl; | 131 | return ResultStatus::ErrorNoControl; |
| @@ -149,8 +154,9 @@ ResultStatus AppLoader_XCI::ReadControlData(FileSys::NACP& control) { | |||
| 149 | } | 154 | } |
| 150 | 155 | ||
| 151 | ResultStatus AppLoader_XCI::ReadManualRomFS(FileSys::VirtualFile& out_file) { | 156 | ResultStatus AppLoader_XCI::ReadManualRomFS(FileSys::VirtualFile& out_file) { |
| 152 | const auto nca = xci->GetSecurePartitionNSP()->GetNCA(xci->GetProgramTitleID(), | 157 | const auto nca = |
| 153 | FileSys::ContentRecordType::HtmlDocument); | 158 | xci->GetSecurePartitionNSP()->GetNCA(xci->GetSecurePartitionNSP()->GetProgramTitleID(), |
| 159 | FileSys::ContentRecordType::HtmlDocument); | ||
| 154 | if (xci->GetStatus() != ResultStatus::Success || nca == nullptr) { | 160 | if (xci->GetStatus() != ResultStatus::Success || nca == nullptr) { |
| 155 | return ResultStatus::ErrorXCIMissingPartition; | 161 | return ResultStatus::ErrorXCIMissingPartition; |
| 156 | } | 162 | } |