| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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;
- }
- }
- }
- }
|