Add support to show available options from IReadOnlyFilesystems.

This commit is contained in:
2017-12-28 00:29:04 +00:00
parent a1f82e0e72
commit 1bb2d16e54
14 changed files with 269 additions and 152 deletions

View File

@@ -57,6 +57,11 @@ namespace DiscImageChef.Filesystems.AppleDOS
public string Name => "Apple DOS File System";
public Guid Id => new Guid("8658A1E9-B2E7-4BCC-9638-157A31B0A700\n");
public (string name, Type type, string description)[] ListOptions()
{
return new(string name, Type type, string description)[] { };
}
static Dictionary<string, string> GetDefaultOptions()
{
return new Dictionary<string, string> {{"debug", false.ToString()}};
@@ -70,17 +75,17 @@ namespace DiscImageChef.Filesystems.AppleDOS
/// <summary>Caches catalog</summary>
Dictionary<string, ushort> catalogCache;
/// <summary>Caches file size</summary>
Dictionary<string, int> fileSizeCache;
Dictionary<string, int> fileSizeCache;
/// <summary>Caches VTOC</summary>
byte[] vtocBlocks;
byte[] vtocBlocks;
/// <summary>Caches catalog</summary>
byte[] catalogBlocks;
byte[] catalogBlocks;
/// <summary>Caches boot code</summary>
byte[] bootBlocks;
byte[] bootBlocks;
/// <summary>Caches file type</summary>
Dictionary<string, byte> fileTypeCache;
Dictionary<string, byte> fileTypeCache;
/// <summary>Caches locked files</summary>
List<string> lockedFiles;
List<string> lockedFiles;
#endregion Caches
}
}

View File

@@ -71,5 +71,11 @@ namespace DiscImageChef.Filesystems.AppleMFS
{
return new Dictionary<string, string> {{"debug", false.ToString()}};
}
// TODO: Implement Finder namespace (requires decoding Desktop database)
public (string name, Type type, string description)[] ListOptions()
{
return new(string name, Type type, string description)[] { };
}
}
}

View File

@@ -117,6 +117,11 @@ namespace DiscImageChef.Filesystems.CPM
public string Name => "CP/M File System";
public Guid Id => new Guid("AA2B8585-41DF-4E3B-8A35-D1A935E2F8A1");
public (string name, Type type, string description)[] ListOptions()
{
return new(string name, Type type, string description)[] { };
}
static Dictionary<string, string> GetDefaultOptions()
{
return new Dictionary<string, string> {{"debug", false.ToString()}};

View File

@@ -35,6 +35,9 @@
<HintPath>..\packages\Claunia.Encoding.1.4.0\lib\portable40-net40+sl5+win8+wp8\Claunia.Encoding.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51">
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\portable-net40+sl4+win8+wp8\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>

View File

@@ -31,6 +31,7 @@
// Copyright © 2011-2018 Natalia Portillo
// ****************************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using DiscImageChef.CommonTypes;
@@ -129,5 +130,10 @@ namespace DiscImageChef.Filesystems
/// <param name="path">Link path.</param>
/// <param name="dest">Link destination.</param>
Errno ReadLink(string path, out string dest);
/// <summary>
/// Retrieves a list of options supported by the filesystem, with name, type and description
/// </summary>
(string name, Type type, string description)[] ListOptions();
}
}

View File

@@ -56,6 +56,12 @@ namespace DiscImageChef.Filesystems.LisaFS
public Encoding Encoding { get; private set; }
public FileSystemType XmlFsType { get; private set; }
// TODO: Implement Lisa 7/7 namespace (needs decoding {!CATALOG} file)
public (string name, Type type, string description)[] ListOptions()
{
return new(string name, Type type, string description)[] { };
}
static Dictionary<string, string> GetDefaultOptions()
{
return new Dictionary<string, string> {{"debug", false.ToString()}};
@@ -65,17 +71,17 @@ namespace DiscImageChef.Filesystems.LisaFS
/// <summary>Caches Extents Files</summary>
Dictionary<short, ExtentFile> extentCache;
/// <summary>Caches system files</summary>
Dictionary<short, byte[]> systemFileCache;
Dictionary<short, byte[]> systemFileCache;
/// <summary>Caches user files files</summary>
Dictionary<short, byte[]> fileCache;
Dictionary<short, byte[]> fileCache;
/// <summary>Caches catalogs</summary>
List<CatalogEntry> catalogCache;
List<CatalogEntry> catalogCache;
/// <summary>Caches file size</summary>
Dictionary<short, int> fileSizeCache;
Dictionary<short, int> fileSizeCache;
/// <summary>Lists Extents Files already printed in debug mode to not repeat them</summary>
List<short> printedExtents;
List<short> printedExtents;
/// <summary>Caches the creation times for subdirectories as to not have to traverse the Catalog File on each stat</summary>
Dictionary<short, DateTime> directoryDtcCache;
Dictionary<short, DateTime> directoryDtcCache;
#endregion Caches
}
}

View File

@@ -73,6 +73,11 @@ namespace DiscImageChef.Filesystems.UCSDPascal
return Errno.NotSupported;
}
public (string name, Type type, string description)[] ListOptions()
{
return new(string name, Type type, string description)[] { };
}
static Dictionary<string, string> GetDefaultOptions()
{
return new Dictionary<string, string> {{"debug", false.ToString()}};

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Claunia.Encoding" version="1.4.0" targetFramework="net40" />
<package id="System.ValueTuple" version="4.4.0" targetFramework="net40" />
</packages>