using Ryujinx.Core.OsHle.Ipc; using System.Collections.Generic; namespace Ryujinx.Core.OsHle.Services.Am { class ISelfController : IpcService { private Dictionary m_Commands; public override IReadOnlyDictionary Commands => m_Commands; public ISelfController() { m_Commands = new Dictionary() { { 1, LockExit }, { 10, SetScreenShotPermission }, { 11, SetOperationModeChangedNotification }, { 12, SetPerformanceModeChangedNotification }, { 13, SetFocusHandlingMode }, { 14, SetRestartMessageEnabled }, { 16, SetOutOfFocusSuspendingEnabled } }; } public long LockExit(ServiceCtx Context) { return 0; } public long SetScreenShotPermission(ServiceCtx Context) { bool Enable = Context.RequestData.ReadByte() != 0 ? true : false; return 0; } public long SetOperationModeChangedNotification(ServiceCtx Context) { bool Enable = Context.RequestData.ReadByte() != 0 ? true : false; return 0; } public long SetPerformanceModeChangedNotification(ServiceCtx Context) { bool Enable = Context.RequestData.ReadByte() != 0 ? true : false; return 0; } public long SetFocusHandlingMode(ServiceCtx Context) { bool Flag1 = Context.RequestData.ReadByte() != 0 ? true : false; bool Flag2 = Context.RequestData.ReadByte() != 0 ? true : false; bool Flag3 = Context.RequestData.ReadByte() != 0 ? true : false; return 0; } public long SetRestartMessageEnabled(ServiceCtx Context) { bool Enable = Context.RequestData.ReadByte() != 0 ? true : false; return 0; } public long SetOutOfFocusSuspendingEnabled(ServiceCtx Context) { bool Enable = Context.RequestData.ReadByte() != 0 ? true : false; return 0; } } }