using Ryujinx.Core.OsHle.Ipc; using System.Collections.Generic; namespace Ryujinx.Core.OsHle.IpcServices.Pl { class ServicePl : IIpcService { private Dictionary m_Commands; public IReadOnlyDictionary Commands => m_Commands; public ServicePl() { m_Commands = new Dictionary() { { 1, GetLoadState }, { 2, GetFontSize }, { 3, GetSharedMemoryAddressOffset }, { 4, GetSharedMemoryNativeHandle } }; } public long GetLoadState(ServiceCtx Context) { Context.ResponseData.Write(1); //Loaded return 0; } public long GetFontSize(ServiceCtx Context) { Context.ResponseData.Write(Horizon.FontSize); return 0; } public long GetSharedMemoryAddressOffset(ServiceCtx Context) { Context.ResponseData.Write(0); return 0; } public long GetSharedMemoryNativeHandle(ServiceCtx Context) { int Handle = Context.Process.HandleTable.OpenHandle(Context.Ns.Os.FontSharedMem); Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle); return 0; } } }