3
0
Fork 0
forked from suyu/suyu

psm: Stub GetChargerType

Used by LovePotion Lua Homebrew. Stubbed as connected to official Nintendo Switch dock.
This commit is contained in:
Zach Hilman 2018-10-21 22:03:17 -04:00
parent 10a2d20e26
commit 314a948373
2 changed files with 27 additions and 24 deletions

View file

@ -12,13 +12,16 @@
namespace Service::PSM { namespace Service::PSM {
constexpr u32 BATTERY_FULLY_CHARGED = 100; // 100% Full constexpr u32 BATTERY_FULLY_CHARGED = 100; // 100% Full
constexpr u32 BATTERY_CURRENTLY_CHARGING = 1; // Plugged into an official dock
PSM::PSM() : ServiceFramework{"psm"} { class PSM final : public ServiceFramework<PSM> {
// clang-format off public:
explicit PSM() : ServiceFramework{"psm"} {
// clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &PSM::GetBatteryChargePercentage, "GetBatteryChargePercentage"}, {0, &PSM::GetBatteryChargePercentage, "GetBatteryChargePercentage"},
{1, nullptr, "GetChargerType"}, {1, &PSM::GetChargerType, "GetChargerType"},
{2, nullptr, "EnableBatteryCharging"}, {2, nullptr, "EnableBatteryCharging"},
{3, nullptr, "DisableBatteryCharging"}, {3, nullptr, "DisableBatteryCharging"},
{4, nullptr, "IsBatteryChargingEnabled"}, {4, nullptr, "IsBatteryChargingEnabled"},
@ -36,20 +39,30 @@ PSM::PSM() : ServiceFramework{"psm"} {
{16, nullptr, "GetBatteryChargeInfoEvent"}, {16, nullptr, "GetBatteryChargeInfoEvent"},
{17, nullptr, "GetBatteryChargeInfoFields"}, {17, nullptr, "GetBatteryChargeInfoFields"},
}; };
// clang-format on // clang-format on
RegisterHandlers(functions); RegisterHandlers(functions);
} }
PSM::~PSM() = default; ~PSM() override = default;
void PSM::GetBatteryChargePercentage(Kernel::HLERequestContext& ctx) { private:
LOG_WARNING(Service_PSM, "(STUBBED) called"); void GetBatteryChargePercentage(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_PSM, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 3}; IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS); rb.Push(RESULT_SUCCESS);
rb.Push<u32>(BATTERY_FULLY_CHARGED); rb.Push<u32>(BATTERY_FULLY_CHARGED);
} }
void GetChargerType(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_PSM, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
rb.Push<u32>(BATTERY_CURRENTLY_CHARGING);
}
};
void InstallInterfaces(SM::ServiceManager& sm) { void InstallInterfaces(SM::ServiceManager& sm) {
std::make_shared<PSM>()->InstallAsService(sm); std::make_shared<PSM>()->InstallAsService(sm);

View file

@ -3,7 +3,6 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#pragma once #pragma once
#include "core/hle/service/service.h"
namespace Service::SM { namespace Service::SM {
class ServiceManager; class ServiceManager;
@ -11,15 +10,6 @@ class ServiceManager;
namespace Service::PSM { namespace Service::PSM {
class PSM final : public ServiceFramework<PSM> {
public:
explicit PSM();
~PSM() override;
private:
void GetBatteryChargePercentage(Kernel::HLERequestContext& ctx);
};
void InstallInterfaces(SM::ServiceManager& sm); void InstallInterfaces(SM::ServiceManager& sm);
} // namespace Service::PSM } // namespace Service::PSM