Various command improvements

This commit is contained in:
Adubbz
2019-07-27 21:56:10 +10:00
parent 0169e3e3d6
commit e1023a59ba
15 changed files with 610 additions and 185 deletions

View File

@@ -26,6 +26,29 @@
namespace sts::lr {
class ContentLocationResolverInterface : public ILocationResolver {
private:
enum class CommandId {
ResolveProgramPath = 0,
RedirectProgramPath = 1,
ResolveApplicationControlPath = 2,
ResolveApplicationHtmlDocumentPath = 3,
ResolveDataPath = 4,
RedirectApplicationControlPath = 5,
RedirectApplicationHtmlDocumentPath = 6,
ResolveApplicationLegalInformationPath = 7,
RedirectApplicationLegalInformationPath = 8,
Refresh = 9,
RedirectApplicationProgramPath = 10,
ClearApplicationRedirection = 11,
EraseProgramRedirection = 12,
EraseApplicationControlRedirection = 13,
EraseApplicationHtmlDocumentRedirection = 14,
EraseApplicationLegalInformationRedirection = 15,
ResolveProgramPathForDebug = 16,
RedirectProgramPathForDebug = 17,
RedirectApplicationProgramPathForDebug = 18,
EraseProgramRedirectionForDebug = 19,
};
private:
ncm::StorageId storage_id;
std::shared_ptr<ncm::IContentMetaDatabase> content_meta_database;
@@ -37,24 +60,24 @@ namespace sts::lr {
~ContentLocationResolverInterface();
public:
virtual Result ResolveProgramPath(OutPointerWithServerSize<Path, 0x1> out, ncm::TitleId tid) override;
virtual Result RedirectProgramPath(ncm::TitleId tid, InPointer<const Path> path) override;
virtual Result RedirectProgramPath(InPointer<const Path> path, ncm::TitleId tid) override;
virtual Result ResolveApplicationControlPath(OutPointerWithServerSize<Path, 0x1> out, ncm::TitleId tid) override;
virtual Result ResolveApplicationHtmlDocumentPath(OutPointerWithServerSize<Path, 0x1> out, ncm::TitleId tid) override;
virtual Result ResolveDataPath(OutPointerWithServerSize<Path, 0x1> out, ncm::TitleId tid) override;
virtual Result RedirectApplicationControlPath(ncm::TitleId tid, InPointer<const Path> path) override;
virtual Result RedirectApplicationHtmlDocumentPath(ncm::TitleId tid, InPointer<const Path> path) override;
virtual Result RedirectApplicationControlPath(InPointer<const Path> path, ncm::TitleId tid) override;
virtual Result RedirectApplicationHtmlDocumentPath(InPointer<const Path> path, ncm::TitleId tid) override;
virtual Result ResolveApplicationLegalInformationPath(OutPointerWithServerSize<Path, 0x1> out, ncm::TitleId tid) override;
virtual Result RedirectApplicationLegalInformationPath(ncm::TitleId tid, InPointer<const Path> path) override;
virtual Result RedirectApplicationLegalInformationPath(InPointer<const Path> path, ncm::TitleId tid) override;
virtual Result Refresh() override;
virtual Result RedirectApplicationProgramPath(ncm::TitleId tid, InPointer<const Path> path) override;
virtual Result RedirectApplicationProgramPath(InPointer<const Path> path, ncm::TitleId tid) override;
virtual Result ClearApplicationRedirection() override;
virtual Result EraseProgramRedirection(ncm::TitleId tid) override;
virtual Result EraseApplicationControlRedirection(ncm::TitleId tid) override;
virtual Result EraseApplicationHtmlDocumentRedirection(ncm::TitleId tid) override;
virtual Result EraseApplicationLegalInformationRedirection(ncm::TitleId tid) override;
virtual Result ResolveProgramPathForDebug(OutPointerWithServerSize<Path, 0x1> out, ncm::TitleId tid) override;
virtual Result RedirectProgramPathForDebug(ncm::TitleId tid, InPointer<const Path> path) override;
virtual Result RedirectApplicationProgramPathForDebug(ncm::TitleId tid, InPointer<const Path> path) override;
virtual Result RedirectProgramPathForDebug(InPointer<const Path> path, ncm::TitleId tid) override;
virtual Result RedirectApplicationProgramPathForDebug(InPointer<const Path> path, ncm::TitleId tid) override;
virtual Result EraseProgramRedirectionForDebug(ncm::TitleId tid) override;
public:
DEFINE_SERVICE_DISPATCH_TABLE {