mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2025-09-16 08:57:54 -05:00
lbl: Migrate service to Horizon (#5628)
* lbl: Migrate service to Horizon * Fix formatting * Addresses gdkchan's feedback * Fix comments
This commit is contained in:
20
src/Ryujinx.Horizon/Sdk/Lbl/ILblController.cs
Normal file
20
src/Ryujinx.Horizon/Sdk/Lbl/ILblController.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Lbl
|
||||
{
|
||||
interface ILblController : IServiceObject
|
||||
{
|
||||
Result SetBrightnessReflectionDelayLevel(float unknown0, float unknown1);
|
||||
Result GetBrightnessReflectionDelayLevel(out float unknown1, float unknown0);
|
||||
Result SetCurrentBrightnessMapping(float unknown0, float unknown1, float unknown2);
|
||||
Result GetCurrentBrightnessMapping(out float unknown0, out float unknown1, out float unknown2);
|
||||
Result SetCurrentAmbientLightSensorMapping(float unknown0, float unknown1, float unknown2);
|
||||
Result GetCurrentAmbientLightSensorMapping(out float unknown0, out float unknown1, out float unknown2);
|
||||
Result SetCurrentBrightnessSettingForVrMode(float currentBrightnessSettingForVrMode);
|
||||
Result GetCurrentBrightnessSettingForVrMode(out float currentBrightnessSettingForVrMode);
|
||||
Result EnableVrMode();
|
||||
Result DisableVrMode();
|
||||
Result IsVrModeEnabled(out bool vrModeEnabled);
|
||||
}
|
||||
}
|
43
src/Ryujinx.Horizon/Sdk/Lbl/LblApi.cs
Normal file
43
src/Ryujinx.Horizon/Sdk/Lbl/LblApi.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sm;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Lbl
|
||||
{
|
||||
public class LblApi : IDisposable
|
||||
{
|
||||
private const string LblName = "lbl";
|
||||
|
||||
private int _sessionHandle;
|
||||
|
||||
public LblApi()
|
||||
{
|
||||
using var smApi = new SmApi();
|
||||
|
||||
smApi.Initialize();
|
||||
smApi.GetServiceHandle(out _sessionHandle, ServiceName.Encode(LblName)).AbortOnFailure();
|
||||
}
|
||||
|
||||
public Result EnableVrMode()
|
||||
{
|
||||
return ServiceUtil.SendRequest(out _, _sessionHandle, 26, sendPid: false, ReadOnlySpan<byte>.Empty);
|
||||
}
|
||||
|
||||
public Result DisableVrMode()
|
||||
{
|
||||
return ServiceUtil.SendRequest(out _, _sessionHandle, 27, sendPid: false, ReadOnlySpan<byte>.Empty);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_sessionHandle != 0)
|
||||
{
|
||||
HorizonStatic.Syscall.CloseHandle(_sessionHandle);
|
||||
|
||||
_sessionHandle = 0;
|
||||
}
|
||||
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
}
|
||||
}
|
@@ -4,7 +4,7 @@ using System.Runtime.InteropServices;
|
||||
namespace Ryujinx.Horizon.Sdk.Sm
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
readonly struct ServiceName
|
||||
public readonly struct ServiceName
|
||||
{
|
||||
public static ServiceName Invalid { get; } = new(0);
|
||||
|
||||
|
@@ -5,7 +5,7 @@ using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Sm
|
||||
{
|
||||
class SmApi
|
||||
public class SmApi : IDisposable
|
||||
{
|
||||
private const string SmName = "sm:";
|
||||
|
||||
@@ -109,5 +109,17 @@ namespace Ryujinx.Horizon.Sdk.Sm
|
||||
|
||||
return ServiceUtil.SendRequest(out _, _portHandle, 4, sendPid: true, data);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_portHandle != 0)
|
||||
{
|
||||
HorizonStatic.Syscall.CloseHandle(_portHandle);
|
||||
|
||||
_portHandle = 0;
|
||||
}
|
||||
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user