| 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(basePath, SystemNandPath, "Contents");
- case ContentPath.UserContent:
- return Path.Combine(basePath, 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;
- }
- }
- }
- }
|