mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-18 04:42:45 +01:00
c8e3f98c27
Many of these aren't necessary and will cause this file to be required to be recompiled whenever any changes to those files are made, which lengthens compile times for no reason. This also removes an unused metadata variable from AppLoader_XCI
53 lines
1.3 KiB
C++
53 lines
1.3 KiB
C++
// Copyright 2018 yuzu emulator team
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include "common/common_types.h"
|
|
#include "core/file_sys/vfs.h"
|
|
#include "core/loader/loader.h"
|
|
|
|
namespace FileSys {
|
|
class NACP;
|
|
class XCI;
|
|
} // namespace FileSys
|
|
|
|
namespace Loader {
|
|
|
|
class AppLoader_NCA;
|
|
|
|
/// Loads an XCI file
|
|
class AppLoader_XCI final : public AppLoader {
|
|
public:
|
|
explicit AppLoader_XCI(FileSys::VirtualFile file);
|
|
~AppLoader_XCI();
|
|
|
|
/**
|
|
* Returns the type of the file
|
|
* @param file std::shared_ptr<VfsFile> open file
|
|
* @return FileType found, or FileType::Error if this loader doesn't know it
|
|
*/
|
|
static FileType IdentifyType(const FileSys::VirtualFile& file);
|
|
|
|
FileType GetFileType() override {
|
|
return IdentifyType(file);
|
|
}
|
|
|
|
ResultStatus Load(Kernel::SharedPtr<Kernel::Process>& process) override;
|
|
|
|
ResultStatus ReadRomFS(FileSys::VirtualFile& dir) override;
|
|
ResultStatus ReadProgramId(u64& out_program_id) override;
|
|
ResultStatus ReadIcon(std::vector<u8>& buffer) override;
|
|
ResultStatus ReadTitle(std::string& title) override;
|
|
|
|
private:
|
|
std::unique_ptr<FileSys::XCI> xci;
|
|
std::unique_ptr<AppLoader_NCA> nca_loader;
|
|
|
|
FileSys::VirtualFile icon_file;
|
|
std::shared_ptr<FileSys::NACP> nacp_file;
|
|
};
|
|
|
|
} // namespace Loader
|