Implemented GetIUserInterface properly, Playreport and SSL::SetInterfaceVersion. Fixed ipc issues with IAudioDevice(wrong ids)

This commit is contained in:
David Marcec
2018-04-21 22:04:24 -07:00
parent ebb8e06df0
commit f3137d3bc1
11 changed files with 109 additions and 11 deletions

View File

@ -0,0 +1,40 @@
#include <cinttypes>
#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<std::array<u64, 2>>();
u64 unk = rp.Pop<u64>();
std::vector<u8> buffer;
buffer.reserve(ctx.BufferDescriptorX()[0].Size());
Memory::ReadBlock(ctx.BufferDescriptorX()[0].Address(), buffer.data(), buffer.size());
std::vector<u8> 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<Playreport>("prepo:a")->InstallAsService(service_manager);
std::make_shared<Playreport>("prepo:m")->InstallAsService(service_manager);
std::make_shared<Playreport>("prepo:s")->InstallAsService(service_manager);
std::make_shared<Playreport>("prepo:u")->InstallAsService(service_manager);
}
} // namespace Service::Playreport

View File

@ -0,0 +1,23 @@
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include <memory>
#include <string>
#include "core/hle/kernel/event.h"
#include "core/hle/service/service.h"
namespace Service::Playreport {
class Playreport final : public ServiceFramework<Playreport> {
public:
Playreport(const char* name);
~Playreport() = default;
private:
void SaveReportWithUser(Kernel::HLERequestContext& ctx);
};
void InstallInterfaces(SM::ServiceManager& service_manager);
}; // namespace Service::Playreport