aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/Utilities/StringUtils.cs
diff options
context:
space:
mode:
authoremmauss <emmausssss@gmail.com>2018-11-18 21:37:41 +0200
committergdkchan <gab.dark.100@gmail.com>2018-11-18 17:37:41 -0200
commitfe8fbb6fb9b85a528ddfa4848ec8e35fd9a5e9a5 (patch)
tree7cd33a50d1ebc98e467df93aeb86315679110778 /Ryujinx.HLE/Utilities/StringUtils.cs
parente603b7afbcdff0fc732304872f5a65d410c601f9 (diff)
Implement ContentManager and related services (#438)
* Implement contentmanager and related services * small changes * read system firmware version from nand * add pfs support, write directoryentry info for romfs files * add file check in fsp-srv:8 * add support for open fs of internal files * fix filename when accessing pfs * use switch style paths for contentpath * close nca after verifying type * removed publishing profiles, align directory entry * fix style * lots of style fixes * yasf(yet another style fix) * yasf(yet another style fix) plus symbols * enforce path check on every fs access * change enum type to default * fix typo
Diffstat (limited to 'Ryujinx.HLE/Utilities/StringUtils.cs')
-rw-r--r--Ryujinx.HLE/Utilities/StringUtils.cs27
1 files changed, 26 insertions, 1 deletions
diff --git a/Ryujinx.HLE/Utilities/StringUtils.cs b/Ryujinx.HLE/Utilities/StringUtils.cs
index e8d6550a..a10273ee 100644
--- a/Ryujinx.HLE/Utilities/StringUtils.cs
+++ b/Ryujinx.HLE/Utilities/StringUtils.cs
@@ -1,5 +1,7 @@
-using System;
+using Ryujinx.HLE.HOS;
+using System;
using System.Globalization;
+using System.IO;
using System.Linq;
using System.Text;
@@ -47,5 +49,28 @@ namespace Ryujinx.HLE.Utilities
return Output;
}
+
+ public static string ReadUtf8String(ServiceCtx Context, int Index = 0)
+ {
+ long Position = Context.Request.PtrBuff[Index].Position;
+ long Size = Context.Request.PtrBuff[Index].Size;
+
+ using (MemoryStream MS = new MemoryStream())
+ {
+ while (Size-- > 0)
+ {
+ byte Value = Context.Memory.ReadByte(Position++);
+
+ if (Value == 0)
+ {
+ break;
+ }
+
+ MS.WriteByte(Value);
+ }
+
+ return Encoding.UTF8.GetString(MS.ToArray());
+ }
+ }
}
}