using Ryujinx.Core.OsHle.Ipc; using System.Collections.Generic; namespace Ryujinx.Core.OsHle.Services.Pl { class ISharedFontManager : IpcService { private Dictionary m_Commands; public override IReadOnlyDictionary Commands => m_Commands; public ISharedFontManager() { m_Commands = new Dictionary() { { 0, RequestLoad }, { 1, GetLoadState }, { 2, GetFontSize }, { 3, GetSharedMemoryAddressOffset }, { 4, GetSharedMemoryNativeHandle } }; } public long RequestLoad(ServiceCtx Context) { SharedFontType FontType = (SharedFontType)Context.RequestData.ReadInt32(); return 0; } 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; } } }