From b126ea48c63a3de8da8f3b817860c0323f2621ef Mon Sep 17 00:00:00 2001 From: Thomas Guillemard Date: Thu, 14 Feb 2019 01:44:39 +0100 Subject: Support HomeBrew Loader (#577) * Make it possibles to load hb-loader and hb-menu One issue remains with hb-menu homebrew icons because of SIMD issues (libjpeg-turbo related) and netloader doesn't work. * Implement GetApplicationControlData * Fix shared fonts for NSO/NRO * Add homebrew NRO romfs support This readd the NRO support by parsing the ASET header * Address comments about HomebrewRomFs * override Dispose in homebrew romfs stream * Use a struct for file timestamp * Simplify positional increments in GetApplicationControlData * Address comments * improve readability of the memory permission check in SetProcessMemoryPermission * Fix previous broken check * Add address space checks in SetProcessMemoryPermission --- Ryujinx.HLE/FileSystem/FileSystemProvider.cs | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'Ryujinx.HLE/FileSystem/FileSystemProvider.cs') diff --git a/Ryujinx.HLE/FileSystem/FileSystemProvider.cs b/Ryujinx.HLE/FileSystem/FileSystemProvider.cs index a806c9ee..f5459eec 100644 --- a/Ryujinx.HLE/FileSystem/FileSystemProvider.cs +++ b/Ryujinx.HLE/FileSystem/FileSystemProvider.cs @@ -1,5 +1,6 @@ using Ryujinx.HLE.HOS; using Ryujinx.HLE.HOS.Services.FspSrv; +using Ryujinx.HLE.Utilities; using System; using System.Collections.Generic; using System.IO; @@ -279,5 +280,34 @@ namespace Ryujinx.HLE.FileSystem throw new InvalidOperationException($"Path {path} is not a child directory of {_rootPath}"); } + + public FileTimestamp GetFileTimeStampRaw(string name) + { + CheckIfDescendentOfRootPath(name); + + DateTime creationDateTime = DateTime.UnixEpoch; + DateTime modifiedDateTime = DateTime.UnixEpoch; + DateTime lastAccessDateTime = DateTime.UnixEpoch; + + if (File.Exists(name)) + { + creationDateTime = File.GetCreationTime(name); + modifiedDateTime = File.GetLastWriteTime(name); + lastAccessDateTime = File.GetLastAccessTime(name); + } + else if (Directory.Exists(name)) + { + creationDateTime = Directory.GetCreationTime(name); + modifiedDateTime = Directory.GetLastWriteTime(name); + lastAccessDateTime = Directory.GetLastAccessTime(name); + } + + return new FileTimestamp + { + CreationDateTime = creationDateTime, + ModifiedDateTime = modifiedDateTime, + LastAccessDateTime = lastAccessDateTime + }; + } } } -- cgit v1.2.3