Ryujinx/src/Ryujinx.Horizon/Ptm/Ipc/MeasurementServer.cs
Ac_K 6d28b64312
ts: Migrate service to Horizon project (#6514)
* ts: Migrate service to Horizon project

This PR migrate the `ts` service (stored in `ptm`) to the Horizon project:
- It stubs all known IPCs.
- IpcServer consts are checked by RE.

Closes #6480

* Fix args
2024-04-05 15:45:43 -03:00

64 lines
1.9 KiB
C#

using Ryujinx.Common.Logging;
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Sf;
using Ryujinx.Horizon.Sdk.Ts;
using Ryujinx.Horizon.Ts.Ipc;
namespace Ryujinx.Horizon.Ptm.Ipc
{
partial class MeasurementServer : IMeasurementServer
{
// NOTE: Values are randomly choosen.
public const int DefaultTemperature = 42;
public const int MinimumTemperature = 0;
public const int MaximumTemperature = 100;
[CmifCommand(0)] // 1.0.0-16.1.0
public Result GetTemperatureRange(out int minimumTemperature, out int maximumTemperature, Location location)
{
Logger.Stub?.PrintStub(LogClass.ServicePtm, new { location });
minimumTemperature = MinimumTemperature;
maximumTemperature = MaximumTemperature;
return Result.Success;
}
[CmifCommand(1)] // 1.0.0-16.1.0
public Result GetTemperature(out int temperature, Location location)
{
Logger.Stub?.PrintStub(LogClass.ServicePtm, new { location });
temperature = DefaultTemperature;
return Result.Success;
}
[CmifCommand(2)] // 1.0.0-13.2.1
public Result SetMeasurementMode(Location location, byte measurementMode)
{
Logger.Stub?.PrintStub(LogClass.ServicePtm, new { location, measurementMode });
return Result.Success;
}
[CmifCommand(3)] // 1.0.0-13.2.1
public Result GetTemperatureMilliC(out int temperatureMilliC, Location location)
{
Logger.Stub?.PrintStub(LogClass.ServicePtm, new { location });
temperatureMilliC = DefaultTemperature * 1000;
return Result.Success;
}
[CmifCommand(4)] // 8.0.0+
public Result OpenSession(out ISession session, DeviceCode deviceCode)
{
session = new Session(deviceCode);
return Result.Success;
}
}
}