aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Pl
diff options
context:
space:
mode:
authorAc_K <Acoustik666@gmail.com>2019-09-19 02:45:11 +0200
committerjduncanator <1518948+jduncanator@users.noreply.github.com>2019-09-19 10:45:11 +1000
commita0720b5681852f3d786d77bd3793b0359dea321c (patch)
tree9d8f61e540d1d1d827999902dad95e5c0c1e076e /Ryujinx.HLE/HOS/Services/Pl
parent4af3101b22e6957d6aa48a2768566d658699f4ed (diff)
Refactoring HOS folder structure (#771)
* Refactoring HOS folder structure Refactoring HOS folder structure: - Added some subfolders when needed (Following structure decided in private). - Added some `Types` folders when needed. - Little cleanup here and there. - Add services placeholders for every HOS services (close #766 and #753). * Remove Types namespaces
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Pl')
-rw-r--r--Ryujinx.HLE/HOS/Services/Pl/ISharedFontManager.cs127
1 files changed, 0 insertions, 127 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Pl/ISharedFontManager.cs b/Ryujinx.HLE/HOS/Services/Pl/ISharedFontManager.cs
deleted file mode 100644
index a5e3e52a..00000000
--- a/Ryujinx.HLE/HOS/Services/Pl/ISharedFontManager.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-using Ryujinx.HLE.HOS.Font;
-using Ryujinx.HLE.HOS.Ipc;
-using Ryujinx.HLE.HOS.Kernel.Common;
-using System;
-
-namespace Ryujinx.HLE.HOS.Services.Pl
-{
- [Service("pl:u")]
- class ISharedFontManager : IpcService
- {
- public ISharedFontManager(ServiceCtx context) { }
-
- [Command(0)]
- // RequestLoad(u32)
- public ResultCode RequestLoad(ServiceCtx context)
- {
- SharedFontType fontType = (SharedFontType)context.RequestData.ReadInt32();
-
- // We don't need to do anything here because we do lazy initialization
- // on SharedFontManager (the font is loaded when necessary).
- return ResultCode.Success;
- }
-
- [Command(1)]
- // GetLoadState(u32) -> u32
- public ResultCode GetLoadState(ServiceCtx context)
- {
- SharedFontType fontType = (SharedFontType)context.RequestData.ReadInt32();
-
- // 1 (true) indicates that the font is already loaded.
- // All fonts are already loaded.
- context.ResponseData.Write(1);
-
- return ResultCode.Success;
- }
-
- [Command(2)]
- // GetFontSize(u32) -> u32
- public ResultCode GetFontSize(ServiceCtx context)
- {
- SharedFontType fontType = (SharedFontType)context.RequestData.ReadInt32();
-
- context.ResponseData.Write(context.Device.System.Font.GetFontSize(fontType));
-
- return ResultCode.Success;
- }
-
- [Command(3)]
- // GetSharedMemoryAddressOffset(u32) -> u32
- public ResultCode GetSharedMemoryAddressOffset(ServiceCtx context)
- {
- SharedFontType fontType = (SharedFontType)context.RequestData.ReadInt32();
-
- context.ResponseData.Write(context.Device.System.Font.GetSharedMemoryAddressOffset(fontType));
-
- return ResultCode.Success;
- }
-
- [Command(4)]
- // GetSharedMemoryNativeHandle() -> handle<copy>
- public ResultCode GetSharedMemoryNativeHandle(ServiceCtx context)
- {
- context.Device.System.Font.EnsureInitialized(context.Device.System.ContentManager);
-
- if (context.Process.HandleTable.GenerateHandle(context.Device.System.FontSharedMem, out int handle) != KernelResult.Success)
- {
- throw new InvalidOperationException("Out of handles!");
- }
-
- context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
-
- return ResultCode.Success;
- }
-
- [Command(5)]
- // GetSharedFontInOrderOfPriority(bytes<8, 1>) -> (u8, u32, buffer<unknown, 6>, buffer<unknown, 6>, buffer<unknown, 6>)
- public ResultCode GetSharedFontInOrderOfPriority(ServiceCtx context)
- {
- long languageCode = context.RequestData.ReadInt64();
- int loadedCount = 0;
-
- for (SharedFontType type = 0; type < SharedFontType.Count; type++)
- {
- int offset = (int)type * 4;
-
- if (!AddFontToOrderOfPriorityList(context, type, offset))
- {
- break;
- }
-
- loadedCount++;
- }
-
- context.ResponseData.Write(loadedCount);
- context.ResponseData.Write((int)SharedFontType.Count);
-
- return ResultCode.Success;
- }
-
- private bool AddFontToOrderOfPriorityList(ServiceCtx context, SharedFontType fontType, int offset)
- {
- long typesPosition = context.Request.ReceiveBuff[0].Position;
- long typesSize = context.Request.ReceiveBuff[0].Size;
-
- long offsetsPosition = context.Request.ReceiveBuff[1].Position;
- long offsetsSize = context.Request.ReceiveBuff[1].Size;
-
- long fontSizeBufferPosition = context.Request.ReceiveBuff[2].Position;
- long fontSizeBufferSize = context.Request.ReceiveBuff[2].Size;
-
- if ((uint)offset + 4 > (uint)typesSize ||
- (uint)offset + 4 > (uint)offsetsSize ||
- (uint)offset + 4 > (uint)fontSizeBufferSize)
- {
- return false;
- }
-
- context.Memory.WriteInt32(typesPosition + offset, (int)fontType);
-
- context.Memory.WriteInt32(offsetsPosition + offset, context.Device.System.Font.GetSharedMemoryAddressOffset(fontType));
-
- context.Memory.WriteInt32(fontSizeBufferPosition + offset, context.Device.System.Font.GetFontSize(fontType));
-
- return true;
- }
- }
-} \ No newline at end of file