Browse Source

olsc: rewrite IOlscServiceForApplication

pull/15/merge
Liam 2 years ago
parent
commit
8ffa27b311
  1. 14
      src/core/hle/service/olsc/olsc.cpp
  2. 35
      src/core/hle/service/olsc/olsc_service_for_application.cpp
  3. 8
      src/core/hle/service/olsc/olsc_service_for_application.h

14
src/core/hle/service/olsc/olsc.cpp

@ -12,10 +12,16 @@ namespace Service::OLSC {
void LoopProcess(Core::System& system) { void LoopProcess(Core::System& system) {
auto server_manager = std::make_unique<ServerManager>(system); auto server_manager = std::make_unique<ServerManager>(system);
server_manager->RegisterNamedService("olsc:u",
std::make_shared<IOlscServiceForApplication>(system));
server_manager->RegisterNamedService("olsc:s",
std::make_shared<IOlscServiceForSystemService>(system));
const auto OlscFactoryForApplication = [&] {
return std::make_shared<IOlscServiceForApplication>(system);
};
const auto OlscFactoryForSystemService = [&] {
return std::make_shared<IOlscServiceForSystemService>(system);
};
server_manager->RegisterNamedService("olsc:u", OlscFactoryForApplication);
server_manager->RegisterNamedService("olsc:s", OlscFactoryForSystemService);
ServerManager::RunServer(std::move(server_manager)); ServerManager::RunServer(std::move(server_manager));
} }

35
src/core/hle/service/olsc/olsc_service_for_application.cpp

@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include "core/hle/service/ipc_helpers.h"
#include "core/hle/service/cmif_serialization.h"
#include "core/hle/service/olsc/olsc_service_for_application.h" #include "core/hle/service/olsc/olsc_service_for_application.h"
namespace Service::OLSC { namespace Service::OLSC {
@ -10,10 +10,10 @@ IOlscServiceForApplication::IOlscServiceForApplication(Core::System& system_)
: ServiceFramework{system_, "olsc:u"} { : ServiceFramework{system_, "olsc:u"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &IOlscServiceForApplication::Initialize, "Initialize"},
{0, D<&IOlscServiceForApplication::Initialize>, "Initialize"},
{10, nullptr, "VerifySaveDataBackupLicenseAsync"}, {10, nullptr, "VerifySaveDataBackupLicenseAsync"},
{13, &IOlscServiceForApplication::GetSaveDataBackupSetting, "GetSaveDataBackupSetting"},
{14, &IOlscServiceForApplication::SetSaveDataBackupSettingEnabled, "SetSaveDataBackupSettingEnabled"},
{13, D<&IOlscServiceForApplication::GetSaveDataBackupSetting>, "GetSaveDataBackupSetting"},
{14, D<&IOlscServiceForApplication::SetSaveDataBackupSettingEnabled>, "SetSaveDataBackupSettingEnabled"},
{15, nullptr, "SetCustomData"}, {15, nullptr, "SetCustomData"},
{16, nullptr, "DeleteSaveDataBackupSetting"}, {16, nullptr, "DeleteSaveDataBackupSetting"},
{18, nullptr, "GetSaveDataBackupInfoCache"}, {18, nullptr, "GetSaveDataBackupInfoCache"},
@ -40,31 +40,24 @@ IOlscServiceForApplication::IOlscServiceForApplication(Core::System& system_)
IOlscServiceForApplication::~IOlscServiceForApplication() = default; IOlscServiceForApplication::~IOlscServiceForApplication() = default;
void IOlscServiceForApplication::Initialize(HLERequestContext& ctx) {
Result IOlscServiceForApplication::Initialize(ClientProcessId process_id) {
LOG_WARNING(Service_OLSC, "(STUBBED) called"); LOG_WARNING(Service_OLSC, "(STUBBED) called");
initialized = true; initialized = true;
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
R_SUCCEED();
} }
void IOlscServiceForApplication::GetSaveDataBackupSetting(HLERequestContext& ctx) {
Result IOlscServiceForApplication::GetSaveDataBackupSetting(Out<u8> out_save_data_backup_setting) {
LOG_WARNING(Service_OLSC, "(STUBBED) called"); LOG_WARNING(Service_OLSC, "(STUBBED) called");
// backup_setting is set to 0 since real value is unknown // backup_setting is set to 0 since real value is unknown
constexpr u64 backup_setting = 0;
IPC::ResponseBuilder rb{ctx, 4};
rb.Push(ResultSuccess);
rb.Push(backup_setting);
*out_save_data_backup_setting = 0;
R_SUCCEED();
} }
void IOlscServiceForApplication::SetSaveDataBackupSettingEnabled(HLERequestContext& ctx) {
LOG_WARNING(Service_OLSC, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
Result IOlscServiceForApplication::SetSaveDataBackupSettingEnabled(bool enabled,
NS::Uid account_id) {
LOG_WARNING(Service_OLSC, "(STUBBED) called, enabled={}, account_id={}", enabled,
account_id.uuid.FormattedString());
R_SUCCEED();
} }
} // namespace Service::OLSC } // namespace Service::OLSC

8
src/core/hle/service/olsc/olsc_service_for_application.h

@ -1,6 +1,8 @@
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include "core/hle/service/cmif_types.h"
#include "core/hle/service/ns/ns_types.h"
#include "core/hle/service/service.h" #include "core/hle/service/service.h"
namespace Service::OLSC { namespace Service::OLSC {
@ -11,9 +13,9 @@ public:
~IOlscServiceForApplication() override; ~IOlscServiceForApplication() override;
private: private:
void Initialize(HLERequestContext& ctx);
void GetSaveDataBackupSetting(HLERequestContext& ctx);
void SetSaveDataBackupSettingEnabled(HLERequestContext& ctx);
Result Initialize(ClientProcessId process_id);
Result GetSaveDataBackupSetting(Out<u8> out_save_data_backup_setting);
Result SetSaveDataBackupSettingEnabled(bool enabled, NS::Uid account_id);
bool initialized{}; bool initialized{};
}; };

Loading…
Cancel
Save