aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs')
-rw-r--r--src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs b/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs
new file mode 100644
index 00000000..4e3d3e8e
--- /dev/null
+++ b/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs
@@ -0,0 +1,45 @@
+using Ryujinx.Common.Logging;
+
+namespace Ryujinx.HLE.HOS.Services.Ptm.Psm
+{
+ [Service("psm")]
+ class IPsmServer : IpcService
+ {
+ public IPsmServer(ServiceCtx context) { }
+
+ [CommandCmif(0)]
+ // GetBatteryChargePercentage() -> u32
+ public static ResultCode GetBatteryChargePercentage(ServiceCtx context)
+ {
+ int chargePercentage = 100;
+
+ context.ResponseData.Write(chargePercentage);
+
+ Logger.Stub?.PrintStub(LogClass.ServicePsm, new { chargePercentage });
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(1)]
+ // GetChargerType() -> u32
+ public static ResultCode GetChargerType(ServiceCtx context)
+ {
+ ChargerType chargerType = ChargerType.ChargerOrDock;
+
+ context.ResponseData.Write((int)chargerType);
+
+ Logger.Stub?.PrintStub(LogClass.ServicePsm, new { chargerType });
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(7)]
+ // OpenSession() -> IPsmSession
+ public ResultCode OpenSession(ServiceCtx context)
+ {
+ MakeObject(context, new IPsmSession(context.Device.System));
+
+ return ResultCode.Success;
+ }
+ }
+} \ No newline at end of file