mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2024-12-27 12:25:48 +00:00
fb1d9493a3
* Rename enum fields * Naming conventions * Remove unneeded ".this" * Remove unneeded semicolons * Remove unused Usings * Don't use var * Remove unneeded enum underlying types * Explicitly label class visibility * Remove unneeded @ prefixes * Remove unneeded commas * Remove unneeded if expressions * Method doesn't use unsafe code * Remove unneeded casts * Initialized objects don't need an empty constructor * Remove settings from DotSettings * Revert "Explicitly label class visibility" This reverts commit ad5eb5787cc5b27a4631cd46ef5f551c4ae95e51. * Small changes * Revert external enum renaming * Changes from feedback * Apply previous refactorings to the merged code
91 lines
3.2 KiB
C#
91 lines
3.2 KiB
C#
using System;
|
|
using System.IO;
|
|
|
|
using static Ryujinx.HLE.FileSystem.VirtualFileSystem;
|
|
|
|
namespace Ryujinx.HLE.FileSystem.Content
|
|
{
|
|
internal static class LocationHelper
|
|
{
|
|
public static string GetRealPath(VirtualFileSystem fileSystem, string switchContentPath)
|
|
{
|
|
string basePath = fileSystem.GetBasePath();
|
|
|
|
switch (switchContentPath)
|
|
{
|
|
case ContentPath.SystemContent:
|
|
return Path.Combine(fileSystem.GetBasePath(), SystemNandPath, "Contents");
|
|
case ContentPath.UserContent:
|
|
return Path.Combine(fileSystem.GetBasePath(), UserNandPath, "Contents");
|
|
case ContentPath.SdCardContent:
|
|
return Path.Combine(fileSystem.GetSdCardPath(), "Nintendo", "Contents");
|
|
case ContentPath.System:
|
|
return Path.Combine(basePath, SystemNandPath);
|
|
case ContentPath.User:
|
|
return Path.Combine(basePath, UserNandPath);
|
|
default:
|
|
throw new NotSupportedException($"Content Path `{switchContentPath}` is not supported.");
|
|
}
|
|
}
|
|
|
|
public static string GetContentPath(ContentStorageId contentStorageId)
|
|
{
|
|
switch (contentStorageId)
|
|
{
|
|
case ContentStorageId.NandSystem:
|
|
return ContentPath.SystemContent;
|
|
case ContentStorageId.NandUser:
|
|
return ContentPath.UserContent;
|
|
case ContentStorageId.SdCard:
|
|
return ContentPath.SdCardContent;
|
|
default:
|
|
throw new NotSupportedException($"Content Storage `{contentStorageId}` is not supported.");
|
|
}
|
|
}
|
|
|
|
public static string GetContentRoot(StorageId storageId)
|
|
{
|
|
switch (storageId)
|
|
{
|
|
case StorageId.NandSystem:
|
|
return ContentPath.SystemContent;
|
|
case StorageId.NandUser:
|
|
return ContentPath.UserContent;
|
|
case StorageId.SdCard:
|
|
return ContentPath.SdCardContent;
|
|
default:
|
|
throw new NotSupportedException($"Storage Id `{storageId}` is not supported.");
|
|
}
|
|
}
|
|
|
|
public static StorageId GetStorageId(string contentPathString)
|
|
{
|
|
string cleanedPath = contentPathString.Split(':')[0];
|
|
|
|
switch (cleanedPath)
|
|
{
|
|
case ContentPath.SystemContent:
|
|
case ContentPath.System:
|
|
return StorageId.NandSystem;
|
|
|
|
case ContentPath.UserContent:
|
|
case ContentPath.User:
|
|
return StorageId.NandUser;
|
|
|
|
case ContentPath.SdCardContent:
|
|
return StorageId.SdCard;
|
|
|
|
case ContentPath.Host:
|
|
return StorageId.Host;
|
|
|
|
case ContentPath.GamecardApp:
|
|
case ContentPath.GamecardContents:
|
|
case ContentPath.GamecardUpdate:
|
|
return StorageId.GameCard;
|
|
|
|
default:
|
|
return StorageId.None;
|
|
}
|
|
}
|
|
}
|
|
}
|