aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Am/ISelfController.cs')
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/ISelfController.cs78
1 files changed, 27 insertions, 51 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs b/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs
index 47ae207b..6207cd12 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs
@@ -3,16 +3,11 @@ using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
using System;
-using System.Collections.Generic;
namespace Ryujinx.HLE.HOS.Services.Am
{
class ISelfController : IpcService
{
- private Dictionary<int, ServiceProcessRequest> _commands;
-
- public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands;
-
private KEvent _libraryAppletLaunchableEvent;
private KEvent _accumulatedSuspendedTickChangedEvent;
@@ -22,54 +17,11 @@ namespace Ryujinx.HLE.HOS.Services.Am
public ISelfController(Horizon system)
{
- _commands = new Dictionary<int, ServiceProcessRequest>
- {
- { 0, Exit },
- { 1, LockExit },
- { 2, UnlockExit },
- //{ 3, EnterFatalSection }, // 2.0.0+
- //{ 4, LeaveFatalSection }, // 2.0.0+
- { 9, GetLibraryAppletLaunchableEvent },
- { 10, SetScreenShotPermission },
- { 11, SetOperationModeChangedNotification },
- { 12, SetPerformanceModeChangedNotification },
- { 13, SetFocusHandlingMode },
- { 14, SetRestartMessageEnabled },
- //{ 15, SetScreenShotAppletIdentityInfo }, // 2.0.0+
- { 16, SetOutOfFocusSuspendingEnabled }, // 2.0.0+
- //{ 17, SetControllerFirmwareUpdateSection }, // 3.0.0+
- //{ 18, SetRequiresCaptureButtonShortPressedMessage }, // 3.0.0+
- { 19, SetScreenShotImageOrientation }, // 3.0.0+
- //{ 20, SetDesirableKeyboardLayout }, // 4.0.0+
- //{ 40, CreateManagedDisplayLayer },
- //{ 41, IsSystemBufferSharingEnabled }, // 4.0.0+
- //{ 42, GetSystemSharedLayerHandle }, // 4.0.0+
- //{ 43, GetSystemSharedBufferHandle }, // 5.0.0+
- { 50, SetHandlesRequestToDisplay },
- //{ 51, ApproveToDisplay },
- //{ 60, OverrideAutoSleepTimeAndDimmingTime },
- //{ 61, SetMediaPlaybackState },
- { 62, SetIdleTimeDetectionExtension },
- { 63, GetIdleTimeDetectionExtension },
- //{ 64, SetInputDetectionSourceSet },
- //{ 65, ReportUserIsActive }, // 2.0.0+
- //{ 66, GetCurrentIlluminance }, // 3.0.0+
- //{ 67, IsIlluminanceAvailable }, // 3.0.0+
- //{ 68, SetAutoSleepDisabled }, // 5.0.0+
- //{ 69, IsAutoSleepDisabled }, // 5.0.0+
- //{ 70, ReportMultimediaError }, // 4.0.0+
- //{ 71, GetCurrentIlluminanceEx }, // 5.0.0+
- //{ 80, SetWirelessPriorityMode }, // 4.0.0+
- //{ 90, GetAccumulatedSuspendedTickValue }, // 6.0.0+
- { 91, GetAccumulatedSuspendedTickChangedEvent }, // 6.0.0+
- //{ 100, SetAlbumImageTakenNotificationEnabled }, // 7.0.0+
- //{ 110, SetApplicationAlbumUserData }, // 8.0.0+
- //{ 1000, GetDebugStorageChannel }, // 7.0.0+
- };
-
_libraryAppletLaunchableEvent = new KEvent(system);
}
+ [Command(0)]
+ // Exit()
public long Exit(ServiceCtx context)
{
Logger.PrintStub(LogClass.ServiceAm);
@@ -77,6 +29,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(1)]
+ // LockExit()
public long LockExit(ServiceCtx context)
{
Logger.PrintStub(LogClass.ServiceAm);
@@ -84,6 +38,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(2)]
+ // UnlockExit()
public long UnlockExit(ServiceCtx context)
{
Logger.PrintStub(LogClass.ServiceAm);
@@ -91,6 +47,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(9)]
+ // GetLibraryAppletLaunchableEvent() -> handle<copy>
public long GetLibraryAppletLaunchableEvent(ServiceCtx context)
{
_libraryAppletLaunchableEvent.ReadableEvent.Signal();
@@ -107,6 +65,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(10)]
+ // SetScreenShotPermission(u32)
public long SetScreenShotPermission(ServiceCtx context)
{
bool enable = context.RequestData.ReadByte() != 0;
@@ -116,6 +76,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(11)]
+ // SetOperationModeChangedNotification(b8)
public long SetOperationModeChangedNotification(ServiceCtx context)
{
bool enable = context.RequestData.ReadByte() != 0;
@@ -125,6 +87,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(12)]
+ // SetPerformanceModeChangedNotification(b8)
public long SetPerformanceModeChangedNotification(ServiceCtx context)
{
bool enable = context.RequestData.ReadByte() != 0;
@@ -134,6 +98,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(13)]
+ // SetFocusHandlingMode(b8, b8, b8)
public long SetFocusHandlingMode(ServiceCtx context)
{
bool flag1 = context.RequestData.ReadByte() != 0;
@@ -145,6 +111,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(14)]
+ // SetRestartMessageEnabled(b8)
public long SetRestartMessageEnabled(ServiceCtx context)
{
bool enable = context.RequestData.ReadByte() != 0;
@@ -154,6 +122,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(16)] // 2.0.0+
+ // SetOutOfFocusSuspendingEnabled(b8)
public long SetOutOfFocusSuspendingEnabled(ServiceCtx context)
{
bool enable = context.RequestData.ReadByte() != 0;
@@ -163,6 +133,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(19)] // 3.0.0+
public long SetScreenShotImageOrientation(ServiceCtx context)
{
int orientation = context.RequestData.ReadInt32();
@@ -172,6 +143,8 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(50)]
+ // SetHandlesRequestToDisplay(b8)
public long SetHandlesRequestToDisplay(ServiceCtx context)
{
bool enable = context.RequestData.ReadByte() != 0;
@@ -181,6 +154,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(62)]
// SetIdleTimeDetectionExtension(u32)
public long SetIdleTimeDetectionExtension(ServiceCtx context)
{
@@ -191,6 +165,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(63)]
// GetIdleTimeDetectionExtension() -> u32
public long GetIdleTimeDetectionExtension(ServiceCtx context)
{
@@ -201,6 +176,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
+ [Command(91)] // 6.0.0+
// GetAccumulatedSuspendedTickChangedEvent() -> handle<copy>
public long GetAccumulatedSuspendedTickChangedEvent(ServiceCtx context)
{
@@ -221,4 +197,4 @@ namespace Ryujinx.HLE.HOS.Services.Am
return 0;
}
}
-}
+} \ No newline at end of file