mirror of
https://github.com/yuzu-emu/yuzu-mainline
synced 2024-11-22 11:13:54 +00:00
ns: add IDynamicRightsInterface
This commit is contained in:
parent
db172ba249
commit
c31ac45332
4 changed files with 88 additions and 1 deletions
|
@ -749,6 +749,8 @@ add_library(core STATIC
|
||||||
hle/service/ns/document_interface.h
|
hle/service/ns/document_interface.h
|
||||||
hle/service/ns/download_task_interface.cpp
|
hle/service/ns/download_task_interface.cpp
|
||||||
hle/service/ns/download_task_interface.h
|
hle/service/ns/download_task_interface.h
|
||||||
|
hle/service/ns/dynamic_rights_interface.cpp
|
||||||
|
hle/service/ns/dynamic_rights_interface.h
|
||||||
hle/service/ns/ecommerce_interface.cpp
|
hle/service/ns/ecommerce_interface.cpp
|
||||||
hle/service/ns/ecommerce_interface.h
|
hle/service/ns/ecommerce_interface.h
|
||||||
hle/service/ns/factory_reset_interface.cpp
|
hle/service/ns/factory_reset_interface.cpp
|
||||||
|
|
62
src/core/hle/service/ns/dynamic_rights_interface.cpp
Normal file
62
src/core/hle/service/ns/dynamic_rights_interface.cpp
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "core/hle/service/cmif_serialization.h"
|
||||||
|
#include "core/hle/service/ns/dynamic_rights_interface.h"
|
||||||
|
|
||||||
|
namespace Service::NS {
|
||||||
|
|
||||||
|
IDynamicRightsInterface::IDynamicRightsInterface(Core::System& system_)
|
||||||
|
: ServiceFramework{system_, "DynamicRightsInterface"} {
|
||||||
|
// clang-format off
|
||||||
|
static const FunctionInfo functions[] = {
|
||||||
|
{0, nullptr, "RequestApplicationRightsOnServer"},
|
||||||
|
{1, nullptr, "RequestAssignRights"},
|
||||||
|
{4, nullptr, "DeprecatedRequestAssignRightsToResume"},
|
||||||
|
{5, D<&IDynamicRightsInterface::VerifyActivatedRightsOwners>, "VerifyActivatedRightsOwners"},
|
||||||
|
{6, nullptr, "DeprecatedGetApplicationRightsStatus"},
|
||||||
|
{7, nullptr, "RequestPrefetchForDynamicRights"},
|
||||||
|
{8, nullptr, "GetDynamicRightsState"},
|
||||||
|
{9, nullptr, "RequestApplicationRightsOnServerToResume"},
|
||||||
|
{10, nullptr, "RequestAssignRightsToResume"},
|
||||||
|
{11, nullptr, "GetActivatedRightsUsers"},
|
||||||
|
{12, nullptr, "GetApplicationRightsStatus"},
|
||||||
|
{13, D<&IDynamicRightsInterface::GetRunningApplicationStatus>, "GetRunningApplicationStatus"},
|
||||||
|
{14, nullptr, "SelectApplicationLicense"},
|
||||||
|
{15, nullptr, "RequestContentsAuthorizationToken"},
|
||||||
|
{16, nullptr, "QualifyUser"},
|
||||||
|
{17, nullptr, "QualifyUserWithProcessId"},
|
||||||
|
{18, D<&IDynamicRightsInterface::NotifyApplicationRightsCheckStart>, "NotifyApplicationRightsCheckStart"},
|
||||||
|
{19, nullptr, "UpdateUserList"},
|
||||||
|
{20, nullptr, "IsRightsLostUser"},
|
||||||
|
{21, nullptr, "SetRequiredAddOnContentsOnContentsAvailabilityTransition"},
|
||||||
|
{22, nullptr, "GetLimitedApplicationLicense"},
|
||||||
|
{23, nullptr, "GetLimitedApplicationLicenseUpgradableEvent"},
|
||||||
|
{24, nullptr, "NotifyLimitedApplicationLicenseUpgradableEventForDebug"},
|
||||||
|
{25, nullptr, "RequestProceedDynamicRightsState"},
|
||||||
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
RegisterHandlers(functions);
|
||||||
|
}
|
||||||
|
|
||||||
|
IDynamicRightsInterface::~IDynamicRightsInterface() = default;
|
||||||
|
|
||||||
|
Result IDynamicRightsInterface::NotifyApplicationRightsCheckStart() {
|
||||||
|
LOG_WARNING(Service_NS, "(STUBBED) called");
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
|
||||||
|
Result IDynamicRightsInterface::GetRunningApplicationStatus(Out<u32> out_status,
|
||||||
|
u64 rights_handle) {
|
||||||
|
LOG_WARNING(Service_NS, "(STUBBED) called, rights_handle={:#x}", rights_handle);
|
||||||
|
*out_status = 0;
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
|
||||||
|
Result IDynamicRightsInterface::VerifyActivatedRightsOwners(u64 rights_handle) {
|
||||||
|
LOG_WARNING(Service_NS, "(STUBBED) called, rights_handle={:#x}", rights_handle);
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Service::NS
|
22
src/core/hle/service/ns/dynamic_rights_interface.h
Normal file
22
src/core/hle/service/ns/dynamic_rights_interface.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/cmif_types.h"
|
||||||
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
|
namespace Service::NS {
|
||||||
|
|
||||||
|
class IDynamicRightsInterface final : public ServiceFramework<IDynamicRightsInterface> {
|
||||||
|
public:
|
||||||
|
explicit IDynamicRightsInterface(Core::System& system_);
|
||||||
|
~IDynamicRightsInterface() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
Result NotifyApplicationRightsCheckStart();
|
||||||
|
Result GetRunningApplicationStatus(Out<u32> out_status, u64 rights_handle);
|
||||||
|
Result VerifyActivatedRightsOwners(u64 rights_handle);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace Service::NS
|
|
@ -16,6 +16,7 @@
|
||||||
#include "core/hle/service/ns/content_management_interface.h"
|
#include "core/hle/service/ns/content_management_interface.h"
|
||||||
#include "core/hle/service/ns/document_interface.h"
|
#include "core/hle/service/ns/document_interface.h"
|
||||||
#include "core/hle/service/ns/download_task_interface.h"
|
#include "core/hle/service/ns/download_task_interface.h"
|
||||||
|
#include "core/hle/service/ns/dynamic_rights_interface.h"
|
||||||
#include "core/hle/service/ns/ecommerce_interface.h"
|
#include "core/hle/service/ns/ecommerce_interface.h"
|
||||||
#include "core/hle/service/ns/factory_reset_interface.h"
|
#include "core/hle/service/ns/factory_reset_interface.h"
|
||||||
#include "core/hle/service/ns/language.h"
|
#include "core/hle/service/ns/language.h"
|
||||||
|
@ -549,7 +550,7 @@ void IReadOnlyApplicationControlDataInterface::GetApplicationControlData(HLERequ
|
||||||
NS::NS(const char* name, Core::System& system_) : ServiceFramework{system_, name} {
|
NS::NS(const char* name, Core::System& system_) : ServiceFramework{system_, name} {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
static const FunctionInfo functions[] = {
|
static const FunctionInfo functions[] = {
|
||||||
{7988, nullptr, "GetDynamicRightsInterface"},
|
{7988, &NS::PushInterface<IDynamicRightsInterface>, "GetDynamicRightsInterface"},
|
||||||
{7989, &NS::PushInterface<IReadOnlyApplicationControlDataInterface>, "GetReadOnlyApplicationControlDataInterface"},
|
{7989, &NS::PushInterface<IReadOnlyApplicationControlDataInterface>, "GetReadOnlyApplicationControlDataInterface"},
|
||||||
{7991, &NS::PushInterface<IReadOnlyApplicationRecordInterface>, "GetReadOnlyApplicationRecordInterface"},
|
{7991, &NS::PushInterface<IReadOnlyApplicationRecordInterface>, "GetReadOnlyApplicationRecordInterface"},
|
||||||
{7992, &NS::PushInterface<IECommerceInterface>, "GetECommerceInterface"},
|
{7992, &NS::PushInterface<IECommerceInterface>, "GetECommerceInterface"},
|
||||||
|
|
Loading…
Reference in a new issue