Stub some IPurchaseEventManager functions

This commit is contained in:
Pablo 2022-12-30 18:00:03 +01:00 committed by Billy Laws
parent 80c0f8f04d
commit 8846a85d3a
5 changed files with 64 additions and 2 deletions

View File

@ -356,6 +356,7 @@ add_library(skyline SHARED
${source_DIR}/skyline/services/visrv/ISystemDisplayService.cpp ${source_DIR}/skyline/services/visrv/ISystemDisplayService.cpp
${source_DIR}/skyline/services/pl/IPlatformServiceManager.cpp ${source_DIR}/skyline/services/pl/IPlatformServiceManager.cpp
${source_DIR}/skyline/services/aocsrv/IAddOnContentManager.cpp ${source_DIR}/skyline/services/aocsrv/IAddOnContentManager.cpp
${source_DIR}/skyline/services/aocsrv/IPurchaseEventManager.cpp
${source_DIR}/skyline/services/pctl/IParentalControlServiceFactory.cpp ${source_DIR}/skyline/services/pctl/IParentalControlServiceFactory.cpp
${source_DIR}/skyline/services/pctl/IParentalControlService.cpp ${source_DIR}/skyline/services/pctl/IParentalControlService.cpp
${source_DIR}/skyline/services/lm/ILogService.cpp ${source_DIR}/skyline/services/lm/ILogService.cpp

View File

@ -3,6 +3,7 @@
#include <kernel/types/KProcess.h> #include <kernel/types/KProcess.h>
#include "IAddOnContentManager.h" #include "IAddOnContentManager.h"
#include "IPurchaseEventManager.h"
namespace skyline::service::aocsrv { namespace skyline::service::aocsrv {
IAddOnContentManager::IAddOnContentManager(const DeviceState &state, ServiceManager &manager) IAddOnContentManager::IAddOnContentManager(const DeviceState &state, ServiceManager &manager)
@ -38,4 +39,9 @@ namespace skyline::service::aocsrv {
Result IAddOnContentManager::CheckAddOnContentMountStatus(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) { Result IAddOnContentManager::CheckAddOnContentMountStatus(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
return {}; return {};
} }
Result IAddOnContentManager::CreateEcPurchasedEventManager(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
manager.RegisterService(SRVREG(IPurchaseEventManager), session, response);
return {};
}
} }

View File

@ -4,7 +4,7 @@
#pragma once #pragma once
#include <kernel/types/KEvent.h> #include <kernel/types/KEvent.h>
#include <services/base_service.h> #include <services/serviceman.h>
namespace skyline::service::aocsrv { namespace skyline::service::aocsrv {
/** /**
@ -28,12 +28,15 @@ namespace skyline::service::aocsrv {
Result CheckAddOnContentMountStatus(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response); Result CheckAddOnContentMountStatus(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
Result CreateEcPurchasedEventManager(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
SERVICE_DECL( SERVICE_DECL(
SFUNC(0x2, IAddOnContentManager, CountAddOnContent), SFUNC(0x2, IAddOnContentManager, CountAddOnContent),
SFUNC(0x3, IAddOnContentManager, ListAddOnContent), SFUNC(0x3, IAddOnContentManager, ListAddOnContent),
SFUNC(0x8, IAddOnContentManager, GetAddOnContentListChangedEvent), SFUNC(0x8, IAddOnContentManager, GetAddOnContentListChangedEvent),
SFUNC(0xA, IAddOnContentManager, GetAddOnContentListChangedEventWithProcessId), SFUNC(0xA, IAddOnContentManager, GetAddOnContentListChangedEventWithProcessId),
SFUNC(0x32, IAddOnContentManager, CheckAddOnContentMountStatus) SFUNC(0x32, IAddOnContentManager, CheckAddOnContentMountStatus),
SFUNC(0x64, IAddOnContentManager, CreateEcPurchasedEventManager)
) )
}; };
} }

View File

@ -0,0 +1,23 @@
// SPDX-License-Identifier: MPL-2.0
// Copyright © 2020 Skyline Team and Contributors (https://github.com/skyline-emu/)
#include <kernel/types/KProcess.h>
#include "IPurchaseEventManager.h"
namespace skyline::service::aocsrv {
IPurchaseEventManager::IPurchaseEventManager(const DeviceState &state, ServiceManager &manager)
: BaseService(state, manager),
purchasedEvent(std::make_shared<type::KEvent>(state, false)) {}
Result IPurchaseEventManager::SetDefaultDeliveryTarget(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
return {};
}
Result IPurchaseEventManager::GetPurchasedEventReadableHandle(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
auto handle{state.process->InsertItem(purchasedEvent)};
Logger::Debug("Purchased Event Readable Handle: 0x{:X}", handle);
response.copyHandles.push_back(handle);
return {};
}
}

View File

@ -0,0 +1,29 @@
// SPDX-License-Identifier: MPL-2.0
// Copyright © 2020 Skyline Team and Contributors (https://github.com/skyline-emu/)
#pragma once
#include <kernel/types/KEvent.h>
#include <services/base_service.h>
namespace skyline::service::aocsrv {
/**
* @url https://switchbrew.org/wiki/NS_Services#IPurchaseEventManager
*/
class IPurchaseEventManager : public BaseService {
private:
std::shared_ptr<kernel::type::KEvent> purchasedEvent;
public:
IPurchaseEventManager(const DeviceState &state, ServiceManager &manager);
Result SetDefaultDeliveryTarget(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
Result GetPurchasedEventReadableHandle(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
SERVICE_DECL(
SFUNC(0x0, IPurchaseEventManager, SetDefaultDeliveryTarget),
SFUNC(0x2, IPurchaseEventManager, GetPurchasedEventReadableHandle)
)
};
}