mirror of
https://github.com/yuzu-mirror/yuzu
synced 2024-12-21 15:53:06 +00:00
5b0a9f8ba8
Applies the override specifier where applicable. In the case of destructors that are defaulted in their definition, they can simply be removed. This also removes the unnecessary inclusions being done in audin_u and audrec_u, given their close proximity.
60 lines
1.7 KiB
C++
60 lines
1.7 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() override;
|
|
|
|
/**
|
|
* 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() const override {
|
|
return IdentifyType(file);
|
|
}
|
|
|
|
ResultStatus Load(Kernel::Process& process) override;
|
|
|
|
ResultStatus ReadRomFS(FileSys::VirtualFile& file) override;
|
|
u64 ReadRomFSIVFCOffset() const override;
|
|
ResultStatus ReadUpdateRaw(FileSys::VirtualFile& file) override;
|
|
ResultStatus ReadProgramId(u64& out_program_id) override;
|
|
ResultStatus ReadIcon(std::vector<u8>& buffer) override;
|
|
ResultStatus ReadTitle(std::string& title) override;
|
|
ResultStatus ReadControlData(FileSys::NACP& control) override;
|
|
ResultStatus ReadManualRomFS(FileSys::VirtualFile& file) override;
|
|
|
|
ResultStatus ReadBanner(std::vector<u8>& buffer) override;
|
|
ResultStatus ReadLogo(std::vector<u8>& buffer) override;
|
|
|
|
private:
|
|
std::unique_ptr<FileSys::XCI> xci;
|
|
std::unique_ptr<AppLoader_NCA> nca_loader;
|
|
|
|
FileSys::VirtualFile icon_file;
|
|
std::unique_ptr<FileSys::NACP> nacp_file;
|
|
};
|
|
|
|
} // namespace Loader
|