From f3137d3bc12253ed0406ef01406b3b62c563bbd7 Mon Sep 17 00:00:00 2001 From: David Marcec Date: Sat, 21 Apr 2018 22:04:24 -0700 Subject: Implemented GetIUserInterface properly, Playreport and SSL::SetInterfaceVersion. Fixed ipc issues with IAudioDevice(wrong ids) --- src/core/hle/service/prepo/prepo.cpp | 40 ++++++++++++++++++++++++++++++++++++ src/core/hle/service/prepo/prepo.h | 23 +++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/core/hle/service/prepo/prepo.cpp create mode 100644 src/core/hle/service/prepo/prepo.h (limited to 'src/core/hle/service/prepo') diff --git a/src/core/hle/service/prepo/prepo.cpp b/src/core/hle/service/prepo/prepo.cpp new file mode 100644 index 000000000..b9a7e1ff0 --- /dev/null +++ b/src/core/hle/service/prepo/prepo.cpp @@ -0,0 +1,40 @@ +#include +#include "common/logging/log.h" +#include "core/hle/ipc_helpers.h" +#include "core/hle/kernel/event.h" +#include "core/hle/service/prepo/prepo.h" + +namespace Service::Playreport { +Playreport::Playreport(const char* name) : ServiceFramework(name) { + static const FunctionInfo functions[] = { + {10101, &Playreport::SaveReportWithUser, "SaveReportWithUser"}, + }; + RegisterHandlers(functions); +}; + +void Playreport::SaveReportWithUser(Kernel::HLERequestContext& ctx) { + /*IPC::RequestParser rp{ctx}; + auto Uid = rp.PopRaw>(); + u64 unk = rp.Pop(); + std::vector buffer; + buffer.reserve(ctx.BufferDescriptorX()[0].Size()); + Memory::ReadBlock(ctx.BufferDescriptorX()[0].Address(), buffer.data(), buffer.size()); + + std::vector buffer2; + buffer.reserve(ctx.BufferDescriptorA()[0].Size()); + Memory::ReadBlock(ctx.BufferDescriptorA()[0].Address(), buffer.data(), buffer.size());*/ + + // If we ever want to add play reports + + IPC::ResponseBuilder rb{ctx, 2}; + rb.Push(RESULT_SUCCESS); +}; + +void InstallInterfaces(SM::ServiceManager& service_manager) { + std::make_shared("prepo:a")->InstallAsService(service_manager); + std::make_shared("prepo:m")->InstallAsService(service_manager); + std::make_shared("prepo:s")->InstallAsService(service_manager); + std::make_shared("prepo:u")->InstallAsService(service_manager); +} + +} // namespace Service::Playreport diff --git a/src/core/hle/service/prepo/prepo.h b/src/core/hle/service/prepo/prepo.h new file mode 100644 index 000000000..77457b7bd --- /dev/null +++ b/src/core/hle/service/prepo/prepo.h @@ -0,0 +1,23 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include +#include +#include "core/hle/kernel/event.h" +#include "core/hle/service/service.h" + +namespace Service::Playreport { + +class Playreport final : public ServiceFramework { +public: + Playreport(const char* name); + ~Playreport() = default; + +private: + void SaveReportWithUser(Kernel::HLERequestContext& ctx); +}; + +void InstallInterfaces(SM::ServiceManager& service_manager); + +}; // namespace Service::Playreport -- cgit v1.2.3