General code refactor.

This commit is contained in:
2021-08-17 21:23:10 +01:00
parent 4fcaeffc85
commit 75edb759e6
513 changed files with 38377 additions and 48553 deletions

View File

@@ -2,17 +2,14 @@
## Our Pledge ## Our Pledge
In the interest of fostering an open and welcoming environment, we as In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making
contributors and maintainers pledge to making participation in our project and participation in our project and our community a harassment-free experience for everyone, regardless of age, body size,
our community a harassment-free experience for everyone, regardless of age, body disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status,
size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
education, socio-economic status, nationality, personal appearance, race,
religion, or sexual identity and orientation.
## Our Standards ## Our Standards
Examples of behavior that contributes to creating a positive environment Examples of behavior that contributes to creating a positive environment include:
include:
* Using welcoming and inclusive language * Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences * Being respectful of differing viewpoints and experiences
@@ -22,52 +19,42 @@ include:
Examples of unacceptable behavior by participants include: Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or * The use of sexualized language or imagery and unwelcome sexual attention or advances
advances
* Trolling, insulting/derogatory comments, and personal or political attacks * Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment * Public or private harassment
* Publishing others' private information, such as a physical or electronic * Publishing others' private information, such as a physical or electronic address, without explicit permission
address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities ## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take
behavior and are expected to take appropriate and fair corrective action in appropriate and fair corrective action in response to any instances of unacceptable behavior.
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits,
reject comments, commits, code, wiki edits, issues, and other contributions issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any
that are not aligned to this Code of Conduct, or to ban temporarily or contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope ## Scope
This Code of Conduct applies both within project spaces and in public spaces This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the
when an individual is representing the project or its community. Examples of project or its community. Examples of representing a project or community include using an official project e-mail
representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline
address, posting via an official social media account, or acting as an appointed event. Representation of a project may be further defined and clarified by project maintainers.
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement ## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team
reported by contacting the project team at [claunia@claunia.com](mailto:claunia@claunia.com). All at [claunia@claunia.com](mailto:claunia@claunia.com). All complaints will be reviewed and investigated and will result
complaints will be reviewed and investigated and will result in a response that in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain
is deemed necessary and appropriate to the circumstances. The project team is confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be
obligated to maintain confidentiality with regard to the reporter of an incident. posted separately.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent
faith may face temporary or permanent repercussions as determined by other repercussions as determined by other members of the project's leadership.
members of the project's leadership.
## Attribution ## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org [homepage]: https://www.contributor-covenant.org

View File

@@ -1,5 +1,7 @@
## Types of changes ## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality) - [ ] New feature (non-breaking change which adds functionality)
- [ ] New filesystem, test images in [url] - [ ] New filesystem, test images in [url]

View File

@@ -58,14 +58,14 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System"/>
<Reference Include="System.Core" /> <Reference Include="System.Core"/>
<Reference Include="System.Data" /> <Reference Include="System.Data"/>
<Reference Include="System.Xml" /> <Reference Include="System.Xml"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AppleRle.cs" /> <Compile Include="AppleRle.cs"/>
<Compile Include="TeleDiskLzh.cs" /> <Compile Include="TeleDiskLzh.cs"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="..\LICENSE.LGPL"> <Content Include="..\LICENSE.LGPL">
@@ -82,25 +82,25 @@
<Target Name="AfterBuild"> <Target Name="AfterBuild">
</Target> </Target>
--> -->
<PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'"> <PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">
<!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you --> <!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
<!-- have to teach MSBuild where the Mono copy of the reference asssemblies is --> <!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
<!-- Look in the standard install locations --> <!-- Look in the standard install locations -->
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono>
<!-- If we found Mono reference assemblies, then use them --> <!-- If we found Mono reference assemblies, then use them -->
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
<EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride> <EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride>
<!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 --> <!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 -->
<AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths> <AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -35,9 +35,7 @@ using System.IO;
namespace Aaru.Compression namespace Aaru.Compression
{ {
/// <summary> /// <summary>Implements the Apple version of RLE</summary>
/// Implements the Apple version of RLE
/// </summary>
public class AppleRle public class AppleRle
{ {
const uint DART_CHUNK = 20960; const uint DART_CHUNK = 20960;
@@ -48,9 +46,7 @@ namespace Aaru.Compression
byte _repeatedByteA, _repeatedByteB; byte _repeatedByteA, _repeatedByteB;
bool _repeatMode; // true if we're repeating, false if we're just copying bool _repeatMode; // true if we're repeating, false if we're just copying
/// <summary> /// <summary>Initializes a decompressor for the specified stream</summary>
/// Initializes a decompressor for the specified stream
/// </summary>
/// <param name="stream">Stream containing the compressed data</param> /// <param name="stream">Stream containing the compressed data</param>
public AppleRle(Stream stream) public AppleRle(Stream stream)
{ {
@@ -66,9 +62,7 @@ namespace Aaru.Compression
_repeatMode = false; _repeatMode = false;
} }
/// <summary> /// <summary>Decompresses a byte</summary>
/// Decompresses a byte
/// </summary>
/// <returns>Decompressed byte</returns> /// <returns>Decompressed byte</returns>
public int ProduceByte() public int ProduceByte()
{ {

View File

@@ -53,9 +53,7 @@ namespace Aaru.Compression
* Adaptive Huffman Coding coded by Haruyasu YOSHIZAKI * Adaptive Huffman Coding coded by Haruyasu YOSHIZAKI
* Edited and translated to English by Kenji RIKITAKE * Edited and translated to English by Kenji RIKITAKE
*/ */
/// <summary> /// <summary>Implements the TeleDisk version of LZH</summary>
/// Implements the TeleDisk version of LZH
/// </summary>
public class TeleDiskLzh public class TeleDiskLzh
{ {
const int BUFSZ = 512; const int BUFSZ = 512;
@@ -136,9 +134,7 @@ namespace Aaru.Compression
Tdlzhuf _tdctl; Tdlzhuf _tdctl;
/// <summary> /// <summary>Implements the TeleDisk LZH algorithm over the specified stream.</summary>
/// Implements the TeleDisk LZH algorithm over the specified stream.
/// </summary>
/// <param name="dataStream">Stream with compressed data.</param> /// <param name="dataStream">Stream with compressed data.</param>
public TeleDiskLzh(Stream dataStream) public TeleDiskLzh(Stream dataStream)
{ {
@@ -163,9 +159,7 @@ namespace Aaru.Compression
*/ */
/// <summary> /// <summary>Decompresses data</summary>
/// Decompresses data
/// </summary>
/// <param name="buf">Buffer to write the decompressed data to</param> /// <param name="buf">Buffer to write the decompressed data to</param>
/// <param name="len">Number of bytes to decompress</param> /// <param name="len">Number of bytes to decompress</param>
/// <returns>Number of decompressed bytes</returns> /// <returns>Number of decompressed bytes</returns>

View File

@@ -53,105 +53,105 @@
<ConsolePause>false</ConsolePause> <ConsolePause>false</ConsolePause>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System"/>
<Reference Include="System.Xml" /> <Reference Include="System.Xml"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Devices\Dumping\CompactDisc\CdiReady.cs" /> <Compile Include="Devices\Dumping\CompactDisc\CdiReady.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Data.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Data.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Dump.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Dump.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Error.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Error.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\LeadOuts.cs" /> <Compile Include="Devices\Dumping\CompactDisc\LeadOuts.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Offset.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Offset.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Plextor.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Plextor.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Pregap.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Pregap.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Subchannel.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Subchannel.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Tags.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Tags.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Tracks.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Tracks.cs"/>
<Compile Include="Devices\Dumping\CompactDisc\Trim.cs" /> <Compile Include="Devices\Dumping\CompactDisc\Trim.cs"/>
<Compile Include="Devices\Dumping\Dump.cs" /> <Compile Include="Devices\Dumping\Dump.cs"/>
<Compile Include="Devices\Dumping\Metadata.cs" /> <Compile Include="Devices\Dumping\Metadata.cs"/>
<Compile Include="Devices\Dumping\MiniDisc.cs" /> <Compile Include="Devices\Dumping\MiniDisc.cs"/>
<Compile Include="Devices\Dumping\PlayStationPortable\MemoryStick.cs" /> <Compile Include="Devices\Dumping\PlayStationPortable\MemoryStick.cs"/>
<Compile Include="Devices\Dumping\PlayStationPortable\PlayStationPortable.cs" /> <Compile Include="Devices\Dumping\PlayStationPortable\PlayStationPortable.cs"/>
<Compile Include="Devices\Dumping\PlayStationPortable\UMD.cs" /> <Compile Include="Devices\Dumping\PlayStationPortable\UMD.cs"/>
<Compile Include="Devices\Dumping\Sbc\Data.cs" /> <Compile Include="Devices\Dumping\Sbc\Data.cs"/>
<Compile Include="Devices\Dumping\Sbc\Error.cs" /> <Compile Include="Devices\Dumping\Sbc\Error.cs"/>
<Compile Include="Devices\Dumping\Sbc\Dump.cs" /> <Compile Include="Devices\Dumping\Sbc\Dump.cs"/>
<Compile Include="Devices\Dumping\Sbc\Optical.cs" /> <Compile Include="Devices\Dumping\Sbc\Optical.cs"/>
<Compile Include="Devices\Dumping\Sbc\Trim.cs" /> <Compile Include="Devices\Dumping\Sbc\Trim.cs"/>
<Compile Include="Devices\Info\DeviceInfo.cs" /> <Compile Include="Devices\Info\DeviceInfo.cs"/>
<Compile Include="Devices\Info\Plextor.cs" /> <Compile Include="Devices\Info\Plextor.cs"/>
<Compile Include="Devices\Info\Properties.cs" /> <Compile Include="Devices\Info\Properties.cs"/>
<Compile Include="Devices\Report\DeviceReport.cs" /> <Compile Include="Devices\Report\DeviceReport.cs"/>
<Compile Include="Devices\Report\GdRomSwapTrick.cs" /> <Compile Include="Devices\Report\GdRomSwapTrick.cs"/>
<Compile Include="Devices\Report\Scsi.cs" /> <Compile Include="Devices\Report\Scsi.cs"/>
<Compile Include="Devices\Report\MMC.cs" /> <Compile Include="Devices\Report\MMC.cs"/>
<Compile Include="Devices\Report\SSC.cs" /> <Compile Include="Devices\Report\SSC.cs"/>
<Compile Include="Devices\Scanning\MediaScan.cs" /> <Compile Include="Devices\Scanning\MediaScan.cs"/>
<Compile Include="Entropy.cs" /> <Compile Include="Entropy.cs"/>
<Compile Include="GetPluginBase.cs" /> <Compile Include="GetPluginBase.cs"/>
<Compile Include="ImageInfo.cs" /> <Compile Include="ImageInfo.cs"/>
<Compile Include="Logging\ErrorLog.cs" /> <Compile Include="Logging\ErrorLog.cs"/>
<Compile Include="Logging\SubchannelLog.cs" /> <Compile Include="Logging\SubchannelLog.cs"/>
<Compile Include="Media\CompactDisc.cs" /> <Compile Include="Media\CompactDisc.cs"/>
<Compile Include="Media\Detection\MMC.cs" /> <Compile Include="Media\Detection\MMC.cs"/>
<Compile Include="Media\Info\CompactDisc.cs" /> <Compile Include="Media\Info\CompactDisc.cs"/>
<Compile Include="Media\Info\ScsiInfo.cs" /> <Compile Include="Media\Info\ScsiInfo.cs"/>
<Compile Include="Media\Info\XgdInfo.cs" /> <Compile Include="Media\Info\XgdInfo.cs"/>
<Compile Include="Options.cs" /> <Compile Include="Options.cs"/>
<Compile Include="ImageFormat.cs" /> <Compile Include="ImageFormat.cs"/>
<Compile Include="Error.cs" /> <Compile Include="Error.cs"/>
<Compile Include="PrintScsiModePages.cs" /> <Compile Include="PrintScsiModePages.cs"/>
<Compile Include="Sidecar\Files.cs" /> <Compile Include="Sidecar\Files.cs"/>
<Compile Include="Statistics.cs" /> <Compile Include="Statistics.cs"/>
<Compile Include="Checksum.cs" /> <Compile Include="Checksum.cs"/>
<Compile Include="Logging\IBGLog.cs" /> <Compile Include="Logging\IBGLog.cs"/>
<Compile Include="Logging\MHDDLog.cs" /> <Compile Include="Logging\MHDDLog.cs"/>
<Compile Include="Devices\Scanning\ATA.cs" /> <Compile Include="Devices\Scanning\ATA.cs"/>
<Compile Include="Devices\Scanning\SecureDigital.cs" /> <Compile Include="Devices\Scanning\SecureDigital.cs"/>
<Compile Include="Devices\Scanning\NVMe.cs" /> <Compile Include="Devices\Scanning\NVMe.cs"/>
<Compile Include="Devices\Scanning\SCSI.cs" /> <Compile Include="Devices\Scanning\SCSI.cs"/>
<Compile Include="Devices\Dumping\ATA.cs" /> <Compile Include="Devices\Dumping\ATA.cs"/>
<Compile Include="Devices\Dumping\NVMe.cs" /> <Compile Include="Devices\Dumping\NVMe.cs"/>
<Compile Include="Devices\Dumping\SCSI.cs" /> <Compile Include="Devices\Dumping\SCSI.cs"/>
<Compile Include="Devices\Dumping\SecureDigital.cs" /> <Compile Include="Devices\Dumping\SecureDigital.cs"/>
<Compile Include="DataFile.cs" /> <Compile Include="DataFile.cs"/>
<Compile Include="Filesystems.cs" /> <Compile Include="Filesystems.cs"/>
<Compile Include="Devices\Scanning\ScanResults.cs" /> <Compile Include="Devices\Scanning\ScanResults.cs"/>
<Compile Include="Devices\Report\ATA.cs" /> <Compile Include="Devices\Report\ATA.cs"/>
<Compile Include="Devices\Report\FireWire.cs" /> <Compile Include="Devices\Report\FireWire.cs"/>
<Compile Include="Devices\Report\USB.cs" /> <Compile Include="Devices\Report\USB.cs"/>
<Compile Include="Devices\Report\SecureDigital.cs" /> <Compile Include="Devices\Report\SecureDigital.cs"/>
<Compile Include="Remote.cs" /> <Compile Include="Remote.cs"/>
<Compile Include="Devices\Report\PCMCIA.cs" /> <Compile Include="Devices\Report\PCMCIA.cs"/>
<Compile Include="Devices\Reader.cs" /> <Compile Include="Devices\Reader.cs"/>
<Compile Include="Devices\ReaderATA.cs" /> <Compile Include="Devices\ReaderATA.cs"/>
<Compile Include="Devices\ReaderSCSI.cs" /> <Compile Include="Devices\ReaderSCSI.cs"/>
<Compile Include="Devices\Dumping\SSC.cs" /> <Compile Include="Devices\Dumping\SSC.cs"/>
<Compile Include="Devices\Dumping\MMC.cs" /> <Compile Include="Devices\Dumping\MMC.cs"/>
<Compile Include="Devices\Dumping\XGD.cs" /> <Compile Include="Devices\Dumping\XGD.cs"/>
<Compile Include="Devices\Dumping\ResumeSupport.cs" /> <Compile Include="Devices\Dumping\ResumeSupport.cs"/>
<Compile Include="Partitions.cs" /> <Compile Include="Partitions.cs"/>
<Compile Include="Sidecar\Events.cs" /> <Compile Include="Sidecar\Events.cs"/>
<Compile Include="Sidecar\Helpers.cs" /> <Compile Include="Sidecar\Helpers.cs"/>
<Compile Include="Sidecar\Sidecar.cs" /> <Compile Include="Sidecar\Sidecar.cs"/>
<Compile Include="Sidecar\OpticalDisc.cs" /> <Compile Include="Sidecar\OpticalDisc.cs"/>
<Compile Include="Sidecar\BlockMedia.cs" /> <Compile Include="Sidecar\BlockMedia.cs"/>
<Compile Include="Sidecar\LinearMedia.cs" /> <Compile Include="Sidecar\LinearMedia.cs"/>
<Compile Include="Sidecar\AudioMedia.cs" /> <Compile Include="Sidecar\AudioMedia.cs"/>
<Compile Include="Sidecar\BlockTape.cs" /> <Compile Include="Sidecar\BlockTape.cs"/>
<Compile Include="Logging\DumpLog.cs" /> <Compile Include="Logging\DumpLog.cs"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Aaru.Archives\Aaru.Archives.csproj" /> <ProjectReference Include="..\Aaru.Archives\Aaru.Archives.csproj"/>
<ProjectReference Include="..\Aaru.Console\Aaru.Console.csproj"> <ProjectReference Include="..\Aaru.Console\Aaru.Console.csproj">
<Project>{ccaa7afe-c094-4d82-a66d-630de8a3f545}</Project> <Project>{ccaa7afe-c094-4d82-a66d-630de8a3f545}</Project>
<Name>Aaru.Console</Name> <Name>Aaru.Console</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\Aaru.Database\Aaru.Database.csproj" /> <ProjectReference Include="..\Aaru.Database\Aaru.Database.csproj"/>
<ProjectReference Include="..\Aaru.Decryption\Aaru.Decryption.csproj" /> <ProjectReference Include="..\Aaru.Decryption\Aaru.Decryption.csproj"/>
<ProjectReference Include="..\Aaru.Dto\Aaru.Dto.csproj" /> <ProjectReference Include="..\Aaru.Dto\Aaru.Dto.csproj"/>
<ProjectReference Include="..\Aaru.Filesystems\Aaru.Filesystems.csproj"> <ProjectReference Include="..\Aaru.Filesystems\Aaru.Filesystems.csproj">
<Project>{D7016DF2-5A5E-4524-B40D-BA2D59576688}</Project> <Project>{D7016DF2-5A5E-4524-B40D-BA2D59576688}</Project>
<Name>Aaru.Filesystems</Name> <Name>Aaru.Filesystems</Name>
@@ -194,60 +194,59 @@
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Logging\" /> <Folder Include="Logging\"/>
<Folder Include="Devices\" /> <Folder Include="Devices\"/>
<Folder Include="Devices\Scanning\" /> <Folder Include="Devices\Scanning\"/>
<Folder Include="Devices\Dumping\" /> <Folder Include="Devices\Dumping\"/>
<Folder Include="Devices\Report\" /> <Folder Include="Devices\Report\"/>
<Folder Include="Sidecar\" /> <Folder Include="Sidecar\"/>
</ItemGroup>
<ItemGroup>
</ItemGroup> </ItemGroup>
<ItemGroup></ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="..\LICENSE"> <Content Include="..\LICENSE">
<Link>LICENSE</Link> <Link>LICENSE</Link>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0"/>
<PackageReference Include="Unclassified.NetRevisionTask" Version="0.3.0" PrivateAssets="all" /> <PackageReference Include="Unclassified.NetRevisionTask" Version="0.3.0" PrivateAssets="all"/>
<PackageReference Include="System.Collections" Version="4.3.0" /> <PackageReference Include="System.Collections" Version="4.3.0"/>
<PackageReference Include="System.Diagnostics.Debug" Version="4.3.0" /> <PackageReference Include="System.Diagnostics.Debug" Version="4.3.0"/>
<PackageReference Include="System.IO.FileSystem.Primitives" Version="4.3.0" /> <PackageReference Include="System.IO.FileSystem.Primitives" Version="4.3.0"/>
<PackageReference Include="System.Runtime.Extensions" Version="4.3.1" /> <PackageReference Include="System.Runtime.Extensions" Version="4.3.1"/>
<PackageReference Include="System.Runtime.Handles" Version="4.3.0" /> <PackageReference Include="System.Runtime.Handles" Version="4.3.0"/>
<PackageReference Include="System.Runtime.InteropServices" Version="4.3.0" /> <PackageReference Include="System.Runtime.InteropServices" Version="4.3.0"/>
</ItemGroup> </ItemGroup>
<ProjectExtensions> <ProjectExtensions>
<MonoDevelop> <MonoDevelop>
<Properties> <Properties>
<Policies> <Policies>
<TextStylePolicy FileWidth="120" TabWidth="4" IndentWidth="4" RemoveTrailingWhitespace="True" NoTabsAfterNonTabs="False" EolMarker="Native" TabsToSpaces="True" scope="text/x-csharp" /> <TextStylePolicy FileWidth="120" TabWidth="4" IndentWidth="4" RemoveTrailingWhitespace="True" NoTabsAfterNonTabs="False" EolMarker="Native" TabsToSpaces="True" scope="text/x-csharp"/>
<CSharpFormattingPolicy IndentBlock="True" IndentBraces="False" IndentSwitchSection="True" IndentSwitchCaseSection="True" LabelPositioning="OneLess" NewLinesForBracesInTypes="True" NewLinesForBracesInMethods="True" NewLinesForBracesInProperties="True" NewLinesForBracesInAccessors="True" NewLinesForBracesInAnonymousMethods="True" NewLinesForBracesInControlBlocks="True" NewLinesForBracesInAnonymousTypes="True" NewLinesForBracesInObjectCollectionArrayInitializers="True" NewLinesForBracesInLambdaExpressionBody="True" NewLineForElse="True" NewLineForCatch="True" NewLineForFinally="True" SpacingAfterMethodDeclarationName="False" SpaceWithinMethodDeclarationParenthesis="False" SpaceBetweenEmptyMethodDeclarationParentheses="False" SpaceAfterMethodCallName="False" SpaceWithinMethodCallParentheses="False" SpaceBetweenEmptyMethodCallParentheses="False" SpaceWithinExpressionParentheses="False" SpaceWithinCastParentheses="False" SpaceWithinOtherParentheses="False" SpaceAfterCast="False" SpacesIgnoreAroundVariableDeclaration="False" SpaceBeforeOpenSquareBracket="False" SpaceBetweenEmptySquareBrackets="False" SpaceWithinSquareBrackets="False" SpaceAfterColonInBaseTypeDeclaration="True" SpaceAfterComma="True" SpaceAfterDot="False" SpaceAfterSemicolonsInForStatement="True" SpaceBeforeColonInBaseTypeDeclaration="True" SpaceBeforeComma="False" SpaceBeforeDot="False" SpaceBeforeSemicolonsInForStatement="False" SpacingAroundBinaryOperator="Single" WrappingPreserveSingleLine="True" WrappingKeepStatementsOnSingleLine="True" PlaceSystemDirectiveFirst="True" NewLineForMembersInObjectInit="False" NewLineForMembersInAnonymousTypes="False" NewLineForClausesInQuery="False" SpaceAfterControlFlowStatementKeyword="False" scope="text/x-csharp" /> <CSharpFormattingPolicy IndentBlock="True" IndentBraces="False" IndentSwitchSection="True" IndentSwitchCaseSection="True" LabelPositioning="OneLess" NewLinesForBracesInTypes="True" NewLinesForBracesInMethods="True" NewLinesForBracesInProperties="True" NewLinesForBracesInAccessors="True" NewLinesForBracesInAnonymousMethods="True" NewLinesForBracesInControlBlocks="True" NewLinesForBracesInAnonymousTypes="True" NewLinesForBracesInObjectCollectionArrayInitializers="True" NewLinesForBracesInLambdaExpressionBody="True" NewLineForElse="True" NewLineForCatch="True" NewLineForFinally="True" SpacingAfterMethodDeclarationName="False" SpaceWithinMethodDeclarationParenthesis="False" SpaceBetweenEmptyMethodDeclarationParentheses="False" SpaceAfterMethodCallName="False" SpaceWithinMethodCallParentheses="False" SpaceBetweenEmptyMethodCallParentheses="False" SpaceWithinExpressionParentheses="False" SpaceWithinCastParentheses="False" SpaceWithinOtherParentheses="False" SpaceAfterCast="False" SpacesIgnoreAroundVariableDeclaration="False" SpaceBeforeOpenSquareBracket="False" SpaceBetweenEmptySquareBrackets="False" SpaceWithinSquareBrackets="False" SpaceAfterColonInBaseTypeDeclaration="True" SpaceAfterComma="True" SpaceAfterDot="False" SpaceAfterSemicolonsInForStatement="True" SpaceBeforeColonInBaseTypeDeclaration="True" SpaceBeforeComma="False" SpaceBeforeDot="False" SpaceBeforeSemicolonsInForStatement="False" SpacingAroundBinaryOperator="Single" WrappingPreserveSingleLine="True" WrappingKeepStatementsOnSingleLine="True" PlaceSystemDirectiveFirst="True" NewLineForMembersInObjectInit="False" NewLineForMembersInAnonymousTypes="False" NewLineForClausesInQuery="False" SpaceAfterControlFlowStatementKeyword="False" scope="text/x-csharp"/>
<DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild" /> <DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild"/>
</Policies> </Policies>
</Properties> </Properties>
</MonoDevelop> </MonoDevelop>
</ProjectExtensions> </ProjectExtensions>
<PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'"> <PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">
<!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you --> <!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
<!-- have to teach MSBuild where the Mono copy of the reference asssemblies is --> <!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
<!-- Look in the standard install locations --> <!-- Look in the standard install locations -->
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono>
<!-- If we found Mono reference assemblies, then use them --> <!-- If we found Mono reference assemblies, then use them -->
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
<EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride> <EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride>
<!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 --> <!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 -->
<AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths> <AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -39,63 +39,35 @@ using Schemas;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Enabled checksums</summary>
/// Enabled checksums
/// </summary>
[Flags] [Flags]
public enum EnableChecksum public enum EnableChecksum
{ {
/// <summary> /// <summary>Enables Adler-32</summary>
/// Enables Adler-32
/// </summary>
Adler32 = 1, Adler32 = 1,
/// <summary> /// <summary>Enables CRC-16</summary>
/// Enables CRC-16 Crc16 = 2,
/// </summary> /// <summary>Enables CRC-32</summary>
Crc16 = 2, Crc32 = 4,
/// <summary> /// <summary>Enables CRC-64</summary>
/// Enables CRC-32 Crc64 = 8,
/// </summary> /// <summary>Enables MD5</summary>
Crc32 = 4, Md5 = 16,
/// <summary> /// <summary>Enables SHA1</summary>
/// Enables CRC-64 Sha1 = 64,
/// </summary> /// <summary>Enables SHA2-256</summary>
Crc64 = 8, Sha256 = 128,
/// <summary> /// <summary>Enables SHA2-384</summary>
/// Enables MD5 Sha384 = 256,
/// </summary> /// <summary>Enables SHA2-512</summary>
Md5 = 16, Sha512 = 512,
/// <summary> /// <summary>Enables SpamSum</summary>
/// Enables SHA1
/// </summary>
Sha1 = 64,
/// <summary>
/// Enables SHA2-256
/// </summary>
Sha256 = 128,
/// <summary>
/// Enables SHA2-384
/// </summary>
Sha384 = 256,
/// <summary>
/// Enables SHA2-512
/// </summary>
Sha512 = 512,
/// <summary>
/// Enables SpamSum
/// </summary>
SpamSum = 1024, SpamSum = 1024,
/// <summary> /// <summary>Enables Fletcher-16</summary>
/// Enables Fletcher-16
/// </summary>
Fletcher16 = 2048, Fletcher16 = 2048,
/// <summary> /// <summary>Enables Fletcher-32</summary>
/// Enables Fletcher-32
/// </summary>
Fletcher32 = 4096, Fletcher32 = 4096,
/// <summary> /// <summary>Enables all known checksums</summary>
/// Enables all known checksums
/// </summary>
All = Adler32 | Crc16 | Crc32 | Crc64 | Md5 | Sha1 | Sha256 | Sha384 | Sha512 | SpamSum | Fletcher16 | All = Adler32 | Crc16 | Crc32 | Crc64 | Md5 | Sha1 | Sha256 | Sha384 | Sha512 | SpamSum | Fletcher16 |
Fletcher32 Fletcher32
} }
@@ -141,9 +113,7 @@ namespace Aaru.Core
HashPacket _spamsumPkt; HashPacket _spamsumPkt;
Thread _spamsumThread; Thread _spamsumThread;
/// <summary> /// <summary>Initializes an instance of the checksum operations</summary>
/// Initializes an instance of the checksum operations
/// </summary>
/// <param name="enabled">Enabled checksums</param> /// <param name="enabled">Enabled checksums</param>
public Checksum(EnableChecksum enabled = EnableChecksum.All) public Checksum(EnableChecksum enabled = EnableChecksum.All)
{ {
@@ -283,9 +253,7 @@ namespace Aaru.Core
_f32Thread = new Thread(UpdateHash); _f32Thread = new Thread(UpdateHash);
} }
/// <summary> /// <summary>Updates the checksum with new data</summary>
/// Updates the checksum with new data
/// </summary>
/// <param name="data">New data</param> /// <param name="data">New data</param>
public void Update(byte[] data) public void Update(byte[] data)
{ {
@@ -411,9 +379,7 @@ namespace Aaru.Core
_f32Thread = new Thread(UpdateHash); _f32Thread = new Thread(UpdateHash);
} }
/// <summary> /// <summary>Finishes the checksums</summary>
/// Finishes the checksums
/// </summary>
/// <returns>Returns the checksum results</returns> /// <returns>Returns the checksum results</returns>
public List<ChecksumType> End() public List<ChecksumType> End()
{ {

View File

@@ -89,7 +89,9 @@ namespace Aaru.Core.Devices.Dumping
readonly ushort _retryPasses; readonly ushort _retryPasses;
readonly bool _retrySubchannel; readonly bool _retrySubchannel;
readonly bool _stopOnError; readonly bool _stopOnError;
readonly bool _storeEncrypted;
readonly DumpSubchannel _subchannel; readonly DumpSubchannel _subchannel;
readonly bool _titleKeys;
readonly bool _trim; readonly bool _trim;
readonly bool _useBufferedReads; readonly bool _useBufferedReads;
bool _aborted; bool _aborted;
@@ -105,8 +107,6 @@ namespace Aaru.Core.Devices.Dumping
int _speed; int _speed;
int _speedMultiplier; int _speedMultiplier;
bool _supportsPlextorD8; bool _supportsPlextorD8;
readonly bool _storeEncrypted;
readonly bool _titleKeys;
/// <summary>Initializes dumpers</summary> /// <summary>Initializes dumpers</summary>
/// <param name="doResume">Should resume?</param> /// <param name="doResume">Should resume?</param>
@@ -275,9 +275,7 @@ namespace Aaru.Core.Devices.Dumping
fs.Close(); fs.Close();
} }
/// <summary> /// <summary>Aborts the dump in progress</summary>
/// Aborts the dump in progress
/// </summary>
public void Abort() public void Abort()
{ {
_aborted = true; _aborted = true;

View File

@@ -428,6 +428,7 @@ namespace Aaru.Core.Devices.Dumping
} }
} }
} }
_dumpLog.WriteLine("Reading Disc Manufacturing Information"); _dumpLog.WriteLine("Reading Disc Manufacturing Information");
sense = _dev.ReadDiscStructure(out cmdBuf, out _, MmcDiscStructureMediaType.Dvd, 0, 0, sense = _dev.ReadDiscStructure(out cmdBuf, out _, MmcDiscStructureMediaType.Dvd, 0, 0,
@@ -458,8 +459,7 @@ namespace Aaru.Core.Devices.Dumping
sense = _dev.ScsiInquiry(out byte[] inqBuf, out _); sense = _dev.ScsiInquiry(out byte[] inqBuf, out _);
if(sense || if(sense || Inquiry.Decode(inqBuf)?.KreonPresent != true)
Inquiry.Decode(inqBuf)?.KreonPresent != true)
{ {
_dumpLog.WriteLine("Dumping Xbox Game Discs requires a drive with Kreon firmware."); _dumpLog.WriteLine("Dumping Xbox Game Discs requires a drive with Kreon firmware.");
@@ -532,7 +532,8 @@ namespace Aaru.Core.Devices.Dumping
sense = dvdDecrypt.ReadBusKey(out cmdBuf, out _, sense = dvdDecrypt.ReadBusKey(out cmdBuf, out _,
CSS_CPRM.DecodeLeadInCopyright(cmdBuf)?. CSS_CPRM.DecodeLeadInCopyright(cmdBuf)?.
CopyrightType ?? CopyrightType.NoProtection, _dev.Timeout, out _); CopyrightType ?? CopyrightType.NoProtection,
_dev.Timeout, out _);
if(!sense) if(!sense)
{ {

View File

@@ -36,9 +36,7 @@ namespace Aaru.Core.Devices.Dumping
{ {
public partial class Dump public partial class Dump
{ {
/// <summary> /// <summary>Dumps an NVMe device</summary>
/// Dumps an NVMe device
/// </summary>
public void NVMe() => StoppingErrorMessage?.Invoke("NVMe devices not yet supported."); public void NVMe() => StoppingErrorMessage?.Invoke("NVMe devices not yet supported.");
} }
} }

View File

@@ -56,7 +56,7 @@ namespace Aaru.Core.Devices.Dumping
if(sense) if(sense)
{ {
var decSense = Sense.Decode(senseBuf); DecodedSense? decSense = Sense.Decode(senseBuf);
if(decSense.HasValue) if(decSense.HasValue)
{ {

View File

@@ -327,9 +327,9 @@ namespace Aaru.Core.Devices.Dumping
} }
AaruConsole.DebugWriteLine("Dump-media command", "Unlocked total size: {0} sectors", totalSize); AaruConsole.DebugWriteLine("Dump-media command", "Unlocked total size: {0} sectors", totalSize);
ulong blocks = totalSize + 1; ulong blocks = totalSize + 1;
var wxRipperPfiNullable = PFI.Decode(readBuffer, MediaType.DVDROM); PFI.PhysicalFormatInformation? wxRipperPfiNullable = PFI.Decode(readBuffer, MediaType.DVDROM);
if(wxRipperPfiNullable == null) if(wxRipperPfiNullable == null)
{ {

View File

@@ -40,21 +40,17 @@ using Aaru.Decoders.ATA;
using Aaru.Decoders.DVD; using Aaru.Decoders.DVD;
using Aaru.Decoders.SCSI; using Aaru.Decoders.SCSI;
using Aaru.Decryption; using Aaru.Decryption;
using DVDDecryption = Aaru.Decryption.DVD.Dump;
using Aaru.Devices; using Aaru.Devices;
using Aaru.Helpers; using Aaru.Helpers;
using DVDDecryption = Aaru.Decryption.DVD.Dump;
using Inquiry = Aaru.CommonTypes.Structs.Devices.SCSI.Inquiry; using Inquiry = Aaru.CommonTypes.Structs.Devices.SCSI.Inquiry;
namespace Aaru.Core.Devices.Info namespace Aaru.Core.Devices.Info
{ {
/// <summary> /// <summary>Obtains and contains information about a device</summary>
/// Obtains and contains information about a device
/// </summary>
public partial class DeviceInfo public partial class DeviceInfo
{ {
/// <summary> /// <summary>Initializes an instance of this class for the specified device</summary>
/// Initializes an instance of this class for the specified device
/// </summary>
/// <param name="dev">Device</param> /// <param name="dev">Device</param>
public DeviceInfo(Device dev) public DeviceInfo(Device dev)
{ {

View File

@@ -32,134 +32,70 @@
namespace Aaru.Core.Devices.Info namespace Aaru.Core.Devices.Info
{ {
/// <summary> /// <summary>Contains information about Plextor features</summary>
/// Contains information about Plextor features
/// </summary>
public class Plextor public class Plextor
{ {
/// <summary> /// <summary>Access time limit</summary>
/// Access time limit public byte AccessTimeLimit;
/// </summary> /// <summary>Drive supports setting book type bit for DVD+R</summary>
public byte AccessTimeLimit; public bool BitSetting;
/// <summary> /// <summary>Drive supports setting book type bit for DVD+R DL</summary>
/// Drive supports setting book type bit for DVD+R public bool BitSettingDl;
/// </summary> /// <summary>CD read speed limit</summary>
public bool BitSetting; public byte CdReadSpeedLimit;
/// <summary> /// <summary>Time drive has spent reading CDs</summary>
/// Drive supports setting book type bit for DVD+R DL public uint CdReadTime;
/// </summary> /// <summary>CD write speed limit</summary>
public bool BitSettingDl; public byte CdWriteSpeedLimit;
/// <summary> /// <summary>Time drive has spent writing CDs</summary>
/// CD read speed limit public uint CdWriteTime;
/// </summary> /// <summary>Total number of loaded discs</summary>
public byte CdReadSpeedLimit;
/// <summary>
/// Time drive has spent reading CDs
/// </summary>
public uint CdReadTime;
/// <summary>
/// CD write speed limit
/// </summary>
public byte CdWriteSpeedLimit;
/// <summary>
/// Time drive has spent writing CDs
/// </summary>
public uint CdWriteTime;
/// <summary>
/// Total number of loaded discs
/// </summary>
public ushort Discs; public ushort Discs;
/// <summary> /// <summary>Drive supports test writing DVD+</summary>
/// Drive supports test writing DVD+ public bool DvdPlusWriteTest;
/// </summary> /// <summary>DVD read limit</summary>
public bool DvdPlusWriteTest; public byte DvdReadSpeedLimit;
/// <summary> /// <summary>Time drive has spent reading DVDs</summary>
/// DVD read limit public uint DvdReadTime;
/// </summary> /// <summary>Time drive has spent writing DVDs</summary>
public byte DvdReadSpeedLimit; public uint DvdWriteTime;
/// <summary> /// <summary>Raw contents of EEPROM</summary>
/// Time drive has spent reading DVDs
/// </summary>
public uint DvdReadTime;
/// <summary>
/// Time drive has spent writing DVDs
/// </summary>
public uint DvdWriteTime;
/// <summary>
/// Raw contents of EEPROM
/// </summary>
public byte[] Eeprom; public byte[] Eeprom;
/// <summary> /// <summary>Drive supports GigaRec</summary>
/// Drive supports GigaRec public bool GigaRec;
/// </summary> /// <summary>Drive will show recordable CDs as embossed</summary>
public bool GigaRec; public bool HidesRecordables;
/// <summary> /// <summary>Drive will hide sessions</summary>
/// Drive will show recordable CDs as embossed public bool HidesSessions;
/// </summary> /// <summary>Drive supports hiding recordable CDs and sessions</summary>
public bool HidesRecordables; public bool Hiding;
/// <summary> /// <summary>Drive is a DVD capable drive</summary>
/// Drive will hide sessions public bool IsDvd;
/// </summary> /// <summary>Drive supports PoweRec</summary>
public bool HidesSessions; public bool PoweRec;
/// <summary> /// <summary>Drive has PoweRec enabled</summary>
/// Drive supports hiding recordable CDs and sessions public bool PoweRecEnabled;
/// </summary> /// <summary>Last used PoweRec in KiB/sec</summary>
public bool Hiding;
/// <summary>
/// Drive is a DVD capable drive
/// </summary>
public bool IsDvd;
/// <summary>
/// Drive supports PoweRec
/// </summary>
public bool PoweRec;
/// <summary>
/// Drive has PoweRec enabled
/// </summary>
public bool PoweRecEnabled;
/// <summary>
/// Last used PoweRec in KiB/sec
/// </summary>
public ushort PoweRecLast; public ushort PoweRecLast;
/// <summary> /// <summary>Maximum supported PoweRec for currently inserted media in KiB/sec</summary>
/// Maximum supported PoweRec for currently inserted media in KiB/sec
/// </summary>
public ushort PoweRecMax; public ushort PoweRecMax;
/// <summary> /// <summary>Recommended supported PoweRec for currently inserted media in KiB/sec</summary>
/// Recommended supported PoweRec for currently inserted media in KiB/sec
/// </summary>
public ushort PoweRecRecommendedSpeed; public ushort PoweRecRecommendedSpeed;
/// <summary> /// <summary>Selected supported PoweRec for currently inserted media in KiB/sec</summary>
/// Selected supported PoweRec for currently inserted media in KiB/sec
/// </summary>
public ushort PoweRecSelected; public ushort PoweRecSelected;
/// <summary> /// <summary>Drive supports SecuRec</summary>
/// Drive supports SecuRec public bool SecuRec;
/// </summary> /// <summary>Drive supports SilentMode</summary>
public bool SecuRec; public bool SilentMode;
/// <summary> /// <summary>Drive has SilentMode enabled</summary>
/// Drive supports SilentMode public bool SilentModeEnabled;
/// </summary> /// <summary>Drive supports SpeedRead</summary>
public bool SilentMode; public bool SpeedRead;
/// <summary> /// <summary>Drive has SpeedRead enabled</summary>
/// Drive has SilentMode enabled public bool SpeedReadEnabled;
/// </summary> /// <summary>Drive supports VariRec</summary>
public bool SilentModeEnabled; public bool VariRec;
/// <summary> /// <summary>Drive supports VariRec for DVDs</summary>
/// Drive supports SpeedRead public bool VariRecDvd;
/// </summary>
public bool SpeedRead;
/// <summary>
/// Drive has SpeedRead enabled
/// </summary>
public bool SpeedReadEnabled;
/// <summary>
/// Drive supports VariRec
/// </summary>
public bool VariRec;
/// <summary>
/// Drive supports VariRec for DVDs
/// </summary>
public bool VariRecDvd;
} }
} }

View File

@@ -44,189 +44,97 @@ namespace Aaru.Core.Devices.Info
{ {
public partial class DeviceInfo public partial class DeviceInfo
{ {
/// <summary> /// <summary>Raw IDENTIFY DEVICE response</summary>
/// Raw IDENTIFY DEVICE response public byte[] AtaIdentify { get; }
/// </summary> /// <summary>Raw IDENTIFY PACKET DEVICE response</summary>
public byte[] AtaIdentify { get; } public byte[] AtapiIdentify { get; }
/// <summary> /// <summary>Raw INQUIRY response</summary>
/// Raw IDENTIFY PACKET DEVICE response public byte[] ScsiInquiryData { get; }
/// </summary> /// <summary>Decoded INQUIRY response</summary>
public byte[] AtapiIdentify { get; } public Inquiry? ScsiInquiry { get; }
/// <summary> /// <summary>Response for ATA Memory Card Pass Through</summary>
/// Raw INQUIRY response public AtaErrorRegistersChs? AtaMcptError { get; }
/// </summary> /// <summary>List of raw EVPD page indexed by page number</summary>
public byte[] ScsiInquiryData { get; } public Dictionary<byte, byte[]> ScsiEvpdPages { get; }
/// <summary> /// <summary>Decoded MODE SENSE response</summary>
/// Decoded INQUIRY response public Modes.DecodedMode? ScsiMode { get; }
/// </summary> /// <summary>Raw MODE SENSE(6) response</summary>
public Inquiry? ScsiInquiry { get; } public byte[] ScsiModeSense6 { get; }
/// <summary> /// <summary>Raw MODE SENSE(10) response</summary>
/// Response for ATA Memory Card Pass Through public byte[] ScsiModeSense10 { get; }
/// </summary> /// <summary>Raw GET CONFIGURATION response</summary>
public AtaErrorRegistersChs? AtaMcptError { get; } public byte[] MmcConfiguration { get; }
/// <summary> /// <summary>Decoded Plextor features</summary>
/// List of raw EVPD page indexed by page number public Plextor PlextorFeatures { get; }
/// </summary> /// <summary>Decoded Kreon features</summary>
public Dictionary<byte, byte[]> ScsiEvpdPages { get; } public KreonFeatures KreonFeatures { get; }
/// <summary> /// <summary>Raw GET BLOCK LIMITS support</summary>
/// Decoded MODE SENSE response public byte[] BlockLimits { get; }
/// </summary> /// <summary>Raw density support</summary>
public Modes.DecodedMode? ScsiMode { get; } public byte[] DensitySupport { get; }
/// <summary> /// <summary>Decoded density support</summary>
/// Raw MODE SENSE(6) response public DensitySupport.DensitySupportHeader? DensitySupportHeader { get; }
/// </summary> /// <summary>Raw medium density support</summary>
public byte[] ScsiModeSense6 { get; } public byte[] MediumDensitySupport { get; }
/// <summary> /// <summary>Decoded medium density support</summary>
/// Raw MODE SENSE(10) response
/// </summary>
public byte[] ScsiModeSense10 { get; }
/// <summary>
/// Raw GET CONFIGURATION response
/// </summary>
public byte[] MmcConfiguration { get; }
/// <summary>
/// Decoded Plextor features
/// </summary>
public Plextor PlextorFeatures { get; }
/// <summary>
/// Decoded Kreon features
/// </summary>
public KreonFeatures KreonFeatures { get; }
/// <summary>
/// Raw GET BLOCK LIMITS support
/// </summary>
public byte[] BlockLimits { get; }
/// <summary>
/// Raw density support
/// </summary>
public byte[] DensitySupport { get; }
/// <summary>
/// Decoded density support
/// </summary>
public DensitySupport.DensitySupportHeader? DensitySupportHeader { get; }
/// <summary>
/// Raw medium density support
/// </summary>
public byte[] MediumDensitySupport { get; }
/// <summary>
/// Decoded medium density support
/// </summary>
public DensitySupport.MediaTypeSupportHeader? MediaTypeSupportHeader { get; } public DensitySupport.MediaTypeSupportHeader? MediaTypeSupportHeader { get; }
/// <summary> /// <summary>Raw CID registers</summary>
/// Raw CID registers public byte[] CID { get; }
/// </summary> /// <summary>Raw CSD</summary>
public byte[] CID { get; } public byte[] CSD { get; }
/// <summary> /// <summary>Raw extended CSD</summary>
/// Raw CSD public byte[] ExtendedCSD { get; }
/// </summary> /// <summary>Raw SCR registers</summary>
public byte[] CSD { get; } public byte[] SCR { get; }
/// <summary> /// <summary>Raw OCR registers</summary>
/// Raw extended CSD public byte[] OCR { get; }
/// </summary> /// <summary>Aaru's device type</summary>
public byte[] ExtendedCSD { get; } public DeviceType Type { get; }
/// <summary> /// <summary>Device manufacturer</summary>
/// Raw SCR registers public string Manufacturer { get; }
/// </summary> /// <summary>Device model</summary>
public byte[] SCR { get; } public string Model { get; }
/// <summary> /// <summary>Device firmware version or revision</summary>
/// Raw OCR registers public string FirmwareRevision { get; }
/// </summary> /// <summary>Device serial number</summary>
public byte[] OCR { get; } public string Serial { get; }
/// <summary> /// <summary>SCSI Peripheral Device Type</summary>
/// Aaru's device type public PeripheralDeviceTypes ScsiType { get; }
/// </summary> /// <summary>Is media removable from device?</summary>
public DeviceType Type { get; } public bool IsRemovable { get; }
/// <summary> /// <summary>Is device attached via USB?</summary>
/// Device manufacturer public bool IsUsb { get; }
/// </summary> /// <summary>USB vendor ID</summary>
public string Manufacturer { get; } public ushort UsbVendorId { get; }
/// <summary> /// <summary>USB product ID</summary>
/// Device model public ushort UsbProductId { get; }
/// </summary> /// <summary>Raw USB descriptors</summary>
public string Model { get; } public byte[] UsbDescriptors { get; }
/// <summary> /// <summary>USB manufacturer string</summary>
/// Device firmware version or revision public string UsbManufacturerString { get; }
/// </summary> /// <summary>USB product string</summary>
public string FirmwareRevision { get; } public string UsbProductString { get; }
/// <summary> /// <summary>USB serial number string</summary>
/// Device serial number public string UsbSerialString { get; }
/// </summary> /// <summary>Is device attached via FireWire?</summary>
public string Serial { get; } public bool IsFireWire { get; }
/// <summary> /// <summary>FireWire's device GUID</summary>
/// SCSI Peripheral Device Type public ulong FireWireGuid { get; }
/// </summary> /// <summary>FireWire's device model ID</summary>
public PeripheralDeviceTypes ScsiType { get; } public uint FireWireModel { get; }
/// <summary> /// <summary>FireWire's device model name</summary>
/// Is media removable from device? public string FireWireModelName { get; }
/// </summary> /// <summary>FireWire's device vendor ID</summary>
public bool IsRemovable { get; } public uint FireWireVendor { get; }
/// <summary> /// <summary>FireWire's device vendor name</summary>
/// Is device attached via USB? public string FireWireVendorName { get; }
/// </summary> /// <summary>Is device a CompactFlash device?</summary>
public bool IsUsb { get; } public bool IsCompactFlash { get; }
/// <summary> /// <summary>Is device a PCMCIA or CardBus device?</summary>
/// USB vendor ID public bool IsPcmcia { get; }
/// </summary> /// <summary>PCMCIA/CardBus CIS</summary>
public ushort UsbVendorId { get; } public byte[] Cis { get; }
/// <summary> /// <summary>MMC device CSS/CPRM Region Protection Code</summary>
/// USB product ID public CSS_CPRM.RegionalPlaybackControlState? RPC { get; }
/// </summary>
public ushort UsbProductId { get; }
/// <summary>
/// Raw USB descriptors
/// </summary>
public byte[] UsbDescriptors { get; }
/// <summary>
/// USB manufacturer string
/// </summary>
public string UsbManufacturerString { get; }
/// <summary>
/// USB product string
/// </summary>
public string UsbProductString { get; }
/// <summary>
/// USB serial number string
/// </summary>
public string UsbSerialString { get; }
/// <summary>
/// Is device attached via FireWire?
/// </summary>
public bool IsFireWire { get; }
/// <summary>
/// FireWire's device GUID
/// </summary>
public ulong FireWireGuid { get; }
/// <summary>
/// FireWire's device model ID
/// </summary>
public uint FireWireModel { get; }
/// <summary>
/// FireWire's device model name
/// </summary>
public string FireWireModelName { get; }
/// <summary>
/// FireWire's device vendor ID
/// </summary>
public uint FireWireVendor { get; }
/// <summary>
/// FireWire's device vendor name
/// </summary>
public string FireWireVendorName { get; }
/// <summary>
/// Is device a CompactFlash device?
/// </summary>
public bool IsCompactFlash { get; }
/// <summary>
/// Is device a PCMCIA or CardBus device?
/// </summary>
public bool IsPcmcia { get; }
/// <summary>
/// PCMCIA/CardBus CIS
/// </summary>
public byte[] Cis { get; }
/// <summary>
/// MMC device CSS/CPRM Region Protection Code
/// </summary>
public CSS_CPRM.RegionalPlaybackControlState? RPC { get; }
} }
} }

View File

@@ -41,9 +41,7 @@ namespace Aaru.Core.Devices.Report
{ {
public sealed partial class DeviceReport public sealed partial class DeviceReport
{ {
/// <summary> /// <summary>Creates a report for media inserted into an ATA device</summary>
/// Creates a report for media inserted into an ATA device
/// </summary>
/// <returns>Media report</returns> /// <returns>Media report</returns>
public TestedMedia ReportAtaMedia() public TestedMedia ReportAtaMedia()
{ {
@@ -725,9 +723,7 @@ namespace Aaru.Core.Devices.Report
return capabilities; return capabilities;
} }
/// <summary> /// <summary>Clear serial numbers and other private fields from an IDENTIFY ATA DEVICE response</summary>
/// Clear serial numbers and other private fields from an IDENTIFY ATA DEVICE response
/// </summary>
/// <param name="buffer">IDENTIFY ATA DEVICE response</param> /// <param name="buffer">IDENTIFY ATA DEVICE response</param>
/// <returns>IDENTIFY ATA DEVICE response without the private fields</returns> /// <returns>IDENTIFY ATA DEVICE response without the private fields</returns>
public static byte[] ClearIdentify(byte[] buffer) public static byte[] ClearIdentify(byte[] buffer)

View File

@@ -38,9 +38,7 @@ namespace Aaru.Core.Devices.Report
{ {
readonly Device _dev; readonly Device _dev;
/// <summary> /// <summary>Initializes a device report for the specified device (must be opened)</summary>
/// Initializes a device report for the specified device (must be opened)
/// </summary>
/// <param name="device">Device</param> /// <param name="device">Device</param>
public DeviceReport(Device device) => _dev = device; public DeviceReport(Device device) => _dev = device;
} }

View File

@@ -45,9 +45,7 @@ namespace Aaru.Core.Devices.Report
{ {
public sealed partial class DeviceReport public sealed partial class DeviceReport
{ {
/// <summary> /// <summary>Tries and checks reading a GD-ROM disc using the swap disc trick and adds the result to a device report</summary>
/// Tries and checks reading a GD-ROM disc using the swap disc trick and adds the result to a device report
/// </summary>
/// <param name="report">Device report</param> /// <param name="report">Device report</param>
public void ReportGdRomSwapTrick(ref DeviceReportV2 report) public void ReportGdRomSwapTrick(ref DeviceReportV2 report)
{ {

View File

@@ -71,9 +71,7 @@ namespace Aaru.Core.Devices.Report
return response; return response;
} }
/// <summary> /// <summary>Creates a report for the GET CONFIGURATION response of an MMC device</summary>
/// Creates a report for the GET CONFIGURATION response of an MMC device
/// </summary>
/// <returns>MMC features report</returns> /// <returns>MMC features report</returns>
public MmcFeatures ReportMmcFeatures() public MmcFeatures ReportMmcFeatures()
{ {
@@ -574,9 +572,7 @@ namespace Aaru.Core.Devices.Report
return report; return report;
} }
/// <summary> /// <summary>Creates a report for media inserted into an MMC device</summary>
/// Creates a report for media inserted into an MMC device
/// </summary>
/// <param name="mediaType">Expected media type name</param> /// <param name="mediaType">Expected media type name</param>
/// <param name="tryPlextor">Try Plextor vendor commands</param> /// <param name="tryPlextor">Try Plextor vendor commands</param>
/// <param name="tryPioneer">Try Pioneer vendor commands</param> /// <param name="tryPioneer">Try Pioneer vendor commands</param>

View File

@@ -41,9 +41,7 @@ namespace Aaru.Core.Devices.Report
{ {
public sealed partial class DeviceReport public sealed partial class DeviceReport
{ {
/// <summary> /// <summary>Creates a report from a SCSI Sequential Commands device</summary>
/// Creates a report from a SCSI Sequential Commands device
/// </summary>
/// <returns>SSC report</returns> /// <returns>SSC report</returns>
public Ssc ReportScsiSsc() public Ssc ReportScsiSsc()
{ {
@@ -141,9 +139,7 @@ namespace Aaru.Core.Devices.Report
return report; return report;
} }
/// <summary> /// <summary>Creates a report for media inserted into an SSC device</summary>
/// Creates a report for media inserted into an SSC device
/// </summary>
/// <returns>Media report</returns> /// <returns>Media report</returns>
public TestedSequentialMedia ReportSscMedia() public TestedSequentialMedia ReportSscMedia()
{ {

View File

@@ -45,9 +45,7 @@ namespace Aaru.Core.Devices.Report
{ {
public sealed partial class DeviceReport public sealed partial class DeviceReport
{ {
/// <summary> /// <summary>Creates a report for the SCSI INQUIRY response</summary>
/// Creates a report for the SCSI INQUIRY response
/// </summary>
/// <returns>SCSI report</returns> /// <returns>SCSI report</returns>
public Scsi ReportScsiInquiry() public Scsi ReportScsiInquiry()
{ {
@@ -89,9 +87,7 @@ namespace Aaru.Core.Devices.Report
return inquiry; return inquiry;
} }
/// <summary> /// <summary>Returns a list of decoded SCSI EVPD pages</summary>
/// Returns a list of decoded SCSI EVPD pages
/// </summary>
/// <param name="vendor">Decoded SCSI vendor identification</param> /// <param name="vendor">Decoded SCSI vendor identification</param>
/// <returns>List of decoded SCSI EVPD pages</returns> /// <returns>List of decoded SCSI EVPD pages</returns>
public List<ScsiPage> ReportEvpdPages(string vendor) public List<ScsiPage> ReportEvpdPages(string vendor)
@@ -196,9 +192,7 @@ namespace Aaru.Core.Devices.Report
return pageResponse; return pageResponse;
} }
/// <summary> /// <summary>Adds reports for the decoded SCSI MODE SENSE pages to a device report</summary>
/// Adds reports for the decoded SCSI MODE SENSE pages to a device report
/// </summary>
/// <param name="report">Device report</param> /// <param name="report">Device report</param>
/// <param name="cdromMode">Returns raw MODE SENSE page 2Ah, aka CD-ROM page</param> /// <param name="cdromMode">Returns raw MODE SENSE page 2Ah, aka CD-ROM page</param>
/// <param name="mediumType">Returns decoded list of supported media types response</param> /// <param name="mediumType">Returns decoded list of supported media types response</param>
@@ -434,9 +428,7 @@ namespace Aaru.Core.Devices.Report
report.SCSI.ModeSense.ModePages = modePages; report.SCSI.ModeSense.ModePages = modePages;
} }
/// <summary> /// <summary>Creates a report for media inserted into a SCSI device</summary>
/// Creates a report for media inserted into a SCSI device
/// </summary>
/// <returns>Media report</returns> /// <returns>Media report</returns>
public TestedMedia ReportScsiMedia() public TestedMedia ReportScsiMedia()
{ {
@@ -703,9 +695,7 @@ namespace Aaru.Core.Devices.Report
return mediaTest; return mediaTest;
} }
/// <summary> /// <summary>Creates a media report for a non-removable SCSI device</summary>
/// Creates a media report for a non-removable SCSI device
/// </summary>
/// <returns>Media report</returns> /// <returns>Media report</returns>
public TestedMedia ReportScsi() public TestedMedia ReportScsi()
{ {

View File

@@ -68,9 +68,7 @@ namespace Aaru.Core.Devices.Scanning
_useBufferedReads = useBufferedReads; _useBufferedReads = useBufferedReads;
} }
/// <summary> /// <summary>Starts a media scan</summary>
/// Starts a media scan
/// </summary>
/// <returns>Media scan results</returns> /// <returns>Media scan results</returns>
/// <exception cref="NotSupportedException">Unknown device type</exception> /// <exception cref="NotSupportedException">Unknown device type</exception>
public ScanResults Scan() public ScanResults Scan()
@@ -87,9 +85,7 @@ namespace Aaru.Core.Devices.Scanning
} }
} }
/// <summary> /// <summary>Aborts the running media scan</summary>
/// Aborts the running media scan
/// </summary>
public void Abort() => _aborted = true; public void Abort() => _aborted = true;
/// <summary>Event raised when the progress bar is not longer needed</summary> /// <summary>Event raised when the progress bar is not longer needed</summary>
@@ -105,12 +101,12 @@ namespace Aaru.Core.Devices.Scanning
/// <summary>Event raised to update the status of an indeterminate progress bar</summary> /// <summary>Event raised to update the status of an indeterminate progress bar</summary>
public event PulseProgressHandler PulseProgress; public event PulseProgressHandler PulseProgress;
/// <summary>Updates lists of time taken on scanning from the specified sector</summary> /// <summary>Updates lists of time taken on scanning from the specified sector</summary>
public event ScanTimeHandler ScanTime; public event ScanTimeHandler ScanTime;
/// <summary>Specified a number of blocks could not be read on scan</summary> /// <summary>Specified a number of blocks could not be read on scan</summary>
public event ScanUnreadableHandler ScanUnreadable; public event ScanUnreadableHandler ScanUnreadable;
/// <summary>Initializes a block map that's going to be filled with a media scan</summary> /// <summary>Initializes a block map that's going to be filled with a media scan</summary>
public event InitBlockMapHandler InitBlockMap; public event InitBlockMapHandler InitBlockMap;
/// <summary>Sends the speed of scanning a specific sector</summary> /// <summary>Sends the speed of scanning a specific sector</summary>
public event ScanSpeedHandler ScanSpeed; public event ScanSpeedHandler ScanSpeed;
} }
} }

View File

@@ -41,17 +41,13 @@ using Aaru.Console;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Media image entropy operations</summary>
/// Media image entropy operations
/// </summary>
public sealed class Entropy public sealed class Entropy
{ {
readonly bool _debug; readonly bool _debug;
readonly IMediaImage _inputFormat; readonly IMediaImage _inputFormat;
/// <summary> /// <summary>Initializes an instance with the specified parameters</summary>
/// Initializes an instance with the specified parameters
/// </summary>
/// <param name="debug">Debug enabled</param> /// <param name="debug">Debug enabled</param>
/// <param name="inputFormat">Media image</param> /// <param name="inputFormat">Media image</param>
public Entropy(bool debug, IMediaImage inputFormat) public Entropy(bool debug, IMediaImage inputFormat)
@@ -61,21 +57,19 @@ namespace Aaru.Core
} }
/// <summary>Event raised when a progress bar is needed</summary> /// <summary>Event raised when a progress bar is needed</summary>
public event InitProgressHandler InitProgressEvent; public event InitProgressHandler InitProgressEvent;
/// <summary>Event raised to update the values of a determinate progress bar</summary> /// <summary>Event raised to update the values of a determinate progress bar</summary>
public event UpdateProgressHandler UpdateProgressEvent; public event UpdateProgressHandler UpdateProgressEvent;
/// <summary>Event raised when the progress bar is not longer needed</summary> /// <summary>Event raised when the progress bar is not longer needed</summary>
public event EndProgressHandler EndProgressEvent; public event EndProgressHandler EndProgressEvent;
/// <summary>Event raised when a progress bar is needed</summary> /// <summary>Event raised when a progress bar is needed</summary>
public event InitProgressHandler InitProgress2Event; public event InitProgressHandler InitProgress2Event;
/// <summary>Event raised to update the values of a determinate progress bar</summary> /// <summary>Event raised to update the values of a determinate progress bar</summary>
public event UpdateProgressHandler UpdateProgress2Event; public event UpdateProgressHandler UpdateProgress2Event;
/// <summary>Event raised when the progress bar is not longer needed</summary> /// <summary>Event raised when the progress bar is not longer needed</summary>
public event EndProgressHandler EndProgress2Event; public event EndProgressHandler EndProgress2Event;
/// <summary> /// <summary>Calculates the tracks entropy</summary>
/// Calculates the tracks entropy
/// </summary>
/// <param name="duplicatedSectors">Checks for duplicated sectors</param> /// <param name="duplicatedSectors">Checks for duplicated sectors</param>
/// <returns>Calculated entropy</returns> /// <returns>Calculated entropy</returns>
public EntropyResults[] CalculateTracksEntropy(bool duplicatedSectors) public EntropyResults[] CalculateTracksEntropy(bool duplicatedSectors)
@@ -163,9 +157,7 @@ namespace Aaru.Core
return entropyResults.ToArray(); return entropyResults.ToArray();
} }
/// <summary> /// <summary>Calculates the media entropy</summary>
/// Calculates the media entropy
/// </summary>
/// <param name="duplicatedSectors">Checks for duplicated sectors</param> /// <param name="duplicatedSectors">Checks for duplicated sectors</param>
/// <returns>Calculated entropy</returns> /// <returns>Calculated entropy</returns>
public EntropyResults CalculateMediaEntropy(bool duplicatedSectors) public EntropyResults CalculateMediaEntropy(bool duplicatedSectors)
@@ -214,26 +206,16 @@ namespace Aaru.Core
} }
} }
/// <summary> /// <summary>Entropy results</summary>
/// Entropy results
/// </summary>
public struct EntropyResults public struct EntropyResults
{ {
/// <summary> /// <summary>Track number, if applicable</summary>
/// Track number, if applicable public uint Track;
/// </summary> /// <summary>Entropy</summary>
public uint Track;
/// <summary>
/// Entropy
/// </summary>
public double Entropy; public double Entropy;
/// <summary> /// <summary>Number of unique sectors</summary>
/// Number of unique sectors public int? UniqueSectors;
/// </summary> /// <summary>Number of total sectors</summary>
public int? UniqueSectors; public ulong Sectors;
/// <summary>
/// Number of total sectors
/// </summary>
public ulong Sectors;
} }
} }

View File

@@ -34,14 +34,10 @@ using Aaru.CommonTypes.Interop;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Prints the description of a system error number.</summary>
/// Prints the description of a system error number.
/// </summary>
public static class Error public static class Error
{ {
/// <summary> /// <summary>Prints the description of a system error number.</summary>
/// Prints the description of a system error number.
/// </summary>
/// <param name="errno">System error number.</param> /// <param name="errno">System error number.</param>
/// <returns>Error description.</returns> /// <returns>Error description.</returns>
public static string Print(int errno) public static string Print(int errno)

View File

@@ -37,9 +37,7 @@ using Aaru.CommonTypes.Interfaces;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Core filesystem operations</summary>
/// Core filesystem operations
/// </summary>
public static class Filesystems public static class Filesystems
{ {
/// <summary> /// <summary>

View File

@@ -36,14 +36,10 @@ using Aaru.CommonTypes.Interfaces;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Plugin base operations</summary>
/// Plugin base operations
/// </summary>
public static class GetPluginBase public static class GetPluginBase
{ {
/// <summary> /// <summary>Gets an instance with all the known plugins</summary>
/// Gets an instance with all the known plugins
/// </summary>
public static PluginBase Instance public static PluginBase Instance
{ {
get get
@@ -55,7 +51,7 @@ namespace Aaru.Core
IPluginRegister filesystemsRegister = new Aaru.Filesystems.Register(); IPluginRegister filesystemsRegister = new Aaru.Filesystems.Register();
IPluginRegister filtersRegister = new Filters.Register(); IPluginRegister filtersRegister = new Filters.Register();
IPluginRegister partitionsRegister = new Aaru.Partitions.Register(); IPluginRegister partitionsRegister = new Aaru.Partitions.Register();
IPluginRegister archiveRegister = new Aaru.Archives.Register(); IPluginRegister archiveRegister = new Archives.Register();
instance.AddPlugins(checksumRegister); instance.AddPlugins(checksumRegister);
instance.AddPlugins(imagesRegister); instance.AddPlugins(imagesRegister);
@@ -68,4 +64,4 @@ namespace Aaru.Core
} }
} }
} }
} }

View File

@@ -38,9 +38,7 @@ using Aaru.Console;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Core media image format operations</summary>
/// Core media image format operations
/// </summary>
public static class ImageFormat public static class ImageFormat
{ {
/// <summary>Detects the image plugin that recognizes the data inside a filter</summary> /// <summary>Detects the image plugin that recognizes the data inside a filter</summary>

View File

@@ -56,9 +56,7 @@ using Tuple = Aaru.Decoders.PCMCIA.Tuple;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Image information operations</summary>
/// Image information operations
/// </summary>
public static class ImageInfo public static class ImageInfo
{ {
const string MANUFACTURER_STRING = "Manufacturer"; const string MANUFACTURER_STRING = "Manufacturer";
@@ -70,9 +68,7 @@ namespace Aaru.Core
const string START_STRING = "Start"; const string START_STRING = "Start";
const string END_STRING = "End"; const string END_STRING = "End";
/// <summary> /// <summary>Prints image information to console</summary>
/// Prints image information to console
/// </summary>
/// <param name="imageFormat">Media image</param> /// <param name="imageFormat">Media image</param>
public static void PrintImageInfo(IMediaImage imageFormat) public static void PrintImageInfo(IMediaImage imageFormat)
{ {

View File

@@ -35,9 +35,7 @@ using Aaru.Decoders.SCSI;
namespace Aaru.Core.Logging namespace Aaru.Core.Logging
{ {
/// <summary> /// <summary>Logs errors</summary>
/// Logs errors
/// </summary>
public sealed class ErrorLog public sealed class ErrorLog
{ {
readonly StreamWriter _logSw; readonly StreamWriter _logSw;
@@ -389,13 +387,14 @@ namespace Aaru.Core.Logging
prettySense = prettySense.Replace("\n", " - "); prettySense = prettySense.Replace("\n", " - ");
_logSw.WriteLine("SCSI command {0} error: SENSE {1} ASC {2:X2}h ASCQ {3:X2}h, {4}, {5}.", command, _logSw.WriteLine("SCSI command {0} error: SENSE {1} ASC {2:X2}h ASCQ {3:X2}h, {4}, {5}.", command,
decodedSense.Value.SenseKey, decodedSense.Value.ASC, decodedSense.Value.ASCQ, hexSense, decodedSense.Value.SenseKey, decodedSense.Value.ASC, decodedSense.Value.ASCQ,
prettySense); hexSense, prettySense);
} }
else else
{ {
_logSw.WriteLine("SCSI command {0} error: SENSE {1} ASC {2:X2}h ASCQ {3:X2}h, {4}.", command, _logSw.WriteLine("SCSI command {0} error: SENSE {1} ASC {2:X2}h ASCQ {3:X2}h, {4}.", command,
decodedSense.Value.SenseKey, decodedSense.Value.ASC, decodedSense.Value.ASCQ, hexSense); decodedSense.Value.SenseKey, decodedSense.Value.ASC, decodedSense.Value.ASCQ,
hexSense);
} }
} }
else else
@@ -456,13 +455,14 @@ namespace Aaru.Core.Logging
prettySense = prettySense.Replace("\n", " - "); prettySense = prettySense.Replace("\n", " - ");
_logSw.WriteLine("SCSI reading LBA {0} error: SENSE {1} ASC {2:X2}h ASCQ {3:X2}h, {4}, {5}.", block, _logSw.WriteLine("SCSI reading LBA {0} error: SENSE {1} ASC {2:X2}h ASCQ {3:X2}h, {4}, {5}.", block,
decodedSense.Value.SenseKey, decodedSense.Value.ASC, decodedSense.Value.ASCQ, hexSense, decodedSense.Value.SenseKey, decodedSense.Value.ASC, decodedSense.Value.ASCQ,
prettySense); hexSense, prettySense);
} }
else else
{ {
_logSw.WriteLine("SCSI reading LBA {0} error: SENSE {1} ASC {2:X2}h ASCQ {3:X2}h, {4}.", block, _logSw.WriteLine("SCSI reading LBA {0} error: SENSE {1} ASC {2:X2}h ASCQ {3:X2}h, {4}.", block,
decodedSense.Value.SenseKey, decodedSense.Value.ASC, decodedSense.Value.ASCQ, hexSense); decodedSense.Value.SenseKey, decodedSense.Value.ASC, decodedSense.Value.ASCQ,
hexSense);
} }
} }
else else

View File

@@ -32,9 +32,7 @@ using Aaru.Decoders.CD;
namespace Aaru.Core.Logging namespace Aaru.Core.Logging
{ {
/// <summary> /// <summary>Logs subchannel data</summary>
/// Logs subchannel data
/// </summary>
public class SubchannelLog public class SubchannelLog
{ {
const int SUB_SIZE = 96; const int SUB_SIZE = 96;
@@ -66,9 +64,7 @@ namespace Aaru.Core.Logging
_logSw.Close(); _logSw.Close();
} }
/// <summary> /// <summary>Logs an entry to the subchannel log</summary>
/// Logs an entry to the subchannel log
/// </summary>
/// <param name="subchannel">Subchannel data</param> /// <param name="subchannel">Subchannel data</param>
/// <param name="raw">Set to <c>true</c> if the subchannel data is raw</param> /// <param name="raw">Set to <c>true</c> if the subchannel data is raw</param>
/// <param name="startingLba">First LBA read from drive to retrieve the data</param> /// <param name="startingLba">First LBA read from drive to retrieve the data</param>
@@ -231,85 +227,59 @@ namespace Aaru.Core.Logging
_logSw.Flush(); _logSw.Flush();
} }
/// <summary> /// <summary>Logs message indicating the P subchannel has been fixed</summary>
/// Logs message indicating the P subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WritePFix(long lba) => WriteMessageWithPosition(lba, "fixed P subchannel using weight average."); public void WritePFix(long lba) => WriteMessageWithPosition(lba, "fixed P subchannel using weight average.");
/// <summary> /// <summary>Logs message indicating the R-W subchannels have been fixed</summary>
/// Logs message indicating the R-W subchannels have been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteRwFix(long lba) => WriteMessageWithPosition(lba, "fixed R-W subchannels writing empty data."); public void WriteRwFix(long lba) => WriteMessageWithPosition(lba, "fixed R-W subchannels writing empty data.");
/// <summary> /// <summary>Logs message indicating the ADR field of the Q subchannel has been fixed</summary>
/// Logs message indicating the ADR field of the Q subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQAdrFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct ADR."); public void WriteQAdrFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct ADR.");
/// <summary> /// <summary>Logs message indicating the CONTROL field of the Q subchannel has been fixed</summary>
/// Logs message indicating the CONTROL field of the Q subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQCtrlFix(long lba) => public void WriteQCtrlFix(long lba) =>
WriteMessageWithPosition(lba, "fixed Q subchannel with correct CONTROL."); WriteMessageWithPosition(lba, "fixed Q subchannel with correct CONTROL.");
/// <summary> /// <summary>Logs message indicating the ZERO field of the Q subchannel has been fixed</summary>
/// Logs message indicating the ZERO field of the Q subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQZeroFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct ZERO."); public void WriteQZeroFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct ZERO.");
/// <summary> /// <summary>Logs message indicating the TNO field of the Q subchannel has been fixed</summary>
/// Logs message indicating the TNO field of the Q subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQTnoFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct TNO."); public void WriteQTnoFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct TNO.");
/// <summary> /// <summary>Logs message indicating the INDEX field of the Q subchannel has been fixed</summary>
/// Logs message indicating the INDEX field of the Q subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQIndexFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct INDEX."); public void WriteQIndexFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct INDEX.");
/// <summary> /// <summary>Logs message indicating the relative position of the Q subchannel has been fixed</summary>
/// Logs message indicating the relative position of the Q subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQRelPosFix(long lba) => public void WriteQRelPosFix(long lba) =>
WriteMessageWithPosition(lba, "fixed Q subchannel with correct RELATIVE POSITION."); WriteMessageWithPosition(lba, "fixed Q subchannel with correct RELATIVE POSITION.");
/// <summary> /// <summary>Logs message indicating the absolute position of the Q subchannel has been fixed</summary>
/// Logs message indicating the absolute position of the Q subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQAbsPosFix(long lba) => public void WriteQAbsPosFix(long lba) =>
WriteMessageWithPosition(lba, "fixed Q subchannel with correct ABSOLUTE POSITION."); WriteMessageWithPosition(lba, "fixed Q subchannel with correct ABSOLUTE POSITION.");
/// <summary> /// <summary>Logs message indicating the CRC of the Q subchannel has been fixed</summary>
/// Logs message indicating the CRC of the Q subchannel has been fixed
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQCrcFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct CRC."); public void WriteQCrcFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with correct CRC.");
/// <summary> /// <summary>Logs message indicating the the Q subchannel has been fixed with a known good MCN</summary>
/// Logs message indicating the the Q subchannel has been fixed with a known good MCN
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQMcnFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with known good MCN."); public void WriteQMcnFix(long lba) => WriteMessageWithPosition(lba, "fixed Q subchannel with known good MCN.");
/// <summary> /// <summary>Logs message indicating the the Q subchannel has been fixed with a known good ISRC</summary>
/// Logs message indicating the the Q subchannel has been fixed with a known good ISRC
/// </summary>
/// <param name="lba">LBA fix belongs to</param> /// <param name="lba">LBA fix belongs to</param>
public void WriteQIsrcFix(long lba) => public void WriteQIsrcFix(long lba) =>
WriteMessageWithPosition(lba, "fixed Q subchannel with known good ISRC."); WriteMessageWithPosition(lba, "fixed Q subchannel with known good ISRC.");
/// <summary> /// <summary>Logs a message with a specified position</summary>
/// Logs a message with a specified position
/// </summary>
/// <param name="lba">LBA position</param> /// <param name="lba">LBA position</param>
/// <param name="message">Message to log</param> /// <param name="message">Message to log</param>
public void WriteMessageWithPosition(long lba, string message) public void WriteMessageWithPosition(long lba, string message)

View File

@@ -41,9 +41,7 @@ using Aaru.Helpers;
namespace Aaru.Core.Media namespace Aaru.Core.Media
{ {
/// <summary> /// <summary>Operations over CD based media</summary>
/// Operations over CD based media
/// </summary>
public static class CompactDisc public static class CompactDisc
{ {
/// <summary>Writes subchannel data to an image</summary> /// <summary>Writes subchannel data to an image</summary>

View File

@@ -51,9 +51,7 @@ using DMI = Aaru.Decoders.Xbox.DMI;
namespace Aaru.Core.Media.Detection namespace Aaru.Core.Media.Detection
{ {
/// <summary> /// <summary>Detects media type for MMC class devices</summary>
/// Detects media type for MMC class devices
/// </summary>
public static class MMC public static class MMC
{ {
/// <summary>SHA256 of PlayStation 2 boot sectors, seen in PAL discs</summary> /// <summary>SHA256 of PlayStation 2 boot sectors, seen in PAL discs</summary>

View File

@@ -45,9 +45,7 @@ using Device = Aaru.Database.Models.Device;
namespace Aaru.Core.Media.Info namespace Aaru.Core.Media.Info
{ {
/// <summary> /// <summary>Core operations for retrieving information about CD based media</summary>
/// Core operations for retrieving information about CD based media
/// </summary>
public static class CompactDisc public static class CompactDisc
{ {
/// <summary>Gets the offset bytes from a Compact Disc</summary> /// <summary>Gets the offset bytes from a Compact Disc</summary>

View File

@@ -53,14 +53,10 @@ using Inquiry = Aaru.CommonTypes.Structs.Devices.SCSI.Inquiry;
namespace Aaru.Core.Media.Info namespace Aaru.Core.Media.Info
{ {
/// <summary> /// <summary>Retrieves information from a SCSI device</summary>
/// Retrieves information from a SCSI device
/// </summary>
public sealed class ScsiInfo public sealed class ScsiInfo
{ {
/// <summary> /// <summary>Initializes this class with the specific device, and fills in the information</summary>
/// Initializes this class with the specific device, and fills in the information
/// </summary>
/// <param name="dev">Device</param> /// <param name="dev">Device</param>
public ScsiInfo(Device dev) public ScsiInfo(Device dev)
{ {
@@ -1499,281 +1495,143 @@ namespace Aaru.Core.Media.Info
MediaType = tmpType; MediaType = tmpType;
} }
/// <summary> /// <summary>Decoded DVD Pre-Recorded Information</summary>
/// Decoded DVD Pre-Recorded Information public PRI.PreRecordedInformation? DecodedDvdPrePitInformation { get; }
/// </summary> /// <summary>Decoded recordable DVD Physical Format Information</summary>
public PRI.PreRecordedInformation? DecodedDvdPrePitInformation { get; } public PFI.PhysicalFormatInformation? DecodedDvdrPfi { get; }
/// <summary> /// <summary>Raw media serial number</summary>
/// Decoded recordable DVD Physical Format Information public byte[] MediaSerialNumber { get; }
/// </summary> /// <summary>Raw Xbox security sectors</summary>
public PFI.PhysicalFormatInformation? DecodedDvdrPfi { get; } public byte[] XboxSecuritySector { get; }
/// <summary> /// <summary>Decoded Xbox security sectors</summary>
/// Raw media serial number public SS.SecuritySector? DecodedXboxSecuritySector { get; }
/// </summary> /// <summary>Information about an XGD, XGD2 or XGD3 media</summary>
public byte[] MediaSerialNumber { get; } public XgdInfo XgdInfo { get; }
/// <summary> /// <summary>MMC drive raw GET CONFIGURATION</summary>
/// Raw Xbox security sectors public byte[] MmcConfiguration { get; }
/// </summary> /// <summary>Raw recognized format layers</summary>
public byte[] XboxSecuritySector { get; } public byte[] RecognizedFormatLayers { get; }
/// <summary> /// <summary>Raw write protection status</summary>
/// Decoded Xbox security sectors public byte[] WriteProtectionStatus { get; }
/// </summary> /// <summary>Raw DVD Physical Format Information</summary>
public SS.SecuritySector? DecodedXboxSecuritySector { get; } public byte[] DvdPfi { get; }
/// <summary> /// <summary>Decoded DVD Physical Format Information</summary>
/// Information about an XGD, XGD2 or XGD3 media public PFI.PhysicalFormatInformation? DecodedPfi { get; }
/// </summary> /// <summary>Raw DVD Disc Manufacturing Information</summary>
public XgdInfo XgdInfo { get; } public byte[] DvdDmi { get; }
/// <summary> /// <summary>Raw DVD Copyright Management Information</summary>
/// MMC drive raw GET CONFIGURATION public byte[] DvdCmi { get; }
/// </summary> /// <summary>Raw DVD Burst Cutting Area</summary>
public byte[] MmcConfiguration { get; } public byte[] DvdBca { get; }
/// <summary> /// <summary>Raw DVD AACS information</summary>
/// Raw recognized format layers public byte[] DvdAacs { get; }
/// </summary> /// <summary>Raw DVD-RAM Disc Definition Structure</summary>
public byte[] RecognizedFormatLayers { get; } public byte[] DvdRamDds { get; }
/// <summary> /// <summary>Raw DVD-RAM Cartridge Status</summary>
/// Raw write protection status public byte[] DvdRamCartridgeStatus { get; }
/// </summary> /// <summary>Raw DVD-RAM Spare Area Information</summary>
public byte[] WriteProtectionStatus { get; } public byte[] DvdRamSpareArea { get; }
/// <summary> /// <summary>Raw DVD-R(W) Last Border-Out RMD</summary>
/// Raw DVD Physical Format Information public byte[] LastBorderOutRmd { get; }
/// </summary> /// <summary>Raw DVD-R(W) Pre-Recorded Information</summary>
public byte[] DvdPfi { get; } public byte[] DvdPreRecordedInfo { get; }
/// <summary> /// <summary>Raw DVD-R Media ID</summary>
/// Decoded DVD Physical Format Information public byte[] DvdrMediaIdentifier { get; }
/// </summary> /// <summary>Raw recordable DVD Physical Format Information</summary>
public PFI.PhysicalFormatInformation? DecodedPfi { get; } public byte[] DvdrPhysicalInformation { get; }
/// <summary> /// <summary>Raw DVD+R(W) ADIP</summary>
/// Raw DVD Disc Manufacturing Information public byte[] DvdPlusAdip { get; }
/// </summary> /// <summary>Raw DVD+R(W) Disc Control Blocks</summary>
public byte[] DvdDmi { get; } public byte[] DvdPlusDcb { get; }
/// <summary> /// <summary>Raw HD DVD Copyright Management Information</summary>
/// Raw DVD Copyright Management Information public byte[] HddvdCopyrightInformation { get; }
/// </summary> /// <summary>Raw HD DVD-R Medium Status</summary>
public byte[] DvdCmi { get; } public byte[] HddvdrMediumStatus { get; }
/// <summary> /// <summary>Raw HD DVD-R(W) Last Border-Out RMD</summary>
/// Raw DVD Burst Cutting Area public byte[] HddvdrLastRmd { get; }
/// </summary> /// <summary>Raw DVD-R(W) Layer Capacity</summary>
public byte[] DvdBca { get; } public byte[] DvdrLayerCapacity { get; }
/// <summary> /// <summary>Raw DVD-R DL Middle Zone start</summary>
/// Raw DVD AACS information public byte[] DvdrDlMiddleZoneStart { get; }
/// </summary> /// <summary>Raw DVD-R DL Jump Interval size</summary>
public byte[] DvdAacs { get; } public byte[] DvdrDlJumpIntervalSize { get; }
/// <summary> /// <summary>Raw DVD-R DL Manual Layer Jump Start LBA</summary>
/// Raw DVD-RAM Disc Definition Structure public byte[] DvdrDlManualLayerJumpStartLba { get; }
/// </summary> /// <summary>Raw DVD-R DL Remap Anchor Point</summary>
public byte[] DvdRamDds { get; } public byte[] DvdrDlRemapAnchorPoint { get; }
/// <summary> /// <summary>Raw Blu-ray Disc Information</summary>
/// Raw DVD-RAM Cartridge Status public byte[] BlurayDiscInformation { get; }
/// </summary> /// <summary>Raw Blu-ray PAC</summary>
public byte[] DvdRamCartridgeStatus { get; } public byte[] BlurayPac { get; }
/// <summary> /// <summary>Raw Blu-ray Burst Cutting Area</summary>
/// Raw DVD-RAM Spare Area Information public byte[] BlurayBurstCuttingArea { get; }
/// </summary> /// <summary>Raw Blu-ray Disc Definition Structure</summary>
public byte[] DvdRamSpareArea { get; } public byte[] BlurayDds { get; }
/// <summary> /// <summary>Raw Blu-ray Cartridge Status</summary>
/// Raw DVD-R(W) Last Border-Out RMD public byte[] BlurayCartridgeStatus { get; }
/// </summary> /// <summary>Raw Blu-ray Spare Area Information</summary>
public byte[] LastBorderOutRmd { get; } public byte[] BluraySpareAreaInformation { get; }
/// <summary> /// <summary>Raw Blu-ray DFL</summary>
/// Raw DVD-R(W) Pre-Recorded Information public byte[] BlurayRawDfl { get; }
/// </summary> /// <summary>Raw Blu-ray Pseudo OverWrite Resources</summary>
public byte[] DvdPreRecordedInfo { get; } public byte[] BlurayPowResources { get; }
/// <summary> /// <summary>Raw READ TOC response</summary>
/// Raw DVD-R Media ID public byte[] Toc { get; }
/// </summary> /// <summary>Raw READ ATIP response</summary>
public byte[] DvdrMediaIdentifier { get; } public byte[] Atip { get; }
/// <summary> /// <summary>Raw READ DISC INFORMATION response</summary>
/// Raw recordable DVD Physical Format Information public byte[] DiscInformation { get; }
/// </summary> /// <summary>Raw READ SESSION response</summary>
public byte[] DvdrPhysicalInformation { get; } public byte[] Session { get; }
/// <summary> /// <summary>Raw READ FULL TOC response</summary>
/// Raw DVD+R(W) ADIP public byte[] RawToc { get; }
/// </summary> /// <summary>Raw READ PMA response</summary>
public byte[] DvdPlusAdip { get; } public byte[] Pma { get; }
/// <summary> /// <summary>Raw Lead-In's CD-TEXT response</summary>
/// Raw DVD+R(W) Disc Control Blocks public byte[] CdTextLeadIn { get; }
/// </summary> /// <summary>Decoded READ TOC response</summary>
public byte[] DvdPlusDcb { get; } public TOC.CDTOC? DecodedToc { get; }
/// <summary> /// <summary>Decoded READ ATIP response</summary>
/// Raw HD DVD Copyright Management Information public ATIP.CDATIP DecodedAtip { get; }
/// </summary> /// <summary>Decoded READ SESSION response</summary>
public byte[] HddvdCopyrightInformation { get; } public Session.CDSessionInfo? DecodedSession { get; }
/// <summary> /// <summary>Decoded READ FULL TOC response</summary>
/// Raw HD DVD-R Medium Status public FullTOC.CDFullTOC? FullToc { get; }
/// </summary> /// <summary>Decoded Lead-In CD-TEXT response</summary>
public byte[] HddvdrMediumStatus { get; } public CDTextOnLeadIn.CDText? DecodedCdTextLeadIn { get; }
/// <summary> /// <summary>Raw Blu-ray track resources</summary>
/// Raw HD DVD-R(W) Last Border-Out RMD public byte[] BlurayTrackResources { get; }
/// </summary> /// <summary>Decoded Blu-ray Disc Information</summary>
public byte[] HddvdrLastRmd { get; } public DiscInformation.StandardDiscInformation? DecodedDiscInformation { get; }
/// <summary> /// <summary>Decoded Media Catalogue Number</summary>
/// Raw DVD-R(W) Layer Capacity public string Mcn { get; }
/// </summary> /// <summary>List of decoded track ISRCs</summary>
public byte[] DvdrLayerCapacity { get; } public Dictionary<byte, string> Isrcs { get; }
/// <summary> /// <summary>Set if media is inserted in drive</summary>
/// Raw DVD-R DL Middle Zone start public bool MediaInserted { get; }
/// </summary> /// <summary>Detected media type</summary>
public byte[] DvdrDlMiddleZoneStart { get; } public MediaType MediaType { get; }
/// <summary> /// <summary>Device information</summary>
/// Raw DVD-R DL Jump Interval size public DeviceInfo DeviceInfo { get; }
/// </summary> /// <summary>Raw READ CAPACITY(10) response</summary>
public byte[] DvdrDlJumpIntervalSize { get; } public byte[] ReadCapacity { get; }
/// <summary> /// <summary>Number of blocks in media</summary>
/// Raw DVD-R DL Manual Layer Jump Start LBA public ulong Blocks { get; }
/// </summary> /// <summary>Logical block size</summary>
public byte[] DvdrDlManualLayerJumpStartLba { get; } public uint BlockSize { get; }
/// <summary> /// <summary>Raw READ CAPACITY(16) response</summary>
/// Raw DVD-R DL Remap Anchor Point public byte[] ReadCapacity16 { get; }
/// </summary> /// <summary>Raw SSC Density support</summary>
public byte[] DvdrDlRemapAnchorPoint { get; } public byte[] DensitySupport { get; }
/// <summary> /// <summary>Decoded SSC Density support</summary>
/// Raw Blu-ray Disc Information public DensitySupport.DensitySupportHeader? DensitySupportHeader { get; }
/// </summary> /// <summary>Raw SSC media support</summary>
public byte[] BlurayDiscInformation { get; } public byte[] MediaTypeSupport { get; }
/// <summary> /// <summary>Decoded SSC media support</summary>
/// Raw Blu-ray PAC public DensitySupport.MediaTypeSupportHeader? MediaTypeSupportHeader { get; }
/// </summary> /// <summary>Raw data from DVD sector Copyright Management Information</summary>
public byte[] BlurayPac { get; } public byte[] DvdSectorCmi { get; }
/// <summary> /// <summary>Raw DVD Disc Key</summary>
/// Raw Blu-ray Burst Cutting Area public byte[] DvdDiscKey { get; }
/// </summary>
public byte[] BlurayBurstCuttingArea { get; }
/// <summary>
/// Raw Blu-ray Disc Definition Structure
/// </summary>
public byte[] BlurayDds { get; }
/// <summary>
/// Raw Blu-ray Cartridge Status
/// </summary>
public byte[] BlurayCartridgeStatus { get; }
/// <summary>
/// Raw Blu-ray Spare Area Information
/// </summary>
public byte[] BluraySpareAreaInformation { get; }
/// <summary>
/// Raw Blu-ray DFL
/// </summary>
public byte[] BlurayRawDfl { get; }
/// <summary>
/// Raw Blu-ray Pseudo OverWrite Resources
/// </summary>
public byte[] BlurayPowResources { get; }
/// <summary>
/// Raw READ TOC response
/// </summary>
public byte[] Toc { get; }
/// <summary>
/// Raw READ ATIP response
/// </summary>
public byte[] Atip { get; }
/// <summary>
/// Raw READ DISC INFORMATION response
/// </summary>
public byte[] DiscInformation { get; }
/// <summary>
/// Raw READ SESSION response
/// </summary>
public byte[] Session { get; }
/// <summary>
/// Raw READ FULL TOC response
/// </summary>
public byte[] RawToc { get; }
/// <summary>
/// Raw READ PMA response
/// </summary>
public byte[] Pma { get; }
/// <summary>
/// Raw Lead-In's CD-TEXT response
/// </summary>
public byte[] CdTextLeadIn { get; }
/// <summary>
/// Decoded READ TOC response
/// </summary>
public TOC.CDTOC? DecodedToc { get; }
/// <summary>
/// Decoded READ ATIP response
/// </summary>
public ATIP.CDATIP DecodedAtip { get; }
/// <summary>
/// Decoded READ SESSION response
/// </summary>
public Session.CDSessionInfo? DecodedSession { get; }
/// <summary>
/// Decoded READ FULL TOC response
/// </summary>
public FullTOC.CDFullTOC? FullToc { get; }
/// <summary>
/// Decoded Lead-In CD-TEXT response
/// </summary>
public CDTextOnLeadIn.CDText? DecodedCdTextLeadIn { get; }
/// <summary>
/// Raw Blu-ray track resources
/// </summary>
public byte[] BlurayTrackResources { get; }
/// <summary>
/// Decoded Blu-ray Disc Information
/// </summary>
public DiscInformation.StandardDiscInformation? DecodedDiscInformation { get; }
/// <summary>
/// Decoded Media Catalogue Number
/// </summary>
public string Mcn { get; }
/// <summary>
/// List of decoded track ISRCs
/// </summary>
public Dictionary<byte, string> Isrcs { get; }
/// <summary>
/// Set if media is inserted in drive
/// </summary>
public bool MediaInserted { get; }
/// <summary>
/// Detected media type
/// </summary>
public MediaType MediaType { get; }
/// <summary>
/// Device information
/// </summary>
public DeviceInfo DeviceInfo { get; }
/// <summary>
/// Raw READ CAPACITY(10) response
/// </summary>
public byte[] ReadCapacity { get; }
/// <summary>
/// Number of blocks in media
/// </summary>
public ulong Blocks { get; }
/// <summary>
/// Logical block size
/// </summary>
public uint BlockSize { get; }
/// <summary>
/// Raw READ CAPACITY(16) response
/// </summary>
public byte[] ReadCapacity16 { get; }
/// <summary>
/// Raw SSC Density support
/// </summary>
public byte[] DensitySupport { get; }
/// <summary>
/// Decoded SSC Density support
/// </summary>
public DensitySupport.DensitySupportHeader? DensitySupportHeader { get; }
/// <summary>
/// Raw SSC media support
/// </summary>
public byte[] MediaTypeSupport { get; }
/// <summary>
/// Decoded SSC media support
/// </summary>
public DensitySupport.MediaTypeSupportHeader? MediaTypeSupportHeader { get; }
/// <summary>
/// Raw data from DVD sector Copyright Management Information
/// </summary>
public byte[] DvdSectorCmi { get; }
/// <summary>
/// Raw DVD Disc Key
/// </summary>
public byte[] DvdDiscKey { get; }
} }
} }

View File

@@ -32,34 +32,20 @@
namespace Aaru.Core.Media.Info namespace Aaru.Core.Media.Info
{ {
/// <summary> /// <summary>Information about an XGD, XGD2 or XGD3 media.</summary>
/// Information about an XGD, XGD2 or XGD3 media.
/// </summary>
public sealed class XgdInfo public sealed class XgdInfo
{ {
/// <summary> /// <summary>Size of the game partition</summary>
/// Size of the game partition
/// </summary>
public ulong GameSize; public ulong GameSize;
/// <summary> /// <summary>Size of layer 0 of the video partition</summary>
/// Size of layer 0 of the video partition
/// </summary>
public ulong L0Video; public ulong L0Video;
/// <summary> /// <summary>Size of layer 1 of the video partition</summary>
/// Size of layer 1 of the video partition
/// </summary>
public ulong L1Video; public ulong L1Video;
/// <summary> /// <summary>Real layer break</summary>
/// Real layer break
/// </summary>
public ulong LayerBreak; public ulong LayerBreak;
/// <summary> /// <summary>Size of the middle zone</summary>
/// Size of the middle zone
/// </summary>
public ulong MiddleZone; public ulong MiddleZone;
/// <summary> /// <summary>Total size of media</summary>
/// Total size of media
/// </summary>
public ulong TotalSize; public ulong TotalSize;
} }
} }

View File

@@ -36,14 +36,10 @@ using System.Text;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Option parsing</summary>
/// Option parsing
/// </summary>
public static class Options public static class Options
{ {
/// <summary> /// <summary>Parses a string with options</summary>
/// Parses a string with options
/// </summary>
/// <param name="options">Options string</param> /// <param name="options">Options string</param>
/// <returns>Options name-value dictionary</returns> /// <returns>Options name-value dictionary</returns>
public static Dictionary<string, string> Parse(string options) public static Dictionary<string, string> Parse(string options)

View File

@@ -37,14 +37,10 @@ using Aaru.Helpers;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Prints all SCSI MODE pages</summary>
/// Prints all SCSI MODE pages
/// </summary>
public static class PrintScsiModePages public static class PrintScsiModePages
{ {
/// <summary> /// <summary>Prints all SCSI MODE pages</summary>
/// Prints all SCSI MODE pages
/// </summary>
/// <param name="decMode">Decoded SCSI MODE SENSE</param> /// <param name="decMode">Decoded SCSI MODE SENSE</param>
/// <param name="devType">SCSI Peripheral Type</param> /// <param name="devType">SCSI Peripheral Type</param>
/// <param name="vendorId">SCSI vendor identification</param> /// <param name="vendorId">SCSI vendor identification</param>

View File

@@ -111,9 +111,7 @@ namespace Aaru.Core
submitThread.Start(); submitThread.Start();
} }
/// <summary> /// <summary>Updates the main database</summary>
/// Updates the main database
/// </summary>
/// <param name="create">If <c>true</c> creates the database from scratch, otherwise updates an existing database</param> /// <param name="create">If <c>true</c> creates the database from scratch, otherwise updates an existing database</param>
public static void UpdateMainDatabase(bool create) public static void UpdateMainDatabase(bool create)
{ {

View File

@@ -36,9 +36,7 @@ using Schemas;
namespace Aaru.Core namespace Aaru.Core
{ {
/// <summary> /// <summary>Sidecar operations</summary>
/// Sidecar operations
/// </summary>
public sealed partial class Sidecar public sealed partial class Sidecar
{ {
/// <summary>Creates a metadata sidecar for a block tape (e.g. scsi streaming)</summary> /// <summary>Creates a metadata sidecar for a block tape (e.g. scsi streaming)</summary>
@@ -116,8 +114,8 @@ namespace Aaru.Core
}; };
const uint sectorsToRead = 512; const uint sectorsToRead = 512;
ulong sectors = (ulong)_fs.Length / blockSize; ulong sectors = (ulong)_fs.Length / blockSize;
ulong doneSectors = 0; ulong doneSectors = 0;
InitProgress2(); InitProgress2();

View File

@@ -37,19 +37,19 @@ namespace Aaru.Core
public sealed partial class Sidecar public sealed partial class Sidecar
{ {
/// <summary>Initializes a progress indicator (e.g. makes a progress bar visible)</summary> /// <summary>Initializes a progress indicator (e.g. makes a progress bar visible)</summary>
public event InitProgressHandler InitProgressEvent; public event InitProgressHandler InitProgressEvent;
/// <summary>Updates a progress indicator with text</summary> /// <summary>Updates a progress indicator with text</summary>
public event UpdateProgressHandler UpdateProgressEvent; public event UpdateProgressHandler UpdateProgressEvent;
/// <summary>Uninitializes a progress indicator (e.g. adds a newline to the console)</summary> /// <summary>Uninitializes a progress indicator (e.g. adds a newline to the console)</summary>
public event EndProgressHandler EndProgressEvent; public event EndProgressHandler EndProgressEvent;
/// <summary>Initializes a secondary progress indicator (e.g. makes a progress bar visible)</summary> /// <summary>Initializes a secondary progress indicator (e.g. makes a progress bar visible)</summary>
public event InitProgressHandler2 InitProgressEvent2; public event InitProgressHandler2 InitProgressEvent2;
/// <summary>Event raised to update the values of a determinate progress bar</summary> /// <summary>Event raised to update the values of a determinate progress bar</summary>
public event UpdateProgressHandler2 UpdateProgressEvent2; public event UpdateProgressHandler2 UpdateProgressEvent2;
/// <summary>Event raised when the progress bar is not longer needed</summary> /// <summary>Event raised when the progress bar is not longer needed</summary>
public event EndProgressHandler2 EndProgressEvent2; public event EndProgressHandler2 EndProgressEvent2;
/// <summary>Updates a status indicator</summary> /// <summary>Updates a status indicator</summary>
public event UpdateStatusHandler UpdateStatusEvent; public event UpdateStatusHandler UpdateStatusEvent;
/// <summary>Initializes a progress indicator (e.g. makes a progress bar visible)</summary> /// <summary>Initializes a progress indicator (e.g. makes a progress bar visible)</summary>
public void InitProgress() => InitProgressEvent?.Invoke(); public void InitProgress() => InitProgressEvent?.Invoke();

View File

@@ -56,9 +56,7 @@ namespace Aaru.Core
FileStream _fs; FileStream _fs;
CICMMetadataType _sidecar; CICMMetadataType _sidecar;
/// <summary> /// <summary>Initializes a new instance of this class</summary>
/// Initializes a new instance of this class
/// </summary>
public Sidecar() public Sidecar()
{ {
_plugins = GetPluginBase.Instance; _plugins = GetPluginBase.Instance;
@@ -170,9 +168,7 @@ namespace Aaru.Core
return _sidecar; return _sidecar;
} }
/// <summary> /// <summary>Aborts sidecar running operation</summary>
/// Aborts sidecar running operation
/// </summary>
public void Abort() public void Abort()
{ {
UpdateStatus("Aborting..."); UpdateStatus("Aborting...");

View File

@@ -627,8 +627,8 @@ namespace Aaru.Core
{ {
dto.Filters = new List<NameValueStats>(); dto.Filters = new List<NameValueStats>();
foreach(string nvs in ctx.Filters.Where(c => !c.Synchronized).Select(c => c.Name).Distinct() foreach(string nvs in ctx.Filters.Where(c => !c.Synchronized).Select(c => c.Name).
) Distinct())
dto.Filters.Add(new NameValueStats dto.Filters.Add(new NameValueStats
{ {
name = nvs, name = nvs,
@@ -868,8 +868,8 @@ namespace Aaru.Core
} }
if(ctx.Filters.Any(c => !c.Synchronized)) if(ctx.Filters.Any(c => !c.Synchronized))
foreach(string nvs in ctx.Filters.Where(c => !c.Synchronized).Select(c => c.Name).Distinct() foreach(string nvs in ctx.Filters.Where(c => !c.Synchronized).Select(c => c.Name).
) Distinct())
{ {
Filter existing = ctx.Filters.FirstOrDefault(c => c.Synchronized && c.Name == nvs) ?? Filter existing = ctx.Filters.FirstOrDefault(c => c.Synchronized && c.Name == nvs) ??
new Filter new Filter

View File

@@ -53,7 +53,7 @@
<ConsolePause>false</ConsolePause> <ConsolePause>false</ConsolePause>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="..\LICENSE.LGPL"> <EmbeddedResource Include="..\LICENSE.LGPL">
@@ -61,134 +61,134 @@
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EntityFramework" Version="6.4.4" /> <PackageReference Include="EntityFramework" Version="6.4.4"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.5" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.5"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="3.1.5" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="3.1.5"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.5" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.5"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="1.1.6" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="1.1.6"/>
<PackageReference Include="Unclassified.NetRevisionTask" Version="0.3.0" PrivateAssets="all"/> <PackageReference Include="Unclassified.NetRevisionTask" Version="0.3.0" PrivateAssets="all"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Context.cs" /> <Compile Include="Context.cs"/>
<Compile Include="ContextFactory.cs" /> <Compile Include="ContextFactory.cs"/>
<Compile Include="Migrations\20181126222301_DeviceReportV2.cs" /> <Compile Include="Migrations\20181126222301_DeviceReportV2.cs"/>
<Compile Include="Migrations\20181126222301_DeviceReportV2.Designer.cs" /> <Compile Include="Migrations\20181126222301_DeviceReportV2.Designer.cs"/>
<Compile Include="Migrations\20181127001622_AddDeviceBasicFields.cs" /> <Compile Include="Migrations\20181127001622_AddDeviceBasicFields.cs"/>
<Compile Include="Migrations\20181127001622_AddDeviceBasicFields.Designer.cs" /> <Compile Include="Migrations\20181127001622_AddDeviceBasicFields.Designer.cs"/>
<Compile Include="Migrations\20181127013131_CorrectReportsDbSet.cs" /> <Compile Include="Migrations\20181127013131_CorrectReportsDbSet.cs"/>
<Compile Include="Migrations\20181127013131_CorrectReportsDbSet.Designer.cs" /> <Compile Include="Migrations\20181127013131_CorrectReportsDbSet.Designer.cs"/>
<Compile Include="Migrations\20181221015906_NameValueStatistics.cs" /> <Compile Include="Migrations\20181221015906_NameValueStatistics.cs"/>
<Compile Include="Migrations\20181221015906_NameValueStatistics.Designer.cs" /> <Compile Include="Migrations\20181221015906_NameValueStatistics.Designer.cs"/>
<Compile Include="Migrations\20181221032605_MediaStatistics.cs" /> <Compile Include="Migrations\20181221032605_MediaStatistics.cs"/>
<Compile Include="Migrations\20181221032605_MediaStatistics.Designer.cs" /> <Compile Include="Migrations\20181221032605_MediaStatistics.Designer.cs"/>
<Compile Include="Migrations\20181221034941_SeenDevicesStatistics.cs" /> <Compile Include="Migrations\20181221034941_SeenDevicesStatistics.cs"/>
<Compile Include="Migrations\20181221034941_SeenDevicesStatistics.Designer.cs" /> <Compile Include="Migrations\20181221034941_SeenDevicesStatistics.Designer.cs"/>
<Compile Include="Migrations\20181221040408_OperatingSystemStatistics.cs" /> <Compile Include="Migrations\20181221040408_OperatingSystemStatistics.cs"/>
<Compile Include="Migrations\20181221040408_OperatingSystemStatistics.Designer.cs" /> <Compile Include="Migrations\20181221040408_OperatingSystemStatistics.Designer.cs"/>
<Compile Include="Migrations\20181221041242_VersionStatistics.cs" /> <Compile Include="Migrations\20181221041242_VersionStatistics.cs"/>
<Compile Include="Migrations\20181221041242_VersionStatistics.Designer.cs" /> <Compile Include="Migrations\20181221041242_VersionStatistics.Designer.cs"/>
<Compile Include="Migrations\20181221125353_AddStatsCounters.cs" /> <Compile Include="Migrations\20181221125353_AddStatsCounters.cs"/>
<Compile Include="Migrations\20181221125353_AddStatsCounters.Designer.cs" /> <Compile Include="Migrations\20181221125353_AddStatsCounters.Designer.cs"/>
<Compile Include="Migrations\20181223183913_FixUnsignedFields.cs" /> <Compile Include="Migrations\20181223183913_FixUnsignedFields.cs"/>
<Compile Include="Migrations\20181223183913_FixUnsignedFields.Designer.cs" /> <Compile Include="Migrations\20181223183913_FixUnsignedFields.Designer.cs"/>
<Compile Include="Migrations\20181223214411_UseBinaryDataForIdentifyInquiryAndModesInReports.cs" /> <Compile Include="Migrations\20181223214411_UseBinaryDataForIdentifyInquiryAndModesInReports.cs"/>
<Compile Include="Migrations\20181223214411_UseBinaryDataForIdentifyInquiryAndModesInReports.Designer.cs" /> <Compile Include="Migrations\20181223214411_UseBinaryDataForIdentifyInquiryAndModesInReports.Designer.cs"/>
<Compile Include="Migrations\20181224044809_StoreUsbIdsInDatabase.cs" /> <Compile Include="Migrations\20181224044809_StoreUsbIdsInDatabase.cs"/>
<Compile Include="Migrations\20181224044809_StoreUsbIdsInDatabase.Designer.cs" /> <Compile Include="Migrations\20181224044809_StoreUsbIdsInDatabase.Designer.cs"/>
<Compile Include="Migrations\20181224172147_FixUsbIdsAndIndexes.cs" /> <Compile Include="Migrations\20181224172147_FixUsbIdsAndIndexes.cs"/>
<Compile Include="Migrations\20181224172147_FixUsbIdsAndIndexes.Designer.cs" /> <Compile Include="Migrations\20181224172147_FixUsbIdsAndIndexes.Designer.cs"/>
<Compile Include="Migrations\20181225002740_AddCdOffsets.cs" /> <Compile Include="Migrations\20181225002740_AddCdOffsets.cs"/>
<Compile Include="Migrations\20181225002740_AddCdOffsets.Designer.cs" /> <Compile Include="Migrations\20181225002740_AddCdOffsets.Designer.cs"/>
<Compile Include="Migrations\20181225152947_StoreMmcGetConfigurationResponse.cs" /> <Compile Include="Migrations\20181225152947_StoreMmcGetConfigurationResponse.cs"/>
<Compile Include="Migrations\20181225152947_StoreMmcGetConfigurationResponse.Designer.cs" /> <Compile Include="Migrations\20181225152947_StoreMmcGetConfigurationResponse.Designer.cs"/>
<Compile Include="Migrations\20181225214500_StoreReadResultsInReportDatabase.cs" /> <Compile Include="Migrations\20181225214500_StoreReadResultsInReportDatabase.cs"/>
<Compile Include="Migrations\20181225214500_StoreReadResultsInReportDatabase.Designer.cs" /> <Compile Include="Migrations\20181225214500_StoreReadResultsInReportDatabase.Designer.cs"/>
<Compile Include="Migrations\20190102061236_AddMultisessionLeadTest.cs" /> <Compile Include="Migrations\20190102061236_AddMultisessionLeadTest.cs"/>
<Compile Include="Migrations\20190102061236_AddMultisessionLeadTest.Designer.cs" /> <Compile Include="Migrations\20190102061236_AddMultisessionLeadTest.Designer.cs"/>
<Compile Include="Migrations\20190102230036_AddOptimalReadMultipleCount.cs" /> <Compile Include="Migrations\20190102230036_AddOptimalReadMultipleCount.cs"/>
<Compile Include="Migrations\20190102230036_AddOptimalReadMultipleCount.Designer.cs" /> <Compile Include="Migrations\20190102230036_AddOptimalReadMultipleCount.Designer.cs"/>
<Compile Include="Migrations\20190108013456_AddChangeableScsiModes.cs" /> <Compile Include="Migrations\20190108013456_AddChangeableScsiModes.cs"/>
<Compile Include="Migrations\20190108013456_AddChangeableScsiModes.Designer.cs" /> <Compile Include="Migrations\20190108013456_AddChangeableScsiModes.Designer.cs"/>
<Compile Include="Migrations\20190525183723_IdForDensityCode.cs" /> <Compile Include="Migrations\20190525183723_IdForDensityCode.cs"/>
<Compile Include="Migrations\20190525183723_IdForDensityCode.Designer.cs" /> <Compile Include="Migrations\20190525183723_IdForDensityCode.Designer.cs"/>
<Compile Include="Migrations\20191103000828_MakeFieldsUnsigned.cs" /> <Compile Include="Migrations\20191103000828_MakeFieldsUnsigned.cs"/>
<Compile Include="Migrations\20191103000828_MakeFieldsUnsigned.Designer.cs" /> <Compile Include="Migrations\20191103000828_MakeFieldsUnsigned.Designer.cs"/>
<Compile Include="Migrations\20191207175444_SyncWithServerChanges.cs" /> <Compile Include="Migrations\20191207175444_SyncWithServerChanges.cs"/>
<Compile Include="Migrations\20191207175444_SyncWithServerChanges.Designer.cs" /> <Compile Include="Migrations\20191207175444_SyncWithServerChanges.Designer.cs"/>
<Compile Include="Migrations\20191207183522_AddNameCountModel.cs" /> <Compile Include="Migrations\20191207183522_AddNameCountModel.cs"/>
<Compile Include="Migrations\20191207183522_AddNameCountModel.Designer.cs" /> <Compile Include="Migrations\20191207183522_AddNameCountModel.Designer.cs"/>
<Compile Include="Migrations\20191207184342_AddRemoteStats.cs" /> <Compile Include="Migrations\20191207184342_AddRemoteStats.cs"/>
<Compile Include="Migrations\20191207184342_AddRemoteStats.Designer.cs" /> <Compile Include="Migrations\20191207184342_AddRemoteStats.Designer.cs"/>
<Compile Include="Migrations\20200710140320_FixIndexes.cs" /> <Compile Include="Migrations\20200710140320_FixIndexes.cs"/>
<Compile Include="Migrations\20200710140320_FixIndexes.Designer.cs" /> <Compile Include="Migrations\20200710140320_FixIndexes.Designer.cs"/>
<Compile Include="Migrations\20200710164101_AddCanReadGdRomUsingSwapDisc.cs" /> <Compile Include="Migrations\20200710164101_AddCanReadGdRomUsingSwapDisc.cs"/>
<Compile Include="Migrations\20200710164101_AddCanReadGdRomUsingSwapDisc.Designer.cs" /> <Compile Include="Migrations\20200710164101_AddCanReadGdRomUsingSwapDisc.Designer.cs"/>
<Compile Include="Migrations\20200710170129_AddGdRomSwapDiscCapabilities.cs" /> <Compile Include="Migrations\20200710170129_AddGdRomSwapDiscCapabilities.cs"/>
<Compile Include="Migrations\20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs" /> <Compile Include="Migrations\20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs"/>
<Compile Include="Migrations\20200710192426_MakeCanReadGdRomUsingSwapDiscNullable.cs" /> <Compile Include="Migrations\20200710192426_MakeCanReadGdRomUsingSwapDiscNullable.cs"/>
<Compile Include="Migrations\20200710192426_MakeCanReadGdRomUsingSwapDiscNullable.Designer.cs" /> <Compile Include="Migrations\20200710192426_MakeCanReadGdRomUsingSwapDiscNullable.Designer.cs"/>
<Compile Include="Migrations\20200710194507_AddAudioFieldsToGdromReadCapabilities.cs" /> <Compile Include="Migrations\20200710194507_AddAudioFieldsToGdromReadCapabilities.cs"/>
<Compile Include="Migrations\20200710194507_AddAudioFieldsToGdromReadCapabilities.Designer.cs" /> <Compile Include="Migrations\20200710194507_AddAudioFieldsToGdromReadCapabilities.Designer.cs"/>
<Compile Include="Migrations\20200711182425_AddFieldsForF1hCommand06hSubcommand.cs" /> <Compile Include="Migrations\20200711182425_AddFieldsForF1hCommand06hSubcommand.cs"/>
<Compile Include="Migrations\20200711182425_AddFieldsForF1hCommand06hSubcommand.Designer.cs" /> <Compile Include="Migrations\20200711182425_AddFieldsForF1hCommand06hSubcommand.Designer.cs"/>
<Compile Include="Migrations\20200711230202_FixGdRomCapabilitiesFieldName.cs" /> <Compile Include="Migrations\20200711230202_FixGdRomCapabilitiesFieldName.cs"/>
<Compile Include="Migrations\20200711230202_FixGdRomCapabilitiesFieldName.Designer.cs" /> <Compile Include="Migrations\20200711230202_FixGdRomCapabilitiesFieldName.Designer.cs"/>
<Compile Include="Migrations\AaruContextModelSnapshot.cs" /> <Compile Include="Migrations\AaruContextModelSnapshot.cs"/>
<Compile Include="Models\BaseModel.cs" /> <Compile Include="Models\BaseModel.cs"/>
<Compile Include="Models\BaseOperatingSystem.cs" /> <Compile Include="Models\BaseOperatingSystem.cs"/>
<Compile Include="Models\CdOffset.cs" /> <Compile Include="Models\CdOffset.cs"/>
<Compile Include="Models\Command.cs" /> <Compile Include="Models\Command.cs"/>
<Compile Include="Models\Device.cs" /> <Compile Include="Models\Device.cs"/>
<Compile Include="Models\DeviceStat.cs" /> <Compile Include="Models\DeviceStat.cs"/>
<Compile Include="Models\Filesystem.cs" /> <Compile Include="Models\Filesystem.cs"/>
<Compile Include="Models\Filter.cs" /> <Compile Include="Models\Filter.cs"/>
<Compile Include="Models\Media.cs" /> <Compile Include="Models\Media.cs"/>
<Compile Include="Models\MediaFormat.cs" /> <Compile Include="Models\MediaFormat.cs"/>
<Compile Include="Models\NameCountModel.cs" /> <Compile Include="Models\NameCountModel.cs"/>
<Compile Include="Models\OperatingSystem.cs" /> <Compile Include="Models\OperatingSystem.cs"/>
<Compile Include="Models\Partition.cs" /> <Compile Include="Models\Partition.cs"/>
<Compile Include="Models\RemoteApplication.cs" /> <Compile Include="Models\RemoteApplication.cs"/>
<Compile Include="Models\RemoteArchitecture.cs" /> <Compile Include="Models\RemoteArchitecture.cs"/>
<Compile Include="Models\RemoteOperatingSystem.cs" /> <Compile Include="Models\RemoteOperatingSystem.cs"/>
<Compile Include="Models\Report.cs" /> <Compile Include="Models\Report.cs"/>
<Compile Include="Models\UsbProduct.cs" /> <Compile Include="Models\UsbProduct.cs"/>
<Compile Include="Models\UsbVendor.cs" /> <Compile Include="Models\UsbVendor.cs"/>
<Compile Include="Models\Version.cs" /> <Compile Include="Models\Version.cs"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Aaru.CommonTypes\Aaru.CommonTypes.csproj" /> <ProjectReference Include="..\Aaru.CommonTypes\Aaru.CommonTypes.csproj"/>
<ProjectReference Include="..\Aaru.Decoders\Aaru.Decoders.csproj" /> <ProjectReference Include="..\Aaru.Decoders\Aaru.Decoders.csproj"/>
</ItemGroup> </ItemGroup>
<ProjectExtensions> <ProjectExtensions>
<MonoDevelop> <MonoDevelop>
<Properties> <Properties>
<Policies> <Policies>
<StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************&#xA;Aaru Data Preservation Suite&#xA;----------------------------------------------------------------------------&#xA; &#xA;Filename : ${FileName}&#xA;Author(s) : ${AuthorName} &lt;${AuthorEmail}&gt;&#xA;&#xA;Component : Component&#xA; &#xA;--[ Description ] ----------------------------------------------------------&#xA; &#xA; Description&#xA; &#xA;--[ License ] --------------------------------------------------------------&#xA; &#xA; This library is free software; you can redistribute it and/or modify&#xA; it under the terms of the GNU Lesser General Public License as&#xA; published by the Free Software Foundation; either version 2.1 of the&#xA; License, or (at your option) any later version.&#xA;&#xA; This library is distributed in the hope that it will be useful, but&#xA; WITHOUT ANY WARRANTY; without even the implied warranty of&#xA; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&#xA; Lesser General Public License for more details.&#xA;&#xA; You should have received a copy of the GNU Lesser General Public&#xA; License along with this library; if not, see &lt;http://www.gnu.org/licenses/&gt;.&#xA;&#xA;----------------------------------------------------------------------------&#xA;Copyright © 2011-${Year} ${CopyrightHolder}&#xA;****************************************************************************/" /> <StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************&#xA;Aaru Data Preservation Suite&#xA;----------------------------------------------------------------------------&#xA; &#xA;Filename : ${FileName}&#xA;Author(s) : ${AuthorName} &lt;${AuthorEmail}&gt;&#xA;&#xA;Component : Component&#xA; &#xA;--[ Description ] ----------------------------------------------------------&#xA; &#xA; Description&#xA; &#xA;--[ License ] --------------------------------------------------------------&#xA; &#xA; This library is free software; you can redistribute it and/or modify&#xA; it under the terms of the GNU Lesser General Public License as&#xA; published by the Free Software Foundation; either version 2.1 of the&#xA; License, or (at your option) any later version.&#xA;&#xA; This library is distributed in the hope that it will be useful, but&#xA; WITHOUT ANY WARRANTY; without even the implied warranty of&#xA; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&#xA; Lesser General Public License for more details.&#xA;&#xA; You should have received a copy of the GNU Lesser General Public&#xA; License along with this library; if not, see &lt;http://www.gnu.org/licenses/&gt;.&#xA;&#xA;----------------------------------------------------------------------------&#xA;Copyright © 2011-${Year} ${CopyrightHolder}&#xA;****************************************************************************/"/>
<TextStylePolicy FileWidth="120" TabWidth="4" IndentWidth="4" RemoveTrailingWhitespace="True" NoTabsAfterNonTabs="False" EolMarker="Native" TabsToSpaces="True" scope="text/x-csharp" /> <TextStylePolicy FileWidth="120" TabWidth="4" IndentWidth="4" RemoveTrailingWhitespace="True" NoTabsAfterNonTabs="False" EolMarker="Native" TabsToSpaces="True" scope="text/x-csharp"/>
<CSharpFormattingPolicy IndentBlock="True" IndentBraces="False" IndentSwitchSection="True" IndentSwitchCaseSection="True" LabelPositioning="OneLess" NewLinesForBracesInTypes="True" NewLinesForBracesInMethods="True" NewLinesForBracesInProperties="True" NewLinesForBracesInAccessors="True" NewLinesForBracesInAnonymousMethods="True" NewLinesForBracesInControlBlocks="True" NewLinesForBracesInAnonymousTypes="True" NewLinesForBracesInObjectCollectionArrayInitializers="True" NewLinesForBracesInLambdaExpressionBody="True" NewLineForElse="True" NewLineForCatch="True" NewLineForFinally="True" NewLineForMembersInObjectInit="True" NewLineForMembersInAnonymousTypes="True" NewLineForClausesInQuery="True" SpacingAfterMethodDeclarationName="False" SpaceWithinMethodDeclarationParenthesis="False" SpaceBetweenEmptyMethodDeclarationParentheses="False" SpaceAfterMethodCallName="False" SpaceWithinMethodCallParentheses="False" SpaceBetweenEmptyMethodCallParentheses="False" SpaceWithinExpressionParentheses="False" SpaceWithinCastParentheses="False" SpaceWithinOtherParentheses="False" SpaceAfterCast="False" SpacesIgnoreAroundVariableDeclaration="False" SpaceBeforeOpenSquareBracket="False" SpaceBetweenEmptySquareBrackets="False" SpaceWithinSquareBrackets="False" SpaceAfterColonInBaseTypeDeclaration="True" SpaceAfterComma="True" SpaceAfterDot="False" SpaceAfterSemicolonsInForStatement="True" SpaceBeforeColonInBaseTypeDeclaration="True" SpaceBeforeComma="False" SpaceBeforeDot="False" SpaceBeforeSemicolonsInForStatement="False" SpacingAroundBinaryOperator="Single" WrappingPreserveSingleLine="True" WrappingKeepStatementsOnSingleLine="True" PlaceSystemDirectiveFirst="True" SpaceAfterControlFlowStatementKeyword="False" scope="text/x-csharp" /> <CSharpFormattingPolicy IndentBlock="True" IndentBraces="False" IndentSwitchSection="True" IndentSwitchCaseSection="True" LabelPositioning="OneLess" NewLinesForBracesInTypes="True" NewLinesForBracesInMethods="True" NewLinesForBracesInProperties="True" NewLinesForBracesInAccessors="True" NewLinesForBracesInAnonymousMethods="True" NewLinesForBracesInControlBlocks="True" NewLinesForBracesInAnonymousTypes="True" NewLinesForBracesInObjectCollectionArrayInitializers="True" NewLinesForBracesInLambdaExpressionBody="True" NewLineForElse="True" NewLineForCatch="True" NewLineForFinally="True" NewLineForMembersInObjectInit="True" NewLineForMembersInAnonymousTypes="True" NewLineForClausesInQuery="True" SpacingAfterMethodDeclarationName="False" SpaceWithinMethodDeclarationParenthesis="False" SpaceBetweenEmptyMethodDeclarationParentheses="False" SpaceAfterMethodCallName="False" SpaceWithinMethodCallParentheses="False" SpaceBetweenEmptyMethodCallParentheses="False" SpaceWithinExpressionParentheses="False" SpaceWithinCastParentheses="False" SpaceWithinOtherParentheses="False" SpaceAfterCast="False" SpacesIgnoreAroundVariableDeclaration="False" SpaceBeforeOpenSquareBracket="False" SpaceBetweenEmptySquareBrackets="False" SpaceWithinSquareBrackets="False" SpaceAfterColonInBaseTypeDeclaration="True" SpaceAfterComma="True" SpaceAfterDot="False" SpaceAfterSemicolonsInForStatement="True" SpaceBeforeColonInBaseTypeDeclaration="True" SpaceBeforeComma="False" SpaceBeforeDot="False" SpaceBeforeSemicolonsInForStatement="False" SpacingAroundBinaryOperator="Single" WrappingPreserveSingleLine="True" WrappingKeepStatementsOnSingleLine="True" PlaceSystemDirectiveFirst="True" SpaceAfterControlFlowStatementKeyword="False" scope="text/x-csharp"/>
</Policies> </Policies>
</Properties> </Properties>
</MonoDevelop> </MonoDevelop>
</ProjectExtensions> </ProjectExtensions>
<PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'"> <PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">
<!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you --> <!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
<!-- have to teach MSBuild where the Mono copy of the reference asssemblies is --> <!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
<!-- Look in the standard install locations --> <!-- Look in the standard install locations -->
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono>
<!-- If we found Mono reference assemblies, then use them --> <!-- If we found Mono reference assemblies, then use them -->
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
<EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride> <EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride>
<!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 --> <!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 -->
<AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths> <AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -36,92 +36,52 @@ using Microsoft.EntityFrameworkCore;
namespace Aaru.Database namespace Aaru.Database
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Database context</summary>
/// Database context
/// </summary>
public sealed class AaruContext : DbContext public sealed class AaruContext : DbContext
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Creates a database context with the specified options</summary>
/// Creates a database context with the specified options
/// </summary>
/// <param name="options">Options</param> /// <param name="options">Options</param>
public AaruContext(DbContextOptions options) : base(options) {} public AaruContext(DbContextOptions options) : base(options) {}
/// <summary> /// <summary>List of known devices</summary>
/// List of known devices public DbSet<Device> Devices { get; set; }
/// </summary> /// <summary>List of local device reports</summary>
public DbSet<Device> Devices { get; set; } public DbSet<Report> Reports { get; set; }
/// <summary> /// <summary>Command usage statistics</summary>
/// List of local device reports public DbSet<Command> Commands { get; set; }
/// </summary> /// <summary>Statistics for found filesystems</summary>
public DbSet<Report> Reports { get; set; } public DbSet<Filesystem> Filesystems { get; set; }
/// <summary> /// <summary>Statistics for used filters</summary>
/// Command usage statistics public DbSet<Filter> Filters { get; set; }
/// </summary> /// <summary>Statistics for media image formats</summary>
public DbSet<Command> Commands { get; set; } public DbSet<MediaFormat> MediaFormats { get; set; }
/// <summary> /// <summary>Statistics for partitioning schemes</summary>
/// Statistics for found filesystems public DbSet<Partition> Partitions { get; set; }
/// </summary> /// <summary>Statistics for media types</summary>
public DbSet<Filesystem> Filesystems { get; set; } public DbSet<Media> Medias { get; set; }
/// <summary> /// <summary>Statistics for devices seen using commands</summary>
/// Statistics for used filters public DbSet<DeviceStat> SeenDevices { get; set; }
/// </summary> /// <summary>Statistics for operating systems</summary>
public DbSet<Filter> Filters { get; set; } public DbSet<OperatingSystem> OperatingSystems { get; set; }
/// <summary> /// <summary>Statistics for used Aaru versions</summary>
/// Statistics for media image formats public DbSet<Version> Versions { get; set; }
/// </summary> /// <summary>List of known USB vendors</summary>
public DbSet<MediaFormat> MediaFormats { get; set; } public DbSet<UsbVendor> UsbVendors { get; set; }
/// <summary> /// <summary>List of known USB products</summary>
/// Statistics for partitioning schemes public DbSet<UsbProduct> UsbProducts { get; set; }
/// </summary> /// <summary>List of CD reading offsets</summary>
public DbSet<Partition> Partitions { get; set; } public DbSet<CdOffset> CdOffsets { get; set; }
/// <summary> /// <summary>Statistics of remote applications</summary>
/// Statistics for media types public DbSet<RemoteApplication> RemoteApplications { get; set; }
/// </summary> /// <summary>Statistics of remote architectures</summary>
public DbSet<Media> Medias { get; set; } public DbSet<RemoteArchitecture> RemoteArchitectures { get; set; }
/// <summary> /// <summary>Statistics of remote operating systems</summary>
/// Statistics for devices seen using commands
/// </summary>
public DbSet<DeviceStat> SeenDevices { get; set; }
/// <summary>
/// Statistics for operating systems
/// </summary>
public DbSet<OperatingSystem> OperatingSystems { get; set; }
/// <summary>
/// Statistics for used Aaru versions
/// </summary>
public DbSet<Version> Versions { get; set; }
/// <summary>
/// List of known USB vendors
/// </summary>
public DbSet<UsbVendor> UsbVendors { get; set; }
/// <summary>
/// List of known USB products
/// </summary>
public DbSet<UsbProduct> UsbProducts { get; set; }
/// <summary>
/// List of CD reading offsets
/// </summary>
public DbSet<CdOffset> CdOffsets { get; set; }
/// <summary>
/// Statistics of remote applications
/// </summary>
public DbSet<RemoteApplication> RemoteApplications { get; set; }
/// <summary>
/// Statistics of remote architectures
/// </summary>
public DbSet<RemoteArchitecture> RemoteArchitectures { get; set; }
/// <summary>
/// Statistics of remote operating systems
/// </summary>
public DbSet<RemoteOperatingSystem> RemoteOperatingSystems { get; set; } public DbSet<RemoteOperatingSystem> RemoteOperatingSystems { get; set; }
// Note: If table does not appear check that last migration has been REALLY added to the project // Note: If table does not appear check that last migration has been REALLY added to the project
/// <summary> /// <summary>Creates a database context with the database in the specified path</summary>
/// Creates a database context with the database in the specified path
/// </summary>
/// <param name="dbPath">Path to database file</param> /// <param name="dbPath">Path to database file</param>
/// <returns>Database context</returns> /// <returns>Database context</returns>
public static AaruContext Create(string dbPath) public static AaruContext Create(string dbPath)

View File

@@ -35,15 +35,11 @@ using Microsoft.EntityFrameworkCore.Design;
namespace Aaru.Database namespace Aaru.Database
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Database context factory, for design time</summary>
/// Database context factory, for design time
/// </summary>
public class AaruContextFactory : IDesignTimeDbContextFactory<AaruContext> public class AaruContextFactory : IDesignTimeDbContextFactory<AaruContext>
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Creates a database context</summary>
/// Creates a database context
/// </summary>
/// <param name="args">Ignored parameters</param> /// <param name="args">Ignored parameters</param>
/// <returns>A database context</returns> /// <returns>A database context</returns>
public AaruContext CreateDbContext(string[] args) => AaruContext.Create("aaru.db"); public AaruContext CreateDbContext(string[] args) => AaruContext.Create("aaru.db");

View File

@@ -34,14 +34,10 @@ using System.ComponentModel.DataAnnotations;
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <summary> /// <summary>Base database model</summary>
/// Base database model
/// </summary>
public abstract class BaseModel public abstract class BaseModel
{ {
/// <summary> /// <summary>Database ID</summary>
/// Database ID
/// </summary>
[Key] [Key]
public int Id { get; set; } public int Id { get; set; }
} }

View File

@@ -33,26 +33,16 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Operating system statistics</summary>
/// Operating system statistics
/// </summary>
public abstract class BaseOperatingSystem : BaseModel public abstract class BaseOperatingSystem : BaseModel
{ {
/// <summary> /// <summary>Operating system name</summary>
/// Operating system name public string Name { get; set; }
/// </summary> /// <summary>Operating system version</summary>
public string Name { get; set; } public string Version { get; set; }
/// <summary> /// <summary>Has already been synchronized with Aaru's server</summary>
/// Operating system version public bool Synchronized { get; set; }
/// </summary> /// <summary>Statistical count</summary>
public string Version { get; set; } public ulong Count { get; set; }
/// <summary>
/// Has already been synchronized with Aaru's server
/// </summary>
public bool Synchronized { get; set; }
/// <summary>
/// Statistical count
/// </summary>
public ulong Count { get; set; }
} }
} }

View File

@@ -35,19 +35,13 @@ using System;
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>CD read offset</summary>
/// CD read offset
/// </summary>
public class CdOffset : CommonTypes.Metadata.CdOffset public class CdOffset : CommonTypes.Metadata.CdOffset
{ {
/// <summary> /// <summary>Builds an empty CD read offset</summary>
/// Builds an empty CD read offset
/// </summary>
public CdOffset() {} public CdOffset() {}
/// <summary> /// <summary>Builds a CD read offset with the specified parameters</summary>
/// Builds a CD read offset with the specified parameters
/// </summary>
/// <param name="manufacturer">Manufacturer</param> /// <param name="manufacturer">Manufacturer</param>
/// <param name="model">Model</param> /// <param name="model">Model</param>
/// <param name="offset">Read offset</param> /// <param name="offset">Read offset</param>
@@ -63,9 +57,7 @@ namespace Aaru.Database.Models
AddedWhen = ModifiedWhen = DateTime.UtcNow; AddedWhen = ModifiedWhen = DateTime.UtcNow;
} }
/// <summary> /// <summary>Builds a CD read offset from the metadata type</summary>
/// Builds a CD read offset from the metadata type
/// </summary>
/// <param name="offset">Read offset metadata</param> /// <param name="offset">Read offset metadata</param>
public CdOffset(CommonTypes.Metadata.CdOffset offset) public CdOffset(CommonTypes.Metadata.CdOffset offset)
{ {
@@ -77,17 +69,11 @@ namespace Aaru.Database.Models
AddedWhen = ModifiedWhen = DateTime.UtcNow; AddedWhen = ModifiedWhen = DateTime.UtcNow;
} }
/// <summary> /// <summary>Database ID</summary>
/// Database ID public int Id { get; set; }
/// </summary> /// <summary>Date when model has been added to the database</summary>
public int Id { get; set; } public DateTime AddedWhen { get; set; }
/// <summary> /// <summary>Date when model was last modified</summary>
/// Date when model has been added to the database
/// </summary>
public DateTime AddedWhen { get; set; }
/// <summary>
/// Date when model was last modified
/// </summary>
public DateTime ModifiedWhen { get; set; } public DateTime ModifiedWhen { get; set; }
} }
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Command statistics.</summary>
/// Command statistics.
/// </summary>
public class Command : NameCountModel {} public class Command : NameCountModel {}
} }

View File

@@ -37,19 +37,13 @@ using Aaru.CommonTypes.Metadata;
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <summary> /// <summary>Known device</summary>
/// Known device
/// </summary>
public class Device : DeviceReportV2 public class Device : DeviceReportV2
{ {
/// <summary> /// <summary>Builds an empty device</summary>
/// Builds an empty device
/// </summary>
public Device() => LastSynchronized = DateTime.UtcNow; public Device() => LastSynchronized = DateTime.UtcNow;
/// <summary> /// <summary>Builds a device from a device report</summary>
/// Builds a device from a device report
/// </summary>
/// <param name="report">Device report</param> /// <param name="report">Device report</param>
[SuppressMessage("ReSharper", "VirtualMemberCallInConstructor")] [SuppressMessage("ReSharper", "VirtualMemberCallInConstructor")]
public Device(DeviceReportV2 report) public Device(DeviceReportV2 report)
@@ -71,20 +65,14 @@ namespace Aaru.Database.Models
GdRomSwapDiscCapabilities = report.GdRomSwapDiscCapabilities; GdRomSwapDiscCapabilities = report.GdRomSwapDiscCapabilities;
} }
/// <summary> /// <summary>When this known device was last synchronized with the server</summary>
/// When this known device was last synchronized with the server
/// </summary>
public DateTime LastSynchronized { get; set; } public DateTime LastSynchronized { get; set; }
/// <summary> /// <summary>Optimal number of blocks to read at once</summary>
/// Optimal number of blocks to read at once
/// </summary>
[DefaultValue(0)] [DefaultValue(0)]
public int OptimalMultipleSectorsRead { get; set; } public int OptimalMultipleSectorsRead { get; set; }
/// <summary> /// <summary>Can read GD-ROM using swap trick?</summary>
/// Can read GD-ROM using swap trick?
/// </summary>
[DefaultValue(null)] [DefaultValue(null)]
public bool? CanReadGdRomUsingSwapDisc { get; set; } public bool? CanReadGdRomUsingSwapDisc { get; set; }
} }

View File

@@ -33,30 +33,18 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Device found in usage</summary>
/// Device found in usage
/// </summary>
public class DeviceStat : BaseModel public class DeviceStat : BaseModel
{ {
/// <summary> /// <summary>Manufacturer</summary>
/// Manufacturer
/// </summary>
public string Manufacturer { get; set; } public string Manufacturer { get; set; }
/// <summary> /// <summary>Model</summary>
/// Model public string Model { get; set; }
/// </summary> /// <summary>Revision or firmware version</summary>
public string Model { get; set; } public string Revision { get; set; }
/// <summary> /// <summary>Bus</summary>
/// Revision or firmware version public string Bus { get; set; }
/// </summary> /// <summary>Has already been synchronized with Aaru's server</summary>
public string Revision { get; set; } public bool Synchronized { get; set; }
/// <summary>
/// Bus
/// </summary>
public string Bus { get; set; }
/// <summary>
/// Has already been synchronized with Aaru's server
/// </summary>
public bool Synchronized { get; set; }
} }
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Filesystem found</summary>
/// Filesystem found
/// </summary>
public class Filesystem : NameCountModel {} public class Filesystem : NameCountModel {}
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Filter used</summary>
/// Filter used
/// </summary>
public class Filter : NameCountModel {} public class Filter : NameCountModel {}
} }

View File

@@ -33,26 +33,16 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Media type found</summary>
/// Media type found
/// </summary>
public class Media : BaseModel public class Media : BaseModel
{ {
/// <summary> /// <summary>Media type name</summary>
/// Media type name public string Type { get; set; }
/// </summary> /// <summary>Found physically, or in image</summary>
public string Type { get; set; } public bool Real { get; set; }
/// <summary> /// <summary>Has already been synchronized with Aaru's server</summary>
/// Found physically, or in image public bool Synchronized { get; set; }
/// </summary> /// <summary>Count of times found</summary>
public bool Real { get; set; } public ulong Count { get; set; }
/// <summary>
/// Has already been synchronized with Aaru's server
/// </summary>
public bool Synchronized { get; set; }
/// <summary>
/// Count of times found
/// </summary>
public ulong Count { get; set; }
} }
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Media image format</summary>
/// Media image format
/// </summary>
public class MediaFormat : NameCountModel {} public class MediaFormat : NameCountModel {}
} }

View File

@@ -33,22 +33,14 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Model for name-count values.</summary>
/// Model for name-count values.
/// </summary>
public abstract class NameCountModel : BaseModel public abstract class NameCountModel : BaseModel
{ {
/// <summary> /// <summary>Value name</summary>
/// Value name public string Name { get; set; }
/// </summary> /// <summary>Has already been synchronized with Aaru's server</summary>
public string Name { get; set; } public bool Synchronized { get; set; }
/// <summary> /// <summary>Value count</summary>
/// Has already been synchronized with Aaru's server public ulong Count { get; set; }
/// </summary>
public bool Synchronized { get; set; }
/// <summary>
/// Value count
/// </summary>
public ulong Count { get; set; }
} }
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Operating system</summary>
/// Operating system
/// </summary>
public class OperatingSystem : BaseOperatingSystem {} public class OperatingSystem : BaseOperatingSystem {}
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Partitioning scheme</summary>
/// Partitioning scheme
/// </summary>
public class Partition : NameCountModel {} public class Partition : NameCountModel {}
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Remote application</summary>
/// Remote application
/// </summary>
public class RemoteApplication : BaseOperatingSystem {} public class RemoteApplication : BaseOperatingSystem {}
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Remote architecture</summary>
/// Remote architecture
/// </summary>
public class RemoteArchitecture : NameCountModel {} public class RemoteArchitecture : NameCountModel {}
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Remote operating system</summary>
/// Remote operating system
/// </summary>
public class RemoteOperatingSystem : BaseOperatingSystem {} public class RemoteOperatingSystem : BaseOperatingSystem {}
} }

View File

@@ -36,23 +36,17 @@ using Aaru.CommonTypes.Metadata;
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <summary> /// <summary>Device report</summary>
/// Device report
/// </summary>
public class Report : DeviceReportV2 public class Report : DeviceReportV2
{ {
/// <summary> /// <summary>Builds an empty device report</summary>
/// Builds an empty device report
/// </summary>
public Report() public Report()
{ {
Created = DateTime.UtcNow; Created = DateTime.UtcNow;
Uploaded = false; Uploaded = false;
} }
/// <summary> /// <summary>Builds a device report model from a device report</summary>
/// Builds a device report model from a device report
/// </summary>
/// <param name="report">Device report</param> /// <param name="report">Device report</param>
[SuppressMessage("ReSharper", "VirtualMemberCallInConstructor")] [SuppressMessage("ReSharper", "VirtualMemberCallInConstructor")]
public Report(DeviceReportV2 report) public Report(DeviceReportV2 report)
@@ -74,13 +68,9 @@ namespace Aaru.Database.Models
Type = report.Type; Type = report.Type;
} }
/// <summary> /// <summary>Date when the device report was created</summary>
/// Date when the device report was created public DateTime Created { get; set; }
/// </summary> /// <summary>If this model has already been upload</summary>
public DateTime Created { get; set; } public bool Uploaded { get; set; }
/// <summary>
/// If this model has already been upload
/// </summary>
public bool Uploaded { get; set; }
} }
} }

View File

@@ -35,19 +35,13 @@ using System.ComponentModel.DataAnnotations;
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <summary> /// <summary>USB product</summary>
/// USB product
/// </summary>
public class UsbProduct public class UsbProduct
{ {
/// <summary> /// <summary>Builds an empty USB product</summary>
/// Builds an empty USB product
/// </summary>
public UsbProduct() {} public UsbProduct() {}
/// <summary> /// <summary>Builds a USB product with the specified parameters</summary>
/// Builds a USB product with the specified parameters
/// </summary>
/// <param name="vendorId">Vendor ID</param> /// <param name="vendorId">Vendor ID</param>
/// <param name="id">Product ID</param> /// <param name="id">Product ID</param>
/// <param name="product">Product name</param> /// <param name="product">Product name</param>
@@ -59,34 +53,20 @@ namespace Aaru.Database.Models
AddedWhen = ModifiedWhen = DateTime.UtcNow; AddedWhen = ModifiedWhen = DateTime.UtcNow;
} }
/// <summary> /// <summary>Database ID</summary>
/// Database ID
/// </summary>
[Key] [Key]
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>Product ID</summary>
/// Product ID public ushort ProductId { get; set; }
/// </summary> /// <summary>Product name</summary>
public ushort ProductId { get; set; } public string Product { get; set; }
/// <summary> /// <summary>Date when model has been added to the database</summary>
/// Product name public DateTime AddedWhen { get; set; }
/// </summary> /// <summary>Date when model was last modified</summary>
public string Product { get; set; } public DateTime ModifiedWhen { get; set; }
/// <summary> /// <summary>USB vendor ID</summary>
/// Date when model has been added to the database public ushort VendorId { get; set; }
/// </summary> /// <summary>Database link to USB vendor</summary>
public DateTime AddedWhen { get; set; } public virtual UsbVendor Vendor { get; set; }
/// <summary>
/// Date when model was last modified
/// </summary>
public DateTime ModifiedWhen { get; set; }
/// <summary>
/// USB vendor ID
/// </summary>
public ushort VendorId { get; set; }
/// <summary>
/// Database link to USB vendor
/// </summary>
public virtual UsbVendor Vendor { get; set; }
} }
} }

View File

@@ -36,19 +36,13 @@ using System.ComponentModel.DataAnnotations;
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <summary> /// <summary>USB vendor</summary>
/// USB vendor
/// </summary>
public class UsbVendor public class UsbVendor
{ {
/// <summary> /// <summary>Builds an empty USB vendor</summary>
/// Builds an empty USB vendor
/// </summary>
public UsbVendor() {} public UsbVendor() {}
/// <summary> /// <summary>Builds a USB vendor with the specified parameters</summary>
/// Builds a USB vendor with the specified parameters
/// </summary>
/// <param name="id">Vendor ID</param> /// <param name="id">Vendor ID</param>
/// <param name="vendor">Vendor name</param> /// <param name="vendor">Vendor name</param>
public UsbVendor(ushort id, string vendor) public UsbVendor(ushort id, string vendor)
@@ -58,27 +52,17 @@ namespace Aaru.Database.Models
AddedWhen = ModifiedWhen = DateTime.UtcNow; AddedWhen = ModifiedWhen = DateTime.UtcNow;
} }
/// <summary> /// <summary>Database ID</summary>
/// Database ID
/// </summary>
[Key] [Key]
public ushort Id { get; set; } public ushort Id { get; set; }
/// <summary> /// <summary>Vendor name</summary>
/// Vendor name public string Vendor { get; set; }
/// </summary> /// <summary>Date when model has been added to the database</summary>
public string Vendor { get; set; } public DateTime AddedWhen { get; set; }
/// <summary> /// <summary>Date when model was last modified</summary>
/// Date when model has been added to the database
/// </summary>
public DateTime AddedWhen { get; set; }
/// <summary>
/// Date when model was last modified
/// </summary>
public DateTime ModifiedWhen { get; set; } public DateTime ModifiedWhen { get; set; }
/// <summary> /// <summary>List of products from this vendor</summary>
/// List of products from this vendor
/// </summary>
public virtual ICollection<UsbProduct> Products { get; set; } public virtual ICollection<UsbProduct> Products { get; set; }
} }
} }

View File

@@ -33,8 +33,6 @@
namespace Aaru.Database.Models namespace Aaru.Database.Models
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Aaru version</summary>
/// Aaru version
/// </summary>
public class Version : NameCountModel {} public class Version : NameCountModel {}
} }

View File

@@ -55,87 +55,87 @@
<ConsolePause>false</ConsolePause> <ConsolePause>false</ConsolePause>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System"/>
<Reference Include="System.Management" /> <Reference Include="System.Management"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Device\DeviceException.cs" /> <Compile Include="Device\DeviceException.cs"/>
<Compile Include="Device\ScsiCommands\MediaTek.cs" /> <Compile Include="Device\ScsiCommands\MediaTek.cs"/>
<Compile Include="Device\ScsiCommands\MiniDisc.cs" /> <Compile Include="Device\ScsiCommands\MiniDisc.cs"/>
<Compile Include="Device\ScsiCommands\Optical.cs" /> <Compile Include="Device\ScsiCommands\Optical.cs"/>
<Compile Include="FreeBSD\ListDevices.cs" /> <Compile Include="FreeBSD\ListDevices.cs"/>
<Compile Include="Linux\Extern.cs" /> <Compile Include="Linux\Extern.cs"/>
<Compile Include="Linux\Structs.cs" /> <Compile Include="Linux\Structs.cs"/>
<Compile Include="Linux\Enums.cs" /> <Compile Include="Linux\Enums.cs"/>
<Compile Include="Enums.cs" /> <Compile Include="Enums.cs"/>
<Compile Include="Remote\Consts.cs" /> <Compile Include="Remote\Consts.cs"/>
<Compile Include="Remote\Enums.cs" /> <Compile Include="Remote\Enums.cs"/>
<Compile Include="Remote\Remote.cs" /> <Compile Include="Remote\Remote.cs"/>
<Compile Include="Remote\Structs.cs" /> <Compile Include="Remote\Structs.cs"/>
<Compile Include="Windows\Extern.cs" /> <Compile Include="Windows\Extern.cs"/>
<Compile Include="Windows\ListDevices.cs" /> <Compile Include="Windows\ListDevices.cs"/>
<Compile Include="Windows\Structs.cs" /> <Compile Include="Windows\Structs.cs"/>
<Compile Include="Windows\Enums.cs" /> <Compile Include="Windows\Enums.cs"/>
<Compile Include="Windows\Command.cs" /> <Compile Include="Windows\Command.cs"/>
<Compile Include="Linux\Command.cs" /> <Compile Include="Linux\Command.cs"/>
<Compile Include="Command.cs" /> <Compile Include="Command.cs"/>
<Compile Include="Device\Constructor.cs" /> <Compile Include="Device\Constructor.cs"/>
<Compile Include="Device\Variables.cs" /> <Compile Include="Device\Variables.cs"/>
<Compile Include="Device\Destructor.cs" /> <Compile Include="Device\Destructor.cs"/>
<Compile Include="Device\Commands.cs" /> <Compile Include="Device\Commands.cs"/>
<Compile Include="Device\ScsiCommands\MMC.cs" /> <Compile Include="Device\ScsiCommands\MMC.cs"/>
<Compile Include="Device\ScsiCommands\SPC.cs" /> <Compile Include="Device\ScsiCommands\SPC.cs"/>
<Compile Include="Device\ScsiCommands\SBC.cs" /> <Compile Include="Device\ScsiCommands\SBC.cs"/>
<Compile Include="Device\ScsiCommands\Pioneer.cs" /> <Compile Include="Device\ScsiCommands\Pioneer.cs"/>
<Compile Include="Device\ScsiCommands\Plextor.cs" /> <Compile Include="Device\ScsiCommands\Plextor.cs"/>
<Compile Include="Device\ScsiCommands\NEC.cs" /> <Compile Include="Device\ScsiCommands\NEC.cs"/>
<Compile Include="Device\ScsiCommands\HL-DT-ST.cs" /> <Compile Include="Device\ScsiCommands\HL-DT-ST.cs"/>
<Compile Include="Device\ScsiCommands\SSC.cs" /> <Compile Include="Device\ScsiCommands\SSC.cs"/>
<Compile Include="Device\ScsiCommands\SMC.cs" /> <Compile Include="Device\ScsiCommands\SMC.cs"/>
<Compile Include="Device\ScsiCommands\Adaptec.cs" /> <Compile Include="Device\ScsiCommands\Adaptec.cs"/>
<Compile Include="Device\ScsiCommands\ArchiveCorp.cs" /> <Compile Include="Device\ScsiCommands\ArchiveCorp.cs"/>
<Compile Include="Device\ScsiCommands\Certance.cs" /> <Compile Include="Device\ScsiCommands\Certance.cs"/>
<Compile Include="Device\ScsiCommands\Fujitsu.cs" /> <Compile Include="Device\ScsiCommands\Fujitsu.cs"/>
<Compile Include="Device\ScsiCommands\HP.cs" /> <Compile Include="Device\ScsiCommands\HP.cs"/>
<Compile Include="Device\ScsiCommands\Plasmon.cs" /> <Compile Include="Device\ScsiCommands\Plasmon.cs"/>
<Compile Include="Device\ScsiCommands\SyQuest.cs" /> <Compile Include="Device\ScsiCommands\SyQuest.cs"/>
<Compile Include="Device\AtaCommands\AtaCHS.cs" /> <Compile Include="Device\AtaCommands\AtaCHS.cs"/>
<Compile Include="Device\AtaCommands\Atapi.cs" /> <Compile Include="Device\AtaCommands\Atapi.cs"/>
<Compile Include="Device\AtaCommands\Ata28.cs" /> <Compile Include="Device\AtaCommands\Ata28.cs"/>
<Compile Include="Device\AtaCommands\Ata48.cs" /> <Compile Include="Device\AtaCommands\Ata48.cs"/>
<Compile Include="Device\AtaCommands\Smart.cs" /> <Compile Include="Device\AtaCommands\Smart.cs"/>
<Compile Include="Device\AtaCommands\Cfa.cs" /> <Compile Include="Device\AtaCommands\Cfa.cs"/>
<Compile Include="Device\AtaCommands\MCPT.cs" /> <Compile Include="Device\AtaCommands\MCPT.cs"/>
<Compile Include="FreeBSD\Command.cs" /> <Compile Include="FreeBSD\Command.cs"/>
<Compile Include="FreeBSD\Enums.cs" /> <Compile Include="FreeBSD\Enums.cs"/>
<Compile Include="FreeBSD\Extern.cs" /> <Compile Include="FreeBSD\Extern.cs"/>
<Compile Include="FreeBSD\Structs.cs" /> <Compile Include="FreeBSD\Structs.cs"/>
<Compile Include="Device\MmcCommands\MMC.cs" /> <Compile Include="Device\MmcCommands\MMC.cs"/>
<Compile Include="Device\MmcCommands\SecureDigital.cs" /> <Compile Include="Device\MmcCommands\SecureDigital.cs"/>
<Compile Include="Device\ScsiCommands\Kreon.cs" /> <Compile Include="Device\ScsiCommands\Kreon.cs"/>
<Compile Include="Device\List.cs" /> <Compile Include="Device\List.cs"/>
<Compile Include="Linux\ListDevices.cs" /> <Compile Include="Linux\ListDevices.cs"/>
<Compile Include="Windows\Usb.cs" /> <Compile Include="Windows\Usb.cs"/>
<Compile Include="Windows\UsbFunctions.cs" /> <Compile Include="Windows\UsbFunctions.cs"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="System.Management" Version="4.7.0" /> <PackageReference Include="System.Management" Version="4.7.0"/>
<PackageReference Include="Unclassified.NetRevisionTask" Version="0.3.0" PrivateAssets="all"/> <PackageReference Include="Unclassified.NetRevisionTask" Version="0.3.0" PrivateAssets="all"/>
</ItemGroup> </ItemGroup>
<ProjectExtensions> <ProjectExtensions>
<MonoDevelop> <MonoDevelop>
<Properties> <Properties>
<Policies> <Policies>
<DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild" /> <DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild"/>
<StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************&#xA;Aaru Data Preservation Suite&#xA;----------------------------------------------------------------------------&#xA; &#xA;Filename : ${FileName}&#xA;Author(s) : ${AuthorName} &lt;${AuthorEmail}&gt;&#xA;&#xA;Component : Component&#xA; &#xA;--[ Description ] ----------------------------------------------------------&#xA; &#xA; Description&#xA; &#xA;--[ License ] --------------------------------------------------------------&#xA; &#xA; This library is free software; you can redistribute it and/or modify&#xA; it under the terms of the GNU Lesser General Public License as&#xA; published by the Free Software Foundation; either version 2.1 of the&#xA; License, or (at your option) any later version.&#xA;&#xA; This library is distributed in the hope that it will be useful, but&#xA; WITHOUT ANY WARRANTY; without even the implied warranty of&#xA; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&#xA; Lesser General Public License for more details.&#xA;&#xA; You should have received a copy of the GNU Lesser General Public&#xA; License along with this library; if not, see &lt;http://www.gnu.org/licenses/&gt;.&#xA;&#xA;----------------------------------------------------------------------------&#xA;Copyright © 2011-${Year} ${CopyrightHolder}&#xA;****************************************************************************/" /> <StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************&#xA;Aaru Data Preservation Suite&#xA;----------------------------------------------------------------------------&#xA; &#xA;Filename : ${FileName}&#xA;Author(s) : ${AuthorName} &lt;${AuthorEmail}&gt;&#xA;&#xA;Component : Component&#xA; &#xA;--[ Description ] ----------------------------------------------------------&#xA; &#xA; Description&#xA; &#xA;--[ License ] --------------------------------------------------------------&#xA; &#xA; This library is free software; you can redistribute it and/or modify&#xA; it under the terms of the GNU Lesser General Public License as&#xA; published by the Free Software Foundation; either version 2.1 of the&#xA; License, or (at your option) any later version.&#xA;&#xA; This library is distributed in the hope that it will be useful, but&#xA; WITHOUT ANY WARRANTY; without even the implied warranty of&#xA; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&#xA; Lesser General Public License for more details.&#xA;&#xA; You should have received a copy of the GNU Lesser General Public&#xA; License along with this library; if not, see &lt;http://www.gnu.org/licenses/&gt;.&#xA;&#xA;----------------------------------------------------------------------------&#xA;Copyright © 2011-${Year} ${CopyrightHolder}&#xA;****************************************************************************/"/>
<TextStylePolicy FileWidth="120" TabWidth="4" IndentWidth="4" RemoveTrailingWhitespace="True" NoTabsAfterNonTabs="False" EolMarker="Native" TabsToSpaces="True" scope="text/x-csharp" /> <TextStylePolicy FileWidth="120" TabWidth="4" IndentWidth="4" RemoveTrailingWhitespace="True" NoTabsAfterNonTabs="False" EolMarker="Native" TabsToSpaces="True" scope="text/x-csharp"/>
<CSharpFormattingPolicy IndentBlock="True" IndentBraces="False" IndentSwitchSection="True" IndentSwitchCaseSection="True" LabelPositioning="OneLess" NewLinesForBracesInTypes="True" NewLinesForBracesInMethods="True" NewLinesForBracesInProperties="True" NewLinesForBracesInAccessors="True" NewLinesForBracesInAnonymousMethods="True" NewLinesForBracesInControlBlocks="True" NewLinesForBracesInAnonymousTypes="True" NewLinesForBracesInObjectCollectionArrayInitializers="True" NewLinesForBracesInLambdaExpressionBody="True" NewLineForElse="True" NewLineForCatch="True" NewLineForFinally="True" NewLineForMembersInObjectInit="True" NewLineForMembersInAnonymousTypes="True" NewLineForClausesInQuery="True" SpacingAfterMethodDeclarationName="False" SpaceWithinMethodDeclarationParenthesis="False" SpaceBetweenEmptyMethodDeclarationParentheses="False" SpaceAfterMethodCallName="False" SpaceWithinMethodCallParentheses="False" SpaceBetweenEmptyMethodCallParentheses="False" SpaceWithinExpressionParentheses="False" SpaceWithinCastParentheses="False" SpaceWithinOtherParentheses="False" SpaceAfterCast="False" SpacesIgnoreAroundVariableDeclaration="False" SpaceBeforeOpenSquareBracket="False" SpaceBetweenEmptySquareBrackets="False" SpaceWithinSquareBrackets="False" SpaceAfterColonInBaseTypeDeclaration="True" SpaceAfterComma="True" SpaceAfterDot="False" SpaceAfterSemicolonsInForStatement="True" SpaceBeforeColonInBaseTypeDeclaration="True" SpaceBeforeComma="False" SpaceBeforeDot="False" SpaceBeforeSemicolonsInForStatement="False" SpacingAroundBinaryOperator="Single" WrappingPreserveSingleLine="True" WrappingKeepStatementsOnSingleLine="True" PlaceSystemDirectiveFirst="True" SpaceAfterControlFlowStatementKeyword="False" scope="text/x-csharp" /> <CSharpFormattingPolicy IndentBlock="True" IndentBraces="False" IndentSwitchSection="True" IndentSwitchCaseSection="True" LabelPositioning="OneLess" NewLinesForBracesInTypes="True" NewLinesForBracesInMethods="True" NewLinesForBracesInProperties="True" NewLinesForBracesInAccessors="True" NewLinesForBracesInAnonymousMethods="True" NewLinesForBracesInControlBlocks="True" NewLinesForBracesInAnonymousTypes="True" NewLinesForBracesInObjectCollectionArrayInitializers="True" NewLinesForBracesInLambdaExpressionBody="True" NewLineForElse="True" NewLineForCatch="True" NewLineForFinally="True" NewLineForMembersInObjectInit="True" NewLineForMembersInAnonymousTypes="True" NewLineForClausesInQuery="True" SpacingAfterMethodDeclarationName="False" SpaceWithinMethodDeclarationParenthesis="False" SpaceBetweenEmptyMethodDeclarationParentheses="False" SpaceAfterMethodCallName="False" SpaceWithinMethodCallParentheses="False" SpaceBetweenEmptyMethodCallParentheses="False" SpaceWithinExpressionParentheses="False" SpaceWithinCastParentheses="False" SpaceWithinOtherParentheses="False" SpaceAfterCast="False" SpacesIgnoreAroundVariableDeclaration="False" SpaceBeforeOpenSquareBracket="False" SpaceBetweenEmptySquareBrackets="False" SpaceWithinSquareBrackets="False" SpaceAfterColonInBaseTypeDeclaration="True" SpaceAfterComma="True" SpaceAfterDot="False" SpaceAfterSemicolonsInForStatement="True" SpaceBeforeColonInBaseTypeDeclaration="True" SpaceBeforeComma="False" SpaceBeforeDot="False" SpaceBeforeSemicolonsInForStatement="False" SpacingAroundBinaryOperator="Single" WrappingPreserveSingleLine="True" WrappingKeepStatementsOnSingleLine="True" PlaceSystemDirectiveFirst="True" SpaceAfterControlFlowStatementKeyword="False" scope="text/x-csharp"/>
</Policies> </Policies>
</Properties> </Properties>
</MonoDevelop> </MonoDevelop>
</ProjectExtensions> </ProjectExtensions>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Aaru.CommonTypes\Aaru.CommonTypes.csproj" /> <ProjectReference Include="..\Aaru.CommonTypes\Aaru.CommonTypes.csproj"/>
<ProjectReference Include="..\Aaru.Console\Aaru.Console.csproj"> <ProjectReference Include="..\Aaru.Console\Aaru.Console.csproj">
<Project>{CCAA7AFE-C094-4D82-A66D-630DE8A3F545}</Project> <Project>{CCAA7AFE-C094-4D82-A66D-630DE8A3F545}</Project>
<Name>Aaru.Console</Name> <Name>Aaru.Console</Name>
@@ -154,25 +154,25 @@
<Link>LICENSE.LGPL</Link> <Link>LICENSE.LGPL</Link>
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
<PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'"> <PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">
<!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you --> <!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
<!-- have to teach MSBuild where the Mono copy of the reference asssemblies is --> <!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
<!-- Look in the standard install locations --> <!-- Look in the standard install locations -->
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono>
<!-- If we found Mono reference assemblies, then use them --> <!-- If we found Mono reference assemblies, then use them -->
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
<EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride> <EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride>
<!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 --> <!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 -->
<AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths> <AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -38,9 +38,7 @@ namespace Aaru.Devices
{ {
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Reads the drive buffer using PIO transfer</summary>
/// Reads the drive buffer using PIO transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -67,9 +65,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads the drive buffer using DMA transfer</summary>
/// Reads the drive buffer using DMA transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -95,9 +91,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads sectors using 28-bit addressing and DMA transfer, retrying on error</summary>
/// Reads sectors using 28-bit addressing and DMA transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="lba">LBA of read start</param> /// <param name="lba">LBA of read start</param>
@@ -109,9 +103,7 @@ namespace Aaru.Devices
uint timeout, out double duration) => uint timeout, out double duration) =>
ReadDma(out buffer, out statusRegisters, true, lba, count, timeout, out duration); ReadDma(out buffer, out statusRegisters, true, lba, count, timeout, out duration);
/// <summary> /// <summary>Reads sectors using 48-bit addressing and DMA transfer</summary>
/// Reads sectors using 48-bit addressing and DMA transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="retry">Retry on error</param> /// <param name="retry">Retry on error</param>
@@ -148,7 +140,8 @@ namespace Aaru.Devices
} }
/// <summary> /// <summary>
/// Reads sectors using 28-bit addressing and PIO transfer, sending an interrupt only after all the sectors have been transferred /// Reads sectors using 28-bit addressing and PIO transfer, sending an interrupt only after all the sectors have
/// been transferred
/// </summary> /// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
@@ -185,9 +178,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads native max address using 28-bit addressing</summary>
/// Reads native max address using 28-bit addressing
/// </summary>
/// <param name="lba">Maximum addressable block</param> /// <param name="lba">Maximum addressable block</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -226,9 +217,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads sectors using 28-bit addressing and PIO transfer, retrying on error</summary>
/// Reads sectors using 28-bit addressing and PIO transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="lba">LBA of read start</param> /// <param name="lba">LBA of read start</param>
@@ -240,9 +229,7 @@ namespace Aaru.Devices
uint timeout, out double duration) => uint timeout, out double duration) =>
Read(out buffer, out statusRegisters, true, lba, count, timeout, out duration); Read(out buffer, out statusRegisters, true, lba, count, timeout, out duration);
/// <summary> /// <summary>Reads sectors using 28-bit addressing and PIO transfer, retrying on error</summary>
/// Reads sectors using 28-bit addressing and PIO transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="retry">Retry on error</param> /// <param name="retry">Retry on error</param>
@@ -279,9 +266,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads a long sector using 28-bit addressing and PIO transfer, retrying on error</summary>
/// Reads a long sector using 28-bit addressing and PIO transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="lba">LBA of read start</param> /// <param name="lba">LBA of read start</param>
@@ -293,9 +278,7 @@ namespace Aaru.Devices
uint timeout, out double duration) => uint timeout, out double duration) =>
ReadLong(out buffer, out statusRegisters, true, lba, blockSize, timeout, out duration); ReadLong(out buffer, out statusRegisters, true, lba, blockSize, timeout, out duration);
/// <summary> /// <summary>Reads a long sector using 28-bit addressing and PIO transfer, retrying on error</summary>
/// Reads a long sector using 28-bit addressing and PIO transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="retry">Retry on error</param> /// <param name="retry">Retry on error</param>
@@ -332,9 +315,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Sets the reading mechanism ready to read the specified block using 28-bit LBA addressing</summary>
/// Sets the reading mechanism ready to read the specified block using 28-bit LBA addressing
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="lba">LBA to position reading mechanism ready to read</param> /// <param name="lba">LBA to position reading mechanism ready to read</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>

View File

@@ -38,9 +38,7 @@ namespace Aaru.Devices
{ {
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Gets native max address using 48-bit addressing</summary>
/// Gets native max address using 48-bit addressing
/// </summary>
/// <param name="lba">Maximum addressable block</param> /// <param name="lba">Maximum addressable block</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -80,9 +78,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads sectors using 48-bit addressing and DMA transfer</summary>
/// Reads sectors using 48-bit addressing and DMA transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="lba">LBA of read start</param> /// <param name="lba">LBA of read start</param>
@@ -119,9 +115,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads a drive log using PIO transfer</summary>
/// Reads a drive log using PIO transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="logAddress">Log address</param> /// <param name="logAddress">Log address</param>
@@ -156,9 +150,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads a drive log using DMA transfer</summary>
/// Reads a drive log using DMA transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="logAddress">Log address</param> /// <param name="logAddress">Log address</param>
@@ -193,7 +185,8 @@ namespace Aaru.Devices
} }
/// <summary> /// <summary>
/// Reads sectors using 48-bit addressing and PIO transfer, sending an interrupt only after all the sectors have been transferred /// Reads sectors using 48-bit addressing and PIO transfer, sending an interrupt only after all the sectors have
/// been transferred
/// </summary> /// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
@@ -232,9 +225,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads native max address using 48-bit addressing</summary>
/// Reads native max address using 48-bit addressing
/// </summary>
/// <param name="lba">Maximum addressable block</param> /// <param name="lba">Maximum addressable block</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -275,9 +266,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads sectors using 48-bit addressing and PIO transfer</summary>
/// Reads sectors using 48-bit addressing and PIO transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="lba">LBA of read start</param> /// <param name="lba">LBA of read start</param>

View File

@@ -88,9 +88,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads sectors using CHS addressing and DMA transfer, retrying on error</summary>
/// Reads sectors using CHS addressing and DMA transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="cylinder">Cylinder of read start</param> /// <param name="cylinder">Cylinder of read start</param>
@@ -104,9 +102,7 @@ namespace Aaru.Devices
byte sector, byte count, uint timeout, out double duration) => byte sector, byte count, uint timeout, out double duration) =>
ReadDma(out buffer, out statusRegisters, true, cylinder, head, sector, count, timeout, out duration); ReadDma(out buffer, out statusRegisters, true, cylinder, head, sector, count, timeout, out duration);
/// <summary> /// <summary>Reads sectors using CHS addressing and DMA transfer</summary>
/// Reads sectors using CHS addressing and DMA transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="retry">Retry on error</param> /// <param name="retry">Retry on error</param>
@@ -143,7 +139,8 @@ namespace Aaru.Devices
} }
/// <summary> /// <summary>
/// Reads sectors using CHS addressing and PIO transfer, sending an interrupt only after all the sectors have been transferred /// Reads sectors using CHS addressing and PIO transfer, sending an interrupt only after all the sectors have been
/// transferred
/// </summary> /// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
@@ -180,9 +177,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads sectors using CHS addressing and PIO transfer, retrying on error</summary>
/// Reads sectors using CHS addressing and PIO transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="cylinder">Cylinder of read start</param> /// <param name="cylinder">Cylinder of read start</param>
@@ -196,9 +191,7 @@ namespace Aaru.Devices
byte sector, byte count, uint timeout, out double duration) => byte sector, byte count, uint timeout, out double duration) =>
Read(out buffer, out statusRegisters, true, cylinder, head, sector, count, timeout, out duration); Read(out buffer, out statusRegisters, true, cylinder, head, sector, count, timeout, out duration);
/// <summary> /// <summary>Reads sectors using CHS addressing and PIO transfer</summary>
/// Reads sectors using CHS addressing and PIO transfer
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="retry">Retry on error</param> /// <param name="retry">Retry on error</param>
@@ -235,9 +228,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads a long sector using CHS addressing and PIO transfer, retrying on error</summary>
/// Reads a long sector using CHS addressing and PIO transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="cylinder">Cylinder of read start</param> /// <param name="cylinder">Cylinder of read start</param>
@@ -251,9 +242,7 @@ namespace Aaru.Devices
byte sector, uint blockSize, uint timeout, out double duration) => byte sector, uint blockSize, uint timeout, out double duration) =>
ReadLong(out buffer, out statusRegisters, true, cylinder, head, sector, blockSize, timeout, out duration); ReadLong(out buffer, out statusRegisters, true, cylinder, head, sector, blockSize, timeout, out duration);
/// <summary> /// <summary>Reads a long sector using CHS addressing and PIO transfer, retrying on error</summary>
/// Reads a long sector using CHS addressing and PIO transfer, retrying on error
/// </summary>
/// <param name="buffer">Buffer that contains the read data</param> /// <param name="buffer">Buffer that contains the read data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="retry">Retry on error</param> /// <param name="retry">Retry on error</param>
@@ -290,9 +279,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Sets the reading mechanism ready to read the specified block using CHS addressing</summary>
/// Sets the reading mechanism ready to read the specified block using CHS addressing
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="cylinder">Cylinder to position reading mechanism ready to read</param> /// <param name="cylinder">Cylinder to position reading mechanism ready to read</param>
/// <param name="head">Head to position reading mechanism ready to read</param> /// <param name="head">Head to position reading mechanism ready to read</param>
@@ -325,9 +312,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Enables drive features</summary>
/// Enables drive features
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="feature">Feature to enable</param> /// <param name="feature">Feature to enable</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -337,9 +322,7 @@ namespace Aaru.Devices
out double duration) => out double duration) =>
SetFeatures(out statusRegisters, feature, 0, 0, 0, 0, timeout, out duration); SetFeatures(out statusRegisters, feature, 0, 0, 0, 0, timeout, out duration);
/// <summary> /// <summary>Enables drive features</summary>
/// Enables drive features
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="feature">Feature to enable</param> /// <param name="feature">Feature to enable</param>
/// <param name="cylinder">Value for the cylinder register</param> /// <param name="cylinder">Value for the cylinder register</param>
@@ -376,9 +359,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Prevents ejection of the media inserted in the drive</summary>
/// Prevents ejection of the media inserted in the drive
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
/// <param name="duration">Time the device took to execute the command in milliseconds</param> /// <param name="duration">Time the device took to execute the command in milliseconds</param>
@@ -403,9 +384,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Allows ejection of the media inserted in the drive</summary>
/// Allows ejection of the media inserted in the drive
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
/// <param name="duration">Time the device took to execute the command in milliseconds</param> /// <param name="duration">Time the device took to execute the command in milliseconds</param>
@@ -430,9 +409,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Ejects the media inserted in the drive</summary>
/// Ejects the media inserted in the drive
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
/// <param name="duration">Time the device took to execute the command in milliseconds</param> /// <param name="duration">Time the device took to execute the command in milliseconds</param>

View File

@@ -38,9 +38,7 @@ namespace Aaru.Devices
{ {
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Requests to translate an LBA to a card physical address</summary>
/// Requests to translate an LBA to a card physical address
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="lba">LBA to start reading from</param> /// <param name="lba">LBA to start reading from</param>
@@ -74,9 +72,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Requests to translate a CHS to a card physical address</summary>
/// Requests to translate a CHS to a card physical address
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="cylinder">Cylinder</param> /// <param name="cylinder">Cylinder</param>
@@ -110,9 +106,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Requests an extended error code</summary>
/// Requests an extended error code
/// </summary>
/// <param name="errorCode">Error code</param> /// <param name="errorCode">Error code</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>

View File

@@ -38,9 +38,7 @@ namespace Aaru.Devices
{ {
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Enables media card pass through</summary>
/// Enables media card pass through
/// </summary>
/// <param name="statusRegisters">Status registers.</param> /// <param name="statusRegisters">Status registers.</param>
/// <param name="timeout">Timeout in seconds</param> /// <param name="timeout">Timeout in seconds</param>
/// <param name="duration">Time it took to execute the command in milliseconds</param> /// <param name="duration">Time it took to execute the command in milliseconds</param>
@@ -49,9 +47,7 @@ namespace Aaru.Devices
out double duration) => out double duration) =>
CheckMediaCardType(1, out statusRegisters, timeout, out duration); CheckMediaCardType(1, out statusRegisters, timeout, out duration);
/// <summary> /// <summary>Disables media card pass through</summary>
/// Disables media card pass through
/// </summary>
/// <param name="statusRegisters">Status registers.</param> /// <param name="statusRegisters">Status registers.</param>
/// <param name="timeout">Timeout in seconds</param> /// <param name="timeout">Timeout in seconds</param>
/// <param name="duration">Time it took to execute the command in milliseconds</param> /// <param name="duration">Time it took to execute the command in milliseconds</param>
@@ -60,9 +56,7 @@ namespace Aaru.Devices
out double duration) => out double duration) =>
CheckMediaCardType(0, out statusRegisters, timeout, out duration); CheckMediaCardType(0, out statusRegisters, timeout, out duration);
/// <summary> /// <summary>Checks media card pass through</summary>
/// Checks media card pass through
/// </summary>
/// <param name="feature">Feature</param> /// <param name="feature">Feature</param>
/// <param name="statusRegisters">Status registers.</param> /// <param name="statusRegisters">Status registers.</param>
/// <param name="timeout">Timeout in seconds</param> /// <param name="timeout">Timeout in seconds</param>

View File

@@ -38,9 +38,7 @@ namespace Aaru.Devices
{ {
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Disables S.M.A.R.T.</summary>
/// Disables S.M.A.R.T.
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
/// <param name="duration">Time the device took to execute the command in milliseconds</param> /// <param name="duration">Time the device took to execute the command in milliseconds</param>
@@ -68,9 +66,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Enables auto-saving of S.M.A.R.T. attributes</summary>
/// Enables auto-saving of S.M.A.R.T. attributes
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
/// <param name="duration">Time the device took to execute the command in milliseconds</param> /// <param name="duration">Time the device took to execute the command in milliseconds</param>
@@ -100,9 +96,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Disables auto-saving of S.M.A.R.T. attributes</summary>
/// Disables auto-saving of S.M.A.R.T. attributes
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
/// <param name="duration">Time the device took to execute the command in milliseconds</param> /// <param name="duration">Time the device took to execute the command in milliseconds</param>
@@ -131,9 +125,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Enables S.M.A.R.T.</summary>
/// Enables S.M.A.R.T.
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
/// <param name="duration">Time the device took to execute the command in milliseconds</param> /// <param name="duration">Time the device took to execute the command in milliseconds</param>
@@ -161,9 +153,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Requests drive to execute offline immediate S.M.A.R.T. test</summary>
/// Requests drive to execute offline immediate S.M.A.R.T. test
/// </summary>
/// <param name="subcommand">Subcommand</param> /// <param name="subcommand">Subcommand</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -194,9 +184,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads S.M.A.R.T. data</summary>
/// Reads S.M.A.R.T. data
/// </summary>
/// <param name="buffer">Buffer containing data</param> /// <param name="buffer">Buffer containing data</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -226,9 +214,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads S.M.A.R.T. log</summary>
/// Reads S.M.A.R.T. log
/// </summary>
/// <param name="buffer">Buffer containing log</param> /// <param name="buffer">Buffer containing log</param>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="logAddress">Log address</param> /// <param name="logAddress">Log address</param>
@@ -260,9 +246,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Retrieves S.M.A.R.T. status</summary>
/// Retrieves S.M.A.R.T. status
/// </summary>
/// <param name="statusRegisters">Returned status registers</param> /// <param name="statusRegisters">Returned status registers</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
/// <param name="duration">Time the device took to execute the command in milliseconds</param> /// <param name="duration">Time the device took to execute the command in milliseconds</param>

View File

@@ -242,53 +242,33 @@ namespace Aaru.Devices
timeout); timeout);
} }
/// <summary> /// <summary>Encapsulates a single MMC command to send in a queue</summary>
/// Encapsulates a single MMC command to send in a queue [SuppressMessage("ReSharper", "InconsistentNaming"), SuppressMessage("ReSharper", "MemberCanBeInternal")]
/// </summary>
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
public class MmcSingleCommand public class MmcSingleCommand
{ {
/// <summary> /// <summary>Command argument</summary>
/// Command argument public uint argument;
/// </summary> /// <summary>How many blocks to transfer</summary>
public uint argument; public uint blocks;
/// <summary> /// <summary>Size of block in bytes</summary>
/// How many blocks to transfer public uint blockSize;
/// </summary> /// <summary>Buffer for MMC/SD command response</summary>
public uint blocks; public byte[] buffer;
/// <summary> /// <summary>MMC/SD opcode</summary>
/// Size of block in bytes
/// </summary>
public uint blockSize;
/// <summary>
/// Buffer for MMC/SD command response
/// </summary>
public byte[] buffer;
/// <summary>
/// MMC/SD opcode
/// </summary>
public MmcCommands command; public MmcCommands command;
/// <summary> /// <summary>Flags indicating kind and place of response</summary>
/// Flags indicating kind and place of response public MmcFlags flags;
/// </summary> /// <summary><c>True</c> if command should be preceded with CMD55</summary>
public MmcFlags flags; public bool isApplication;
/// <summary> /// <summary>Response registers</summary>
/// <c>True</c> if command should be preceded with CMD55 public uint[] response;
/// </summary> /// <summary><c>True</c> if data is sent from host to card</summary>
public bool isApplication; public bool write;
/// <summary>
/// Response registers
/// </summary>
public uint[] response;
/// <summary>
/// <c>True</c> if data is sent from host to card
/// </summary>
public bool write;
} }
/// <summary> /// <summary>
/// Concatenates a queue of commands to be send to a remote SecureDigital or MultiMediaCard attached to an SDHCI controller /// Concatenates a queue of commands to be send to a remote SecureDigital or MultiMediaCard attached to an SDHCI
/// controller
/// </summary> /// </summary>
/// <param name="commands">List of commands</param> /// <param name="commands">List of commands</param>
/// <param name="duration">Duration to execute all commands, in milliseconds</param> /// <param name="duration">Duration to execute all commands, in milliseconds</param>
@@ -333,9 +313,7 @@ namespace Aaru.Devices
return error; return error;
} }
/// <summary> /// <summary>Closes then immediately reopens a device</summary>
/// Closes then immediately reopens a device
/// </summary>
/// <returns>Returned error number if any</returns> /// <returns>Returned error number if any</returns>
public bool ReOpen() public bool ReOpen()
{ {
@@ -352,9 +330,7 @@ namespace Aaru.Devices
return Error; return Error;
} }
/// <summary> /// <summary>Reads data using operating system buffers.</summary>
/// Reads data using operating system buffers.
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="offset">Offset in remote device to start reading, in bytes</param> /// <param name="offset">Offset in remote device to start reading, in bytes</param>
/// <param name="length">Number of bytes to read</param> /// <param name="length">Number of bytes to read</param>

View File

@@ -59,9 +59,7 @@ using VendorString = Aaru.Decoders.SecureDigital.VendorString;
namespace Aaru.Devices namespace Aaru.Devices
{ {
/// <summary> /// <summary>Implements a device or media containing drive</summary>
/// Implements a device or media containing drive
/// </summary>
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), SuppressMessage("ReSharper", "UnusedMember.Global"), [SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), SuppressMessage("ReSharper", "UnusedMember.Global"),
SuppressMessage("ReSharper", "UnusedMethodReturnValue.Global")] SuppressMessage("ReSharper", "UnusedMethodReturnValue.Global")]
public sealed partial class Device public sealed partial class Device

View File

@@ -45,9 +45,7 @@ namespace Aaru.Devices
/// </summary> /// </summary>
~Device() => Close(); ~Device() => Close();
/// <summary> /// <summary>Closes a device</summary>
/// Closes a device
/// </summary>
public void Close() public void Close()
{ {
if(_remote != null) if(_remote != null)

View File

@@ -38,66 +38,49 @@ using PlatformID = Aaru.CommonTypes.Interop.PlatformID;
namespace Aaru.Devices namespace Aaru.Devices
{ {
/// <summary> /// <summary>Contains device information</summary>
/// Contains device information
/// </summary>
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DeviceInfo public struct DeviceInfo
{ {
/// <summary> /// <summary>Device path</summary>
/// Device path
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)] [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
public string Path; public string Path;
/// <summary> /// <summary>Device vendor or manufacturer</summary>
/// Device vendor or manufacturer
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string Vendor; public string Vendor;
/// <summary> /// <summary>Device model or product name</summary>
/// Device model or product name
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string Model; public string Model;
/// <summary> /// <summary>Device serial number</summary>
/// Device serial number
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string Serial; public string Serial;
/// <summary> /// <summary>Bus the device is attached to</summary>
/// Bus the device is attached to
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string Bus; public string Bus;
/// <summary> /// <summary>
/// Set to <c>true</c> if Aaru can send commands to the device in the current machine or remote, <c>false</c> otherwise /// Set to <c>true</c> if Aaru can send commands to the device in the current machine or remote, <c>false</c>
/// otherwise
/// </summary> /// </summary>
[MarshalAs(UnmanagedType.U1)] [MarshalAs(UnmanagedType.U1)]
public bool Supported; public bool Supported;
/// <summary> /// <summary>Padding</summary>
/// Padding
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public readonly byte[] Padding; public readonly byte[] Padding;
} }
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Lists devices attached to current machine</summary>
/// Lists devices attached to current machine
/// </summary>
/// <returns>List of devices</returns> /// <returns>List of devices</returns>
public static DeviceInfo[] ListDevices() => ListDevices(out _, out _, out _, out _, out _, out _); public static DeviceInfo[] ListDevices() => ListDevices(out _, out _, out _, out _, out _, out _);
/// <summary> /// <summary>Lists devices attached to current machine or specified remote</summary>
/// Lists devices attached to current machine or specified remote
/// </summary>
/// <param name="isRemote">Is remote</param> /// <param name="isRemote">Is remote</param>
/// <param name="serverApplication">Remote application</param> /// <param name="serverApplication">Remote application</param>
/// <param name="serverVersion">Remote application version</param> /// <param name="serverVersion">Remote application version</param>

View File

@@ -37,9 +37,7 @@ namespace Aaru.Devices
{ {
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Reads the CSD register from a SecureDigital or MultiMediaCard device</summary>
/// Reads the CSD register from a SecureDigital or MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -60,9 +58,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads the CID register from a SecureDigital or MultiMediaCard device</summary>
/// Reads the CID register from a SecureDigital or MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -83,9 +79,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads the OCR register from a MultiMediaCard device</summary>
/// Reads the OCR register from a MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -106,9 +100,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads the extended CSD from a MultiMediaCard device</summary>
/// Reads the extended CSD from a MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -129,9 +121,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Sets the block length for transfers from a SecureDigital or MultiMediaCard device</summary>
/// Sets the block length for transfers from a SecureDigital or MultiMediaCard device
/// </summary>
/// <param name="length">Block length in bytes</param> /// <param name="length">Block length in bytes</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -152,9 +142,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads blocks from a SecureDigital or MultiMediaCard device</summary>
/// Reads blocks from a SecureDigital or MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="lba">LBA to start reading from</param> /// <param name="lba">LBA to start reading from</param>
@@ -186,9 +174,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads a single block from a SecureDigital or MultiMediaCard device</summary>
/// Reads a single block from a SecureDigital or MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="lba">LBA to start reading from</param> /// <param name="lba">LBA to start reading from</param>
@@ -222,9 +208,7 @@ namespace Aaru.Devices
static bool _readMultipleBlockCannotSetBlockCount; static bool _readMultipleBlockCannotSetBlockCount;
/// <summary> /// <summary>Reads multiple blocks from a SecureDigital or MultiMediaCard device</summary>
/// Reads multiple blocks from a SecureDigital or MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="lba">LBA to start reading from</param> /// <param name="lba">LBA to start reading from</param>
@@ -265,9 +249,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads blocks using a single block read from a SecureDigital or MultiMediaCard device</summary>
/// Reads blocks using a single block read from a SecureDigital or MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="lba">LBA to start reading from</param> /// <param name="lba">LBA to start reading from</param>
@@ -316,9 +298,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads status register from a MultiMediaCard device</summary>
/// Reads status register from a MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -339,9 +319,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads blocks with block count from a SecureDigital or MultiMediaCard device</summary>
/// Reads blocks with block count from a SecureDigital or MultiMediaCard device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="lba">LBA to start reading from</param> /// <param name="lba">LBA to start reading from</param>

View File

@@ -36,9 +36,7 @@ namespace Aaru.Devices
{ {
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Reads the status register from a SecureDigital device</summary>
/// Reads the status register from a SecureDigital device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -59,9 +57,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads the OCR register from a SecureDigital device</summary>
/// Reads the OCR register from a SecureDigital device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>
@@ -82,9 +78,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Reads the SCR register from a SecureDigital device</summary>
/// Reads the SCR register from a SecureDigital device
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="response">Response</param> /// <param name="response">Response</param>
/// <param name="timeout">Timeout to wait for command execution</param> /// <param name="timeout">Timeout to wait for command execution</param>

View File

@@ -39,9 +39,7 @@ namespace Aaru.Devices
{ {
public sealed partial class Device public sealed partial class Device
{ {
/// <summary> /// <summary>Sets the data for the integrated display</summary>
/// Sets the data for the integrated display
/// </summary>
/// <param name="senseBuffer">Returned SENSE buffer</param> /// <param name="senseBuffer">Returned SENSE buffer</param>
/// <param name="flash">If the display should start flashing</param> /// <param name="flash">If the display should start flashing</param>
/// <param name="mode">Display mode</param> /// <param name="mode">Display mode</param>

View File

@@ -32,6 +32,7 @@
using System; using System;
using Aaru.Console; using Aaru.Console;
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
namespace Aaru.Devices namespace Aaru.Devices
@@ -137,8 +138,7 @@ namespace Aaru.Devices
/// <param name="timeout">Timeout in seconds.</param> /// <param name="timeout">Timeout in seconds.</param>
/// <param name="duration">Duration in milliseconds it took for the device to execute the command.</param> /// <param name="duration">Duration in milliseconds it took for the device to execute the command.</param>
/// <returns><c>true</c> if the command failed and <paramref name="senseBuffer" /> contains the sense buffer.</returns> /// <returns><c>true</c> if the command failed and <paramref name="senseBuffer" /> contains the sense buffer.</returns>
public bool MiniDiscStopPlaying(out byte[] buffer, out byte[] senseBuffer, uint timeout, public bool MiniDiscStopPlaying(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
out double duration)
{ {
senseBuffer = new byte[64]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];

View File

@@ -777,9 +777,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Requests the device fixed sense</summary>
/// Requests the device fixed sense
/// </summary>
/// <param name="buffer">Sense buffer</param> /// <param name="buffer">Sense buffer</param>
/// <param name="timeout">Timeout in seconds.</param> /// <param name="timeout">Timeout in seconds.</param>
/// <param name="duration">Duration in milliseconds it took for the device to execute the command.</param> /// <param name="duration">Duration in milliseconds it took for the device to execute the command.</param>
@@ -787,9 +785,7 @@ namespace Aaru.Devices
public bool RequestSense(out byte[] buffer, uint timeout, out double duration) => public bool RequestSense(out byte[] buffer, uint timeout, out double duration) =>
RequestSense(false, out buffer, timeout, out duration); RequestSense(false, out buffer, timeout, out duration);
/// <summary> /// <summary>Requests the device sense</summary>
/// Requests the device sense
/// </summary>
/// <param name="descriptor">Request a descriptor sense</param> /// <param name="descriptor">Request a descriptor sense</param>
/// <param name="buffer">Sense buffer</param> /// <param name="buffer">Sense buffer</param>
/// <param name="timeout">Timeout in seconds.</param> /// <param name="timeout">Timeout in seconds.</param>

View File

@@ -952,9 +952,7 @@ namespace Aaru.Devices
return sense; return sense;
} }
/// <summary> /// <summary>Writes a space mark in the media</summary>
/// Writes a space mark in the media
/// </summary>
/// <param name="senseBuffer">Sense buffer.</param> /// <param name="senseBuffer">Sense buffer.</param>
/// <param name="code">Space type code.</param> /// <param name="code">Space type code.</param>
/// <param name="count">How many marks to write</param> /// <param name="count">How many marks to write</param>

View File

@@ -166,9 +166,7 @@ namespace Aaru.Devices
bool? _isRemoteAdmin; bool? _isRemoteAdmin;
readonly string _devicePath; readonly string _devicePath;
/// <summary> /// <summary>Returns if remote is running under administrative (aka root) privileges</summary>
/// Returns if remote is running under administrative (aka root) privileges
/// </summary>
public bool IsRemoteAdmin public bool IsRemoteAdmin
{ {
get get
@@ -179,33 +177,19 @@ namespace Aaru.Devices
} }
} }
/// <summary> /// <summary>Current device is remote</summary>
/// Current device is remote public bool IsRemote => _remote != null;
/// </summary> /// <summary>Remote application</summary>
public bool IsRemote => _remote != null; public string RemoteApplication => _remote?.ServerApplication;
/// <summary> /// <summary>Remote application server</summary>
/// Remote application public string RemoteVersion => _remote?.ServerVersion;
/// </summary> /// <summary>Remote operating system name</summary>
public string RemoteApplication => _remote?.ServerApplication; public string RemoteOperatingSystem => _remote?.ServerOperatingSystem;
/// <summary> /// <summary>Remote operating system version</summary>
/// Remote application server
/// </summary>
public string RemoteVersion => _remote?.ServerVersion;
/// <summary>
/// Remote operating system name
/// </summary>
public string RemoteOperatingSystem => _remote?.ServerOperatingSystem;
/// <summary>
/// Remote operating system version
/// </summary>
public string RemoteOperatingSystemVersion => _remote?.ServerOperatingSystemVersion; public string RemoteOperatingSystemVersion => _remote?.ServerOperatingSystemVersion;
/// <summary> /// <summary>Remote architecture</summary>
/// Remote architecture public string RemoteArchitecture => _remote?.ServerArchitecture;
/// </summary> /// <summary>Remote protocol version</summary>
public string RemoteArchitecture => _remote?.ServerArchitecture; public int RemoteProtocolVersion => _remote?.ServerProtocolVersion ?? 0;
/// <summary>
/// Remote protocol version
/// </summary>
public int RemoteProtocolVersion => _remote?.ServerProtocolVersion ?? 0;
} }
} }

View File

@@ -2674,8 +2674,7 @@ namespace Aaru.Devices
SendScr = 51 SendScr = 51
} }
[Flags] [Flags, SuppressMessage("ReSharper", "ShiftExpressionZeroLeftOperand")]
[SuppressMessage("ReSharper", "ShiftExpressionZeroLeftOperand")]
public enum MmcFlags : uint public enum MmcFlags : uint
{ {
ResponsePresent = 1 << 0, Response136 = 1 << 1, ResponseCrc = 1 << 2, ResponsePresent = 1 << 0, Response136 = 1 << 1, ResponseCrc = 1 << 2,

View File

@@ -32,26 +32,16 @@
namespace Aaru.Devices.Remote namespace Aaru.Devices.Remote
{ {
/// <summary> /// <summary>AaruRemote protocol constants</summary>
/// AaruRemote protocol constants
/// </summary>
public class Consts public class Consts
{ {
/// <summary> /// <summary>Primary unique packet identifier</summary>
/// Primary unique packet identifier public const uint REMOTE_ID = 0x52434944; // "DICR"
/// </summary> /// <summary>Secondary unique packet identifier</summary>
public const uint REMOTE_ID = 0x52434944; // "DICR" public const uint PACKET_ID = 0x544B4350; // "PCKT"
/// <summary> /// <summary>Default packet version</summary>
/// Secondary unique packet identifier public const int PACKET_VERSION = 1;
/// </summary> /// <summary>Maximum supported protocol version</summary>
public const uint PACKET_ID = 0x544B4350; // "PCKT" public const int MAX_PROTOCOL = 2;
/// <summary>
/// Default packet version
/// </summary>
public const int PACKET_VERSION = 1;
/// <summary>
/// Maximum supported protocol version
/// </summary>
public const int MAX_PROTOCOL = 2;
} }
} }

View File

@@ -32,9 +32,7 @@
namespace Aaru.Devices.Remote namespace Aaru.Devices.Remote
{ {
/// <summary> /// <summary>Packet type enumeration</summary>
/// Packet type enumeration
/// </summary>
public enum AaruPacketType : sbyte public enum AaruPacketType : sbyte
{ {
#pragma warning disable 1591 #pragma warning disable 1591
@@ -52,42 +50,24 @@ namespace Aaru.Devices.Remote
#pragma warning restore 1591 #pragma warning restore 1591
} }
/// <summary> /// <summary>Reasons for non-data request or response</summary>
/// Reasons for non-data request or response
/// </summary>
public enum AaruNopReason : byte public enum AaruNopReason : byte
{ {
/// <summary> /// <summary>Request or response has arrived unexpectedly</summary>
/// Request or response has arrived unexpectedly OutOfOrder = 0,
/// </summary> /// <summary>Packet or version of packet is not implemented</summary>
OutOfOrder = 0,
/// <summary>
/// Packet or version of packet is not implemented
/// </summary>
NotImplemented = 1, NotImplemented = 1,
/// <summary> /// <summary>Unknown or non-recognized packet</summary>
/// Unknown or non-recognized packet
/// </summary>
NotRecognized = 2, NotRecognized = 2,
/// <summary> /// <summary>Error trying to get list of devices</summary>
/// Error trying to get list of devices
/// </summary>
ErrorListDevices = 3, ErrorListDevices = 3,
/// <summary> /// <summary>Device opened correctly</summary>
/// Device opened correctly OpenOk = 4,
/// </summary> /// <summary>An error occurred opening the device</summary>
OpenOk = 4, OpenError = 5,
/// <summary> /// <summary>Device re-opened correctly</summary>
/// An error occurred opening the device ReOpenOk = 6,
/// </summary> /// <summary>An error occurred closing the device</summary>
OpenError = 5, CloseError = 7
/// <summary>
/// Device re-opened correctly
/// </summary>
ReOpenOk = 6,
/// <summary>
/// An error occurred closing the device
/// </summary>
CloseError = 7
} }
} }

View File

@@ -43,22 +43,19 @@ using Aaru.Console;
using Aaru.Decoders.ATA; using Aaru.Decoders.ATA;
using Marshal = Aaru.Helpers.Marshal; using Marshal = Aaru.Helpers.Marshal;
using Version = Aaru.CommonTypes.Interop.Version; using Version = Aaru.CommonTypes.Interop.Version;
// ReSharper disable MemberCanBeInternal // ReSharper disable MemberCanBeInternal
namespace Aaru.Devices.Remote namespace Aaru.Devices.Remote
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Handles communication with a remote device that's connected using the AaruRemote protocol</summary>
/// Handles communication with a remote device that's connected using the AaruRemote protocol
/// </summary>
public class Remote : IDisposable public class Remote : IDisposable
{ {
readonly string _host; readonly string _host;
readonly Socket _socket; readonly Socket _socket;
/// <summary> /// <summary>Connects using TCP/IP to the specified remote</summary>
/// Connects using TCP/IP to the specified remote
/// </summary>
/// <param name="uri">URI of the remote</param> /// <param name="uri">URI of the remote</param>
/// <exception cref="ArgumentException">Unsupported or invalid remote protocol.</exception> /// <exception cref="ArgumentException">Unsupported or invalid remote protocol.</exception>
/// <exception cref="SocketException">Host not found.</exception> /// <exception cref="SocketException">Host not found.</exception>
@@ -197,34 +194,20 @@ namespace Aaru.Devices.Remote
throw new IOException(); throw new IOException();
} }
/// <summary> /// <summary>Remote server application</summary>
/// Remote server application public string ServerApplication { get; }
/// </summary> /// <summary>Remote server application version</summary>
public string ServerApplication { get; } public string ServerVersion { get; }
/// <summary> /// <summary>Remote server operating system</summary>
/// Remote server application version public string ServerOperatingSystem { get; }
/// </summary> /// <summary>Remote server operating system version</summary>
public string ServerVersion { get; }
/// <summary>
/// Remote server operating system
/// </summary>
public string ServerOperatingSystem { get; }
/// <summary>
/// Remote server operating system version
/// </summary>
public string ServerOperatingSystemVersion { get; } public string ServerOperatingSystemVersion { get; }
/// <summary> /// <summary>Remote server architecture</summary>
/// Remote server architecture public string ServerArchitecture { get; }
/// </summary> /// <summary>Remote server protocol version</summary>
public string ServerArchitecture { get; } public int ServerProtocolVersion { get; }
/// <summary>
/// Remote server protocol version
/// </summary>
public int ServerProtocolVersion { get; }
/// <summary> /// <summary>Is remote running with administrative (aka root) privileges?</summary>
/// Is remote running with administrative (aka root) privileges?
/// </summary>
public bool IsRoot public bool IsRoot
{ {
get get
@@ -300,9 +283,7 @@ namespace Aaru.Devices.Remote
/// <inheritdoc /> /// <inheritdoc />
public void Dispose() => Disconnect(); public void Dispose() => Disconnect();
/// <summary> /// <summary>Disconnects from remote</summary>
/// Disconnects from remote
/// </summary>
public void Disconnect() public void Disconnect()
{ {
try try
@@ -316,9 +297,7 @@ namespace Aaru.Devices.Remote
} }
} }
/// <summary> /// <summary>Lists devices attached to remote</summary>
/// Lists devices attached to remote
/// </summary>
/// <returns>List of devices</returns> /// <returns>List of devices</returns>
public DeviceInfo[] ListDevices() public DeviceInfo[] ListDevices()
{ {
@@ -428,13 +407,14 @@ namespace Aaru.Devices.Remote
return devices.ToArray(); return devices.ToArray();
} }
/// <summary> /// <summary>Opens the specified device path on the remote</summary>
/// Opens the specified device path on the remote
/// </summary>
/// <param name="devicePath">Device path</param> /// <param name="devicePath">Device path</param>
/// <param name="lastError">Returned error</param> /// <param name="lastError">Returned error</param>
/// <returns><c>true</c> if opened correctly, <c>false</c>otherwise</returns> /// <returns><c>true</c> if opened correctly, <c>false</c>otherwise</returns>
/// <exception cref="NotImplementedException">Support for the specified device has not yet been implemented in the remote application.</exception> /// <exception cref="NotImplementedException">
/// Support for the specified device has not yet been implemented in the remote
/// application.
/// </exception>
public bool Open(string devicePath, out int lastError) public bool Open(string devicePath, out int lastError)
{ {
lastError = 0; lastError = 0;
@@ -1080,10 +1060,10 @@ namespace Aaru.Devices.Remote
return (int)res.res.error_no; return (int)res.res.error_no;
} }
/// <summary> /// <summary>Gets the <see cref="DeviceType" /> for the remote device</summary>
/// Gets the <see cref="DeviceType"/> for the remote device /// <returns>
/// </summary> /// <see cref="DeviceType" />
/// <returns><see cref="DeviceType"/></returns> /// </returns>
public DeviceType GetDeviceType() public DeviceType GetDeviceType()
{ {
var cmdPkt = new AaruPacketCmdGetDeviceType var cmdPkt = new AaruPacketCmdGetDeviceType
@@ -1153,9 +1133,7 @@ namespace Aaru.Devices.Remote
return res.device_type; return res.device_type;
} }
/// <summary> /// <summary>Retrieves the SDHCI registers from the remote device</summary>
/// Retrieves the SDHCI registers from the remote device
/// </summary>
/// <param name="csd">CSD register</param> /// <param name="csd">CSD register</param>
/// <param name="cid">CID register</param> /// <param name="cid">CID register</param>
/// <param name="ocr">OCR register</param> /// <param name="ocr">OCR register</param>
@@ -1276,9 +1254,7 @@ namespace Aaru.Devices.Remote
return res.isSdhci; return res.isSdhci;
} }
/// <summary> /// <summary>Gets the USB data from the remote device</summary>
/// Gets the USB data from the remote device
/// </summary>
/// <param name="descriptors">USB descriptors</param> /// <param name="descriptors">USB descriptors</param>
/// <param name="idVendor">USB vendor ID</param> /// <param name="idVendor">USB vendor ID</param>
/// <param name="idProduct">USB product ID</param> /// <param name="idProduct">USB product ID</param>
@@ -1373,9 +1349,7 @@ namespace Aaru.Devices.Remote
return true; return true;
} }
/// <summary> /// <summary>Gets the FireWire data from the remote device</summary>
/// Gets the FireWire data from the remote device
/// </summary>
/// <param name="idVendor">FireWire vendor ID</param> /// <param name="idVendor">FireWire vendor ID</param>
/// <param name="idProduct">FireWire product ID</param> /// <param name="idProduct">FireWire product ID</param>
/// <param name="vendor">FireWire vendor string</param> /// <param name="vendor">FireWire vendor string</param>
@@ -1468,9 +1442,7 @@ namespace Aaru.Devices.Remote
return true; return true;
} }
/// <summary> /// <summary>Gets the PCMCIA/CardBus data from the remote device</summary>
/// Gets the PCMCIA/CardBus data from the remote device
/// </summary>
/// <param name="cis">Card Information Structure</param> /// <param name="cis">Card Information Structure</param>
/// <returns><c>true</c> if the device is attached via PCMCIA or CardBus, <c>false</c> otherwise</returns> /// <returns><c>true</c> if the device is attached via PCMCIA or CardBus, <c>false</c> otherwise</returns>
public bool GetPcmciaData(out byte[] cis) public bool GetPcmciaData(out byte[] cis)
@@ -1549,9 +1521,7 @@ namespace Aaru.Devices.Remote
return true; return true;
} }
/// <summary> /// <summary>Receives data from a socket into a buffer</summary>
/// Receives data from a socket into a buffer
/// </summary>
/// <param name="socket">Socket</param> /// <param name="socket">Socket</param>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="size">Expected total size in bytes</param> /// <param name="size">Expected total size in bytes</param>
@@ -1575,9 +1545,7 @@ namespace Aaru.Devices.Remote
return offset; return offset;
} }
/// <summary> /// <summary>Closes the remote device, without closing the network connection</summary>
/// Closes the remote device, without closing the network connection
/// </summary>
public void Close() public void Close()
{ {
var cmdPkt = new AaruPacketCmdClose var cmdPkt = new AaruPacketCmdClose
@@ -1605,7 +1573,8 @@ namespace Aaru.Devices.Remote
} }
/// <summary> /// <summary>
/// Concatenates a queue of commands to be send to a remote SecureDigital or MultiMediaCard attached to an SDHCI controller /// Concatenates a queue of commands to be send to a remote SecureDigital or MultiMediaCard attached to an SDHCI
/// controller
/// </summary> /// </summary>
/// <param name="commands">List of commands</param> /// <param name="commands">List of commands</param>
/// <param name="duration">Duration to execute all commands, in milliseconds</param> /// <param name="duration">Duration to execute all commands, in milliseconds</param>
@@ -1766,7 +1735,8 @@ namespace Aaru.Devices.Remote
} }
/// <summary> /// <summary>
/// Concatenates a queue of commands to be send to a remote SecureDigital or MultiMediaCard attached to an SDHCI controller, using protocol version 1 without specific support for such a queueing /// Concatenates a queue of commands to be send to a remote SecureDigital or MultiMediaCard attached to an SDHCI
/// controller, using protocol version 1 without specific support for such a queueing
/// </summary> /// </summary>
/// <param name="commands">List of commands</param> /// <param name="commands">List of commands</param>
/// <param name="duration">Duration to execute all commands, in milliseconds</param> /// <param name="duration">Duration to execute all commands, in milliseconds</param>
@@ -1795,9 +1765,7 @@ namespace Aaru.Devices.Remote
return error; return error;
} }
/// <summary> /// <summary>Closes then immediately reopens a remote device</summary>
/// Closes then immediately reopens a remote device
/// </summary>
/// <returns>Returned error number if any</returns> /// <returns>Returned error number if any</returns>
public bool ReOpen() public bool ReOpen()
{ {
@@ -1891,9 +1859,7 @@ namespace Aaru.Devices.Remote
return false; return false;
} }
/// <summary> /// <summary>Reads data using operating system buffers.</summary>
/// Reads data using operating system buffers.
/// </summary>
/// <param name="buffer">Data buffer</param> /// <param name="buffer">Data buffer</param>
/// <param name="offset">Offset in remote device to start reading, in bytes</param> /// <param name="offset">Offset in remote device to start reading, in bytes</param>
/// <param name="length">Number of bytes to read</param> /// <param name="length">Number of bytes to read</param>

File diff suppressed because it is too large Load Diff

View File

@@ -45,9 +45,7 @@ namespace Aaru.Filesystems
// Information has been extracted looking at available disk images // Information has been extracted looking at available disk images
// This may be missing fields, or not, I don't know russian so any help is appreciated // This may be missing fields, or not, I don't know russian so any help is appreciated
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection of the AO-DOS filesystem</summary>
/// Implements detection of the AO-DOS filesystem
/// </summary>
public sealed class AODOS : IFilesystem public sealed class AODOS : IFilesystem
{ {
readonly byte[] _identifier = readonly byte[] _identifier =
@@ -57,13 +55,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Alexander Osipov DOS file system"; public string Name => "Alexander Osipov DOS file system";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("668E5039-9DDD-442A-BE1B-A315D6E38E26"); public Guid Id => new Guid("668E5039-9DDD-442A-BE1B-A315D6E38E26");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
/// <inheritdoc /> /// <inheritdoc />
public bool Identify(IMediaImage imagePlugin, Partition partition) public bool Identify(IMediaImage imagePlugin, Partition partition)

View File

@@ -42,9 +42,7 @@ using Marshal = Aaru.Helpers.Marshal;
namespace Aaru.Filesystems namespace Aaru.Filesystems
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection of the Apple File System (APFS)</summary>
/// Implements detection of the Apple File System (APFS)
/// </summary>
[SuppressMessage("ReSharper", "UnusedMember.Local")] [SuppressMessage("ReSharper", "UnusedMember.Local")]
public sealed class APFS : IFilesystem public sealed class APFS : IFilesystem
{ {
@@ -54,13 +52,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Apple File System"; public string Name => "Apple File System";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("A4060F9D-2909-42E2-9D95-DB31FA7EA797"); public Guid Id => new Guid("A4060F9D-2909-42E2-9D95-DB31FA7EA797");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
/// <inheritdoc /> /// <inheritdoc />
public bool Identify(IMediaImage imagePlugin, Partition partition) public bool Identify(IMediaImage imagePlugin, Partition partition)

View File

@@ -55,179 +55,179 @@
<ConsolePause>false</ConsolePause> <ConsolePause>false</ConsolePause>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System"/>
<Reference Include="System.Xml" /> <Reference Include="System.Xml"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Claunia.Encoding" Version="1.9.1" /> <PackageReference Include="Claunia.Encoding" Version="1.9.1"/>
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0"/>
<PackageReference Include="Unclassified.NetRevisionTask" Version="0.3.0" PrivateAssets="all" /> <PackageReference Include="Unclassified.NetRevisionTask" Version="0.3.0" PrivateAssets="all"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AppleCommon\Consts.cs" /> <Compile Include="AppleCommon\Consts.cs"/>
<Compile Include="AppleCommon\Enums.cs" /> <Compile Include="AppleCommon\Enums.cs"/>
<Compile Include="AppleCommon\Info.cs" /> <Compile Include="AppleCommon\Info.cs"/>
<Compile Include="AppleCommon\Structs.cs" /> <Compile Include="AppleCommon\Structs.cs"/>
<Compile Include="AppleHFS\AppleHFS.cs" /> <Compile Include="AppleHFS\AppleHFS.cs"/>
<Compile Include="AppleHFS\Consts.cs" /> <Compile Include="AppleHFS\Consts.cs"/>
<Compile Include="AppleHFS\Enums.cs" /> <Compile Include="AppleHFS\Enums.cs"/>
<Compile Include="AppleHFS\Info.cs" /> <Compile Include="AppleHFS\Info.cs"/>
<Compile Include="AppleHFS\Structs.cs" /> <Compile Include="AppleHFS\Structs.cs"/>
<Compile Include="FATX\Consts.cs" /> <Compile Include="FATX\Consts.cs"/>
<Compile Include="FATX\Dir.cs" /> <Compile Include="FATX\Dir.cs"/>
<Compile Include="FATX\FATX.cs" /> <Compile Include="FATX\FATX.cs"/>
<Compile Include="FATX\File.cs" /> <Compile Include="FATX\File.cs"/>
<Compile Include="FATX\Info.cs" /> <Compile Include="FATX\Info.cs"/>
<Compile Include="FATX\Structs.cs" /> <Compile Include="FATX\Structs.cs"/>
<Compile Include="FATX\Super.cs" /> <Compile Include="FATX\Super.cs"/>
<Compile Include="FAT\BPB.cs" /> <Compile Include="FAT\BPB.cs"/>
<Compile Include="FAT\Consts.cs" /> <Compile Include="FAT\Consts.cs"/>
<Compile Include="FAT\Dir.cs" /> <Compile Include="FAT\Dir.cs"/>
<Compile Include="FAT\FAT.cs" /> <Compile Include="FAT\FAT.cs"/>
<Compile Include="FAT\File.cs" /> <Compile Include="FAT\File.cs"/>
<Compile Include="FAT\Info.cs" /> <Compile Include="FAT\Info.cs"/>
<Compile Include="FAT\Structs.cs" /> <Compile Include="FAT\Structs.cs"/>
<Compile Include="FAT\Super.cs" /> <Compile Include="FAT\Super.cs"/>
<Compile Include="FAT\Xattr.cs" /> <Compile Include="FAT\Xattr.cs"/>
<Compile Include="HPOFS\Consts.cs" /> <Compile Include="HPOFS\Consts.cs"/>
<Compile Include="HPOFS\HPOFS.cs" /> <Compile Include="HPOFS\HPOFS.cs"/>
<Compile Include="HPOFS\Info.cs" /> <Compile Include="HPOFS\Info.cs"/>
<Compile Include="HPOFS\Structs.cs" /> <Compile Include="HPOFS\Structs.cs"/>
<Compile Include="ISO9660\Consts\Internal.cs" /> <Compile Include="ISO9660\Consts\Internal.cs"/>
<Compile Include="ISO9660\Date.cs" /> <Compile Include="ISO9660\Date.cs"/>
<Compile Include="ISO9660\Dir.cs" /> <Compile Include="ISO9660\Dir.cs"/>
<Compile Include="ISO9660\File.cs" /> <Compile Include="ISO9660\File.cs"/>
<Compile Include="ISO9660\Mode2.cs" /> <Compile Include="ISO9660\Mode2.cs"/>
<Compile Include="ISO9660\PathTable.cs" /> <Compile Include="ISO9660\PathTable.cs"/>
<Compile Include="ISO9660\Super.cs" /> <Compile Include="ISO9660\Super.cs"/>
<Compile Include="ISO9660\Xattr.cs" /> <Compile Include="ISO9660\Xattr.cs"/>
<Compile Include="Opera\Consts.cs" /> <Compile Include="Opera\Consts.cs"/>
<Compile Include="Opera\Dir.cs" /> <Compile Include="Opera\Dir.cs"/>
<Compile Include="Opera\File.cs" /> <Compile Include="Opera\File.cs"/>
<Compile Include="Opera\Info.cs" /> <Compile Include="Opera\Info.cs"/>
<Compile Include="Opera\Opera.cs" /> <Compile Include="Opera\Opera.cs"/>
<Compile Include="Opera\Structs.cs" /> <Compile Include="Opera\Structs.cs"/>
<Compile Include="Opera\Super.cs" /> <Compile Include="Opera\Super.cs"/>
<Compile Include="PCFX.cs" /> <Compile Include="PCFX.cs"/>
<Compile Include="AmigaDOS.cs" /> <Compile Include="AmigaDOS.cs"/>
<Compile Include="AppleHFSPlus.cs" /> <Compile Include="AppleHFSPlus.cs"/>
<Compile Include="BFS.cs" /> <Compile Include="BFS.cs"/>
<Compile Include="ext2FS.cs" /> <Compile Include="ext2FS.cs"/>
<Compile Include="extFS.cs" /> <Compile Include="extFS.cs"/>
<Compile Include="FFS.cs" /> <Compile Include="FFS.cs"/>
<Compile Include="HPFS.cs" /> <Compile Include="HPFS.cs"/>
<Compile Include="MinixFS.cs" /> <Compile Include="MinixFS.cs"/>
<Compile Include="NTFS.cs" /> <Compile Include="NTFS.cs"/>
<Compile Include="ODS.cs" /> <Compile Include="ODS.cs"/>
<Compile Include="PCEngine.cs" /> <Compile Include="PCEngine.cs"/>
<Compile Include="ProDOS.cs" /> <Compile Include="ProDOS.cs"/>
<Compile Include="ReFS.cs" /> <Compile Include="ReFS.cs"/>
<Compile Include="Register.cs" /> <Compile Include="Register.cs"/>
<Compile Include="SolarFS.cs" /> <Compile Include="SolarFS.cs"/>
<Compile Include="Symbian.cs" /> <Compile Include="Symbian.cs"/>
<Compile Include="SysV.cs" /> <Compile Include="SysV.cs"/>
<Compile Include="UNIXBFS.cs" /> <Compile Include="UNIXBFS.cs"/>
<Compile Include="Acorn.cs" /> <Compile Include="Acorn.cs"/>
<Compile Include="Nintendo.cs" /> <Compile Include="Nintendo.cs"/>
<Compile Include="BTRFS.cs" /> <Compile Include="BTRFS.cs"/>
<Compile Include="APFS.cs" /> <Compile Include="APFS.cs"/>
<Compile Include="LisaFS\LisaFS.cs" /> <Compile Include="LisaFS\LisaFS.cs"/>
<Compile Include="LisaFS\Consts.cs" /> <Compile Include="LisaFS\Consts.cs"/>
<Compile Include="LisaFS\Structs.cs" /> <Compile Include="LisaFS\Structs.cs"/>
<Compile Include="LisaFS\Info.cs" /> <Compile Include="LisaFS\Info.cs"/>
<Compile Include="LisaFS\Super.cs" /> <Compile Include="LisaFS\Super.cs"/>
<Compile Include="LisaFS\Xattr.cs" /> <Compile Include="LisaFS\Xattr.cs"/>
<Compile Include="LisaFS\Dir.cs" /> <Compile Include="LisaFS\Dir.cs"/>
<Compile Include="LisaFS\File.cs" /> <Compile Include="LisaFS\File.cs"/>
<Compile Include="LisaFS\Extent.cs" /> <Compile Include="LisaFS\Extent.cs"/>
<Compile Include="UCSDPascal\UCSDPascal.cs" /> <Compile Include="UCSDPascal\UCSDPascal.cs"/>
<Compile Include="UCSDPascal\Consts.cs" /> <Compile Include="UCSDPascal\Consts.cs"/>
<Compile Include="UCSDPascal\File.cs" /> <Compile Include="UCSDPascal\File.cs"/>
<Compile Include="UCSDPascal\Info.cs" /> <Compile Include="UCSDPascal\Info.cs"/>
<Compile Include="UCSDPascal\Structs.cs" /> <Compile Include="UCSDPascal\Structs.cs"/>
<Compile Include="UCSDPascal\Super.cs" /> <Compile Include="UCSDPascal\Super.cs"/>
<Compile Include="UCSDPascal\Dir.cs" /> <Compile Include="UCSDPascal\Dir.cs"/>
<Compile Include="AppleMFS\AppleMFS.cs" /> <Compile Include="AppleMFS\AppleMFS.cs"/>
<Compile Include="AppleMFS\Consts.cs" /> <Compile Include="AppleMFS\Consts.cs"/>
<Compile Include="AppleMFS\Dir.cs" /> <Compile Include="AppleMFS\Dir.cs"/>
<Compile Include="AppleMFS\File.cs" /> <Compile Include="AppleMFS\File.cs"/>
<Compile Include="AppleMFS\Info.cs" /> <Compile Include="AppleMFS\Info.cs"/>
<Compile Include="AppleMFS\Structs.cs" /> <Compile Include="AppleMFS\Structs.cs"/>
<Compile Include="AppleMFS\Super.cs" /> <Compile Include="AppleMFS\Super.cs"/>
<Compile Include="AppleMFS\Xattr.cs" /> <Compile Include="AppleMFS\Xattr.cs"/>
<Compile Include="exFAT.cs" /> <Compile Include="exFAT.cs"/>
<Compile Include="CPM\Info.cs" /> <Compile Include="CPM\Info.cs"/>
<Compile Include="CPM\CPM.cs" /> <Compile Include="CPM\CPM.cs"/>
<Compile Include="CPM\Structs.cs" /> <Compile Include="CPM\Structs.cs"/>
<Compile Include="CPM\Definitions.cs" /> <Compile Include="CPM\Definitions.cs"/>
<Compile Include="CPM\Dir.cs" /> <Compile Include="CPM\Dir.cs"/>
<Compile Include="CPM\Super.cs" /> <Compile Include="CPM\Super.cs"/>
<Compile Include="CPM\Consts.cs" /> <Compile Include="CPM\Consts.cs"/>
<Compile Include="CPM\File.cs" /> <Compile Include="CPM\File.cs"/>
<Compile Include="CPM\Xattr.cs" /> <Compile Include="CPM\Xattr.cs"/>
<Compile Include="QNX4.cs" /> <Compile Include="QNX4.cs"/>
<Compile Include="QNX6.cs" /> <Compile Include="QNX6.cs"/>
<Compile Include="JFS.cs" /> <Compile Include="JFS.cs"/>
<Compile Include="F2FS.cs" /> <Compile Include="F2FS.cs"/>
<Compile Include="NILFS2.cs" /> <Compile Include="NILFS2.cs"/>
<Compile Include="Reiser.cs" /> <Compile Include="Reiser.cs"/>
<Compile Include="Reiser4.cs" /> <Compile Include="Reiser4.cs"/>
<Compile Include="XFS.cs" /> <Compile Include="XFS.cs"/>
<Compile Include="PFS.cs" /> <Compile Include="PFS.cs"/>
<Compile Include="SFS.cs" /> <Compile Include="SFS.cs"/>
<Compile Include="VMfs.cs" /> <Compile Include="VMfs.cs"/>
<Compile Include="VxFS.cs" /> <Compile Include="VxFS.cs"/>
<Compile Include="Squash.cs" /> <Compile Include="Squash.cs"/>
<Compile Include="Cram.cs" /> <Compile Include="Cram.cs"/>
<Compile Include="CBM.cs" /> <Compile Include="CBM.cs"/>
<Compile Include="UDF.cs" /> <Compile Include="UDF.cs"/>
<Compile Include="ECMA67.cs" /> <Compile Include="ECMA67.cs"/>
<Compile Include="Xia.cs" /> <Compile Include="Xia.cs"/>
<Compile Include="ZFS.cs" /> <Compile Include="ZFS.cs"/>
<Compile Include="AppleDOS\Dir.cs" /> <Compile Include="AppleDOS\Dir.cs"/>
<Compile Include="AppleDOS\File.cs" /> <Compile Include="AppleDOS\File.cs"/>
<Compile Include="AppleDOS\Info.cs" /> <Compile Include="AppleDOS\Info.cs"/>
<Compile Include="AppleDOS\AppleDOS.cs" /> <Compile Include="AppleDOS\AppleDOS.cs"/>
<Compile Include="AppleDOS\Structs.cs" /> <Compile Include="AppleDOS\Structs.cs"/>
<Compile Include="AppleDOS\Super.cs" /> <Compile Include="AppleDOS\Super.cs"/>
<Compile Include="AppleDOS\Xattr.cs" /> <Compile Include="AppleDOS\Xattr.cs"/>
<Compile Include="AtheOS.cs" /> <Compile Include="AtheOS.cs"/>
<Compile Include="HAMMER.cs" /> <Compile Include="HAMMER.cs"/>
<Compile Include="Fossil.cs" /> <Compile Include="Fossil.cs"/>
<Compile Include="EFS.cs" /> <Compile Include="EFS.cs"/>
<Compile Include="UNICOS.cs" /> <Compile Include="UNICOS.cs"/>
<Compile Include="RBF.cs" /> <Compile Include="RBF.cs"/>
<Compile Include="AODOS.cs" /> <Compile Include="AODOS.cs"/>
<Compile Include="RT11.cs" /> <Compile Include="RT11.cs"/>
<Compile Include="LIF.cs" /> <Compile Include="LIF.cs"/>
<Compile Include="Locus.cs" /> <Compile Include="Locus.cs"/>
<Compile Include="dump.cs" /> <Compile Include="dump.cs"/>
<Compile Include="MicroDOS.cs" /> <Compile Include="MicroDOS.cs"/>
<Compile Include="ISO9660\Info.cs" /> <Compile Include="ISO9660\Info.cs"/>
<Compile Include="ISO9660\ISO9660.cs" /> <Compile Include="ISO9660\ISO9660.cs"/>
<Compile Include="ISO9660\Structs\ISO.cs" /> <Compile Include="ISO9660\Structs\ISO.cs"/>
<Compile Include="ISO9660\Structs\RRIP.cs" /> <Compile Include="ISO9660\Structs\RRIP.cs"/>
<Compile Include="ISO9660\Structs\SUSP.cs" /> <Compile Include="ISO9660\Structs\SUSP.cs"/>
<Compile Include="ISO9660\Structs\Amiga.cs" /> <Compile Include="ISO9660\Structs\Amiga.cs"/>
<Compile Include="ISO9660\Structs\HighSierra.cs" /> <Compile Include="ISO9660\Structs\HighSierra.cs"/>
<Compile Include="ISO9660\Structs\Apple.cs" /> <Compile Include="ISO9660\Structs\Apple.cs"/>
<Compile Include="ISO9660\Structs\ElTorito.cs" /> <Compile Include="ISO9660\Structs\ElTorito.cs"/>
<Compile Include="ISO9660\Structs\XA.cs" /> <Compile Include="ISO9660\Structs\XA.cs"/>
<Compile Include="ISO9660\Structs\Ziso.cs" /> <Compile Include="ISO9660\Structs\Ziso.cs"/>
<Compile Include="ISO9660\Structs\Joliet.cs" /> <Compile Include="ISO9660\Structs\Joliet.cs"/>
<Compile Include="ISO9660\Structs\Internal.cs" /> <Compile Include="ISO9660\Structs\Internal.cs"/>
<Compile Include="ISO9660\Consts\ISO.cs" /> <Compile Include="ISO9660\Consts\ISO.cs"/>
<Compile Include="ISO9660\Consts\HighSierra.cs" /> <Compile Include="ISO9660\Consts\HighSierra.cs"/>
<Compile Include="ISO9660\Consts\XA.cs" /> <Compile Include="ISO9660\Consts\XA.cs"/>
<Compile Include="ISO9660\Consts\ElTorito.cs" /> <Compile Include="ISO9660\Consts\ElTorito.cs"/>
<Compile Include="ISO9660\Consts\Apple.cs" /> <Compile Include="ISO9660\Consts\Apple.cs"/>
<Compile Include="ISO9660\Consts\RRIP.cs" /> <Compile Include="ISO9660\Consts\RRIP.cs"/>
<Compile Include="ISO9660\Consts\Amiga.cs" /> <Compile Include="ISO9660\Consts\Amiga.cs"/>
<Compile Include="ISO9660\Consts\SUSP.cs" /> <Compile Include="ISO9660\Consts\SUSP.cs"/>
<Compile Include="ISO9660\Consts\Ziso.cs" /> <Compile Include="ISO9660\Consts\Ziso.cs"/>
<Compile Include="ISO9660\Consts\AAIP.cs" /> <Compile Include="ISO9660\Consts\AAIP.cs"/>
<Compile Include="ISO9660\Structs\CDi.cs" /> <Compile Include="ISO9660\Structs\CDi.cs"/>
<Compile Include="ISO9660\Consts\CDi.cs" /> <Compile Include="ISO9660\Consts\CDi.cs"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Aaru.Checksums\Aaru.Checksums.csproj"> <ProjectReference Include="..\Aaru.Checksums\Aaru.Checksums.csproj">
@@ -260,54 +260,53 @@
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="LisaFS\" /> <Folder Include="LisaFS\"/>
<Folder Include="UCSDPascal\" /> <Folder Include="UCSDPascal\"/>
<Folder Include="AppleMFS\" /> <Folder Include="AppleMFS\"/>
<Folder Include="CPM\" /> <Folder Include="CPM\"/>
<Folder Include="AppleDOS\" /> <Folder Include="AppleDOS\"/>
<Folder Include="ISO9660\" /> <Folder Include="ISO9660\"/>
<Folder Include="ISO9660\Structs\" /> <Folder Include="ISO9660\Structs\"/>
<Folder Include="ISO9660\Consts\" /> <Folder Include="ISO9660\Consts\"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="..\LICENSE.LGPL"> <EmbeddedResource Include="..\LICENSE.LGPL">
<Link>LICENSE.LGPL</Link> <Link>LICENSE.LGPL</Link>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="CPM\cpmdefs.xml" /> <EmbeddedResource Include="CPM\cpmdefs.xml"/>
</ItemGroup>
<ItemGroup>
</ItemGroup> </ItemGroup>
<ItemGroup></ItemGroup>
<ProjectExtensions> <ProjectExtensions>
<MonoDevelop> <MonoDevelop>
<Properties> <Properties>
<Policies> <Policies>
<TextStylePolicy FileWidth="120" TabWidth="4" IndentWidth="4" RemoveTrailingWhitespace="True" NoTabsAfterNonTabs="False" EolMarker="Native" TabsToSpaces="True" scope="text/x-csharp" /> <TextStylePolicy FileWidth="120" TabWidth="4" IndentWidth="4" RemoveTrailingWhitespace="True" NoTabsAfterNonTabs="False" EolMarker="Native" TabsToSpaces="True" scope="text/x-csharp"/>
<CSharpFormattingPolicy IndentBlock="True" IndentBraces="False" IndentSwitchSection="True" IndentSwitchCaseSection="True" LabelPositioning="OneLess" NewLinesForBracesInTypes="True" NewLinesForBracesInMethods="True" NewLinesForBracesInProperties="True" NewLinesForBracesInAccessors="True" NewLinesForBracesInAnonymousMethods="True" NewLinesForBracesInControlBlocks="True" NewLinesForBracesInAnonymousTypes="True" NewLinesForBracesInObjectCollectionArrayInitializers="True" NewLinesForBracesInLambdaExpressionBody="True" NewLineForElse="True" NewLineForCatch="True" NewLineForFinally="True" NewLineForMembersInObjectInit="True" NewLineForMembersInAnonymousTypes="True" NewLineForClausesInQuery="True" SpacingAfterMethodDeclarationName="False" SpaceWithinMethodDeclarationParenthesis="False" SpaceBetweenEmptyMethodDeclarationParentheses="False" SpaceAfterMethodCallName="False" SpaceWithinMethodCallParentheses="False" SpaceBetweenEmptyMethodCallParentheses="False" SpaceWithinExpressionParentheses="False" SpaceWithinCastParentheses="False" SpaceWithinOtherParentheses="False" SpaceAfterCast="False" SpacesIgnoreAroundVariableDeclaration="False" SpaceBeforeOpenSquareBracket="False" SpaceBetweenEmptySquareBrackets="False" SpaceWithinSquareBrackets="False" SpaceAfterColonInBaseTypeDeclaration="True" SpaceAfterComma="True" SpaceAfterDot="False" SpaceAfterSemicolonsInForStatement="True" SpaceBeforeColonInBaseTypeDeclaration="True" SpaceBeforeComma="False" SpaceBeforeDot="False" SpaceBeforeSemicolonsInForStatement="False" SpacingAroundBinaryOperator="Single" WrappingPreserveSingleLine="True" WrappingKeepStatementsOnSingleLine="True" PlaceSystemDirectiveFirst="True" SpaceAfterControlFlowStatementKeyword="False" scope="text/x-csharp" /> <CSharpFormattingPolicy IndentBlock="True" IndentBraces="False" IndentSwitchSection="True" IndentSwitchCaseSection="True" LabelPositioning="OneLess" NewLinesForBracesInTypes="True" NewLinesForBracesInMethods="True" NewLinesForBracesInProperties="True" NewLinesForBracesInAccessors="True" NewLinesForBracesInAnonymousMethods="True" NewLinesForBracesInControlBlocks="True" NewLinesForBracesInAnonymousTypes="True" NewLinesForBracesInObjectCollectionArrayInitializers="True" NewLinesForBracesInLambdaExpressionBody="True" NewLineForElse="True" NewLineForCatch="True" NewLineForFinally="True" NewLineForMembersInObjectInit="True" NewLineForMembersInAnonymousTypes="True" NewLineForClausesInQuery="True" SpacingAfterMethodDeclarationName="False" SpaceWithinMethodDeclarationParenthesis="False" SpaceBetweenEmptyMethodDeclarationParentheses="False" SpaceAfterMethodCallName="False" SpaceWithinMethodCallParentheses="False" SpaceBetweenEmptyMethodCallParentheses="False" SpaceWithinExpressionParentheses="False" SpaceWithinCastParentheses="False" SpaceWithinOtherParentheses="False" SpaceAfterCast="False" SpacesIgnoreAroundVariableDeclaration="False" SpaceBeforeOpenSquareBracket="False" SpaceBetweenEmptySquareBrackets="False" SpaceWithinSquareBrackets="False" SpaceAfterColonInBaseTypeDeclaration="True" SpaceAfterComma="True" SpaceAfterDot="False" SpaceAfterSemicolonsInForStatement="True" SpaceBeforeColonInBaseTypeDeclaration="True" SpaceBeforeComma="False" SpaceBeforeDot="False" SpaceBeforeSemicolonsInForStatement="False" SpacingAroundBinaryOperator="Single" WrappingPreserveSingleLine="True" WrappingKeepStatementsOnSingleLine="True" PlaceSystemDirectiveFirst="True" SpaceAfterControlFlowStatementKeyword="False" scope="text/x-csharp"/>
<DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild" /> <DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild"/>
<StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************&#xA;Aaru Data Preservation Suite&#xA;----------------------------------------------------------------------------&#xA; &#xA;Filename : ${FileName}&#xA;Author(s) : ${AuthorName} &lt;${AuthorEmail}&gt;&#xA;&#xA;Component : Component&#xA; &#xA;--[ Description ] ----------------------------------------------------------&#xA; &#xA; Description&#xA; &#xA;--[ License ] --------------------------------------------------------------&#xA; &#xA; This library is free software; you can redistribute it and/or modify&#xA; it under the terms of the GNU Lesser General Public License as&#xA; published by the Free Software Foundation; either version 2.1 of the&#xA; License, or (at your option) any later version.&#xA;&#xA; This library is distributed in the hope that it will be useful, but&#xA; WITHOUT ANY WARRANTY; without even the implied warranty of&#xA; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&#xA; Lesser General Public License for more details.&#xA;&#xA; You should have received a copy of the GNU Lesser General Public&#xA; License along with this library; if not, see &lt;http://www.gnu.org/licenses/&gt;.&#xA;&#xA;----------------------------------------------------------------------------&#xA;Copyright © 2011-${Year} ${CopyrightHolder}&#xA;****************************************************************************/" /> <StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************&#xA;Aaru Data Preservation Suite&#xA;----------------------------------------------------------------------------&#xA; &#xA;Filename : ${FileName}&#xA;Author(s) : ${AuthorName} &lt;${AuthorEmail}&gt;&#xA;&#xA;Component : Component&#xA; &#xA;--[ Description ] ----------------------------------------------------------&#xA; &#xA; Description&#xA; &#xA;--[ License ] --------------------------------------------------------------&#xA; &#xA; This library is free software; you can redistribute it and/or modify&#xA; it under the terms of the GNU Lesser General Public License as&#xA; published by the Free Software Foundation; either version 2.1 of the&#xA; License, or (at your option) any later version.&#xA;&#xA; This library is distributed in the hope that it will be useful, but&#xA; WITHOUT ANY WARRANTY; without even the implied warranty of&#xA; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&#xA; Lesser General Public License for more details.&#xA;&#xA; You should have received a copy of the GNU Lesser General Public&#xA; License along with this library; if not, see &lt;http://www.gnu.org/licenses/&gt;.&#xA;&#xA;----------------------------------------------------------------------------&#xA;Copyright © 2011-${Year} ${CopyrightHolder}&#xA;****************************************************************************/"/>
</Policies> </Policies>
</Properties> </Properties>
</MonoDevelop> </MonoDevelop>
</ProjectExtensions> </ProjectExtensions>
<PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'"> <PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">
<!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you --> <!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
<!-- have to teach MSBuild where the Mono copy of the reference asssemblies is --> <!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
<!-- Look in the standard install locations --> <!-- Look in the standard install locations -->
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono>
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono> <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono>
<!-- If we found Mono reference assemblies, then use them --> <!-- If we found Mono reference assemblies, then use them -->
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride> <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
<EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride> <EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride>
<!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 --> <!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 -->
<AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths> <AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -44,9 +44,7 @@ using Marshal = Aaru.Helpers.Marshal;
namespace Aaru.Filesystems namespace Aaru.Filesystems
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection of Acorn's Advanced Data Filing System (ADFS)</summary>
/// Implements detection of Acorn's Advanced Data Filing System (ADFS)
/// </summary>
public sealed class AcornADFS : IFilesystem public sealed class AcornADFS : IFilesystem
{ {
/// <summary>Location for boot block, in bytes</summary> /// <summary>Location for boot block, in bytes</summary>
@@ -70,13 +68,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Acorn Advanced Disc Filing System"; public string Name => "Acorn Advanced Disc Filing System";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("BAFC1E50-9C64-4CD3-8400-80628CC27AFA"); public Guid Id => new Guid("BAFC1E50-9C64-4CD3-8400-80628CC27AFA");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
// TODO: BBC Master hard disks are untested... // TODO: BBC Master hard disks are untested...
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -45,9 +45,7 @@ using Marshal = Aaru.Helpers.Marshal;
namespace Aaru.Filesystems namespace Aaru.Filesystems
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection of Amiga Fast File System (AFFS)</summary>
/// Implements detection of Amiga Fast File System (AFFS)
/// </summary>
public sealed class AmigaDOSPlugin : IFilesystem public sealed class AmigaDOSPlugin : IFilesystem
{ {
const uint FFS_MASK = 0x444F5300; const uint FFS_MASK = 0x444F5300;
@@ -59,13 +57,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Amiga DOS filesystem"; public string Name => "Amiga DOS filesystem";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("3c882400-208c-427d-a086-9119852a1bc7"); public Guid Id => new Guid("3c882400-208c-427d-a086-9119852a1bc7");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
/// <inheritdoc /> /// <inheritdoc />
public bool Identify(IMediaImage imagePlugin, Partition partition) public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -117,7 +115,7 @@ namespace Aaru.Filesystems
ulong[] rootPtrs = ulong[] rootPtrs =
{ {
bRootPtr + partition.Start, ((partition.End - partition.Start + 1) / 2) + partition.Start - 2, bRootPtr + partition.Start, ((partition.End - partition.Start + 1) / 2) + partition.Start - 2,
((partition.End - partition.Start + 1) / 2) + partition.Start - 1, ((partition.End - partition.Start + 1) / 2) + partition.Start - 1,
((partition.End - partition.Start + 1) / 2) + partition.Start, ((partition.End - partition.Start + 1) / 2) + partition.Start,
((partition.End - partition.Start + 1) / 2) + partition.Start + 4 ((partition.End - partition.Start + 1) / 2) + partition.Start + 4
}; };
@@ -202,7 +200,7 @@ namespace Aaru.Filesystems
ulong[] rootPtrs = ulong[] rootPtrs =
{ {
bRootPtr + partition.Start, ((partition.End - partition.Start + 1) / 2) + partition.Start - 2, bRootPtr + partition.Start, ((partition.End - partition.Start + 1) / 2) + partition.Start - 2,
((partition.End - partition.Start + 1) / 2) + partition.Start - 1, ((partition.End - partition.Start + 1) / 2) + partition.Start - 1,
((partition.End - partition.Start + 1) / 2) + partition.Start, ((partition.End - partition.Start + 1) / 2) + partition.Start,
((partition.End - partition.Start + 1) / 2) + partition.Start + 4 ((partition.End - partition.Start + 1) / 2) + partition.Start + 4
}; };

View File

@@ -39,9 +39,7 @@ using Schemas;
namespace Aaru.Filesystems namespace Aaru.Filesystems
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements the Apple DOS 3 filesystem</summary>
/// Implements the Apple DOS 3 filesystem
/// </summary>
public sealed partial class AppleDOS : IReadOnlyFilesystem public sealed partial class AppleDOS : IReadOnlyFilesystem
{ {
bool _debug; bool _debug;
@@ -58,13 +56,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Apple DOS File System"; public string Name => "Apple DOS File System";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("8658A1E9-B2E7-4BCC-9638-157A31B0A700\n"); public Guid Id => new Guid("8658A1E9-B2E7-4BCC-9638-157A31B0A700\n");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
/// <inheritdoc /> /// <inheritdoc />
public IEnumerable<(string name, Type type, string description)> SupportedOptions => public IEnumerable<(string name, Type type, string description)> SupportedOptions =>

View File

@@ -41,20 +41,18 @@ namespace Aaru.Filesystems
// Information from Inside Macintosh // Information from Inside Macintosh
// https://developer.apple.com/legacy/library/documentation/mac/pdf/Files/File_Manager.pdf // https://developer.apple.com/legacy/library/documentation/mac/pdf/Files/File_Manager.pdf
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection of the Apple Hierarchical File System (HFS)</summary>
/// Implements detection of the Apple Hierarchical File System (HFS)
/// </summary>
public sealed partial class AppleHFS : IFilesystem public sealed partial class AppleHFS : IFilesystem
{ {
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Apple Hierarchical File System"; public string Name => "Apple Hierarchical File System";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("36405F8D-0D26-6ECC-0BBB-1D5225FF404F"); public Guid Id => new Guid("36405F8D-0D26-6ECC-0BBB-1D5225FF404F");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
} }
} }

View File

@@ -43,21 +43,19 @@ namespace Aaru.Filesystems
{ {
// Information from Apple TechNote 1150: https://developer.apple.com/legacy/library/technotes/tn/tn1150.html // Information from Apple TechNote 1150: https://developer.apple.com/legacy/library/technotes/tn/tn1150.html
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection of Apple Hierarchical File System Plus (HFS+)</summary>
/// Implements detection of Apple Hierarchical File System Plus (HFS+)
/// </summary>
public sealed class AppleHFSPlus : IFilesystem public sealed class AppleHFSPlus : IFilesystem
{ {
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Apple HFS+ filesystem"; public string Name => "Apple HFS+ filesystem";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("36405F8D-0D26-6EBE-436F-62F0586B4F08"); public Guid Id => new Guid("36405F8D-0D26-6EBE-436F-62F0586B4F08");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
/// <inheritdoc /> /// <inheritdoc />
public bool Identify(IMediaImage imagePlugin, Partition partition) public bool Identify(IMediaImage imagePlugin, Partition partition)

View File

@@ -40,9 +40,7 @@ namespace Aaru.Filesystems
{ {
// Information from Inside Macintosh Volume II // Information from Inside Macintosh Volume II
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements the Apple Macintosh File System</summary>
/// Implements the Apple Macintosh File System
/// </summary>
public sealed partial class AppleMFS : IReadOnlyFilesystem public sealed partial class AppleMFS : IReadOnlyFilesystem
{ {
bool _mounted; bool _mounted;
@@ -67,13 +65,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Apple Macintosh File System"; public string Name => "Apple Macintosh File System";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("36405F8D-0D26-4066-6538-5DBF5D065C3A"); public Guid Id => new Guid("36405F8D-0D26-4066-6538-5DBF5D065C3A");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
// TODO: Implement Finder namespace (requires decoding Desktop database) // TODO: Implement Finder namespace (requires decoding Desktop database)
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -43,9 +43,7 @@ using Marshal = Aaru.Helpers.Marshal;
namespace Aaru.Filesystems namespace Aaru.Filesystems
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection for the AtheOS filesystem</summary>
/// Implements detection for the AtheOS filesystem
/// </summary>
[SuppressMessage("ReSharper", "UnusedMember.Local")] [SuppressMessage("ReSharper", "UnusedMember.Local")]
public sealed class AtheOS : IFilesystem public sealed class AtheOS : IFilesystem
{ {
@@ -61,13 +59,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "AtheOS Filesystem"; public string Name => "AtheOS Filesystem";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("AAB2C4F1-DC07-49EE-A948-576CC51B58C5"); public Guid Id => new Guid("AAB2C4F1-DC07-49EE-A948-576CC51B58C5");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
/// <inheritdoc /> /// <inheritdoc />
public bool Identify(IMediaImage imagePlugin, Partition partition) public bool Identify(IMediaImage imagePlugin, Partition partition)

View File

@@ -44,9 +44,7 @@ namespace Aaru.Filesystems
{ {
// Information from Practical Filesystem Design, ISBN 1-55860-497-9 // Information from Practical Filesystem Design, ISBN 1-55860-497-9
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection of the Be (new) filesystem</summary>
/// Implements detection of the Be (new) filesystem
/// </summary>
[SuppressMessage("ReSharper", "UnusedMember.Local")] [SuppressMessage("ReSharper", "UnusedMember.Local")]
public sealed class BeFS : IFilesystem public sealed class BeFS : IFilesystem
{ {
@@ -67,13 +65,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Be Filesystem"; public string Name => "Be Filesystem";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("dc8572b3-b6ad-46e4-8de9-cbe123ff6672"); public Guid Id => new Guid("dc8572b3-b6ad-46e4-8de9-cbe123ff6672");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
/// <inheritdoc /> /// <inheritdoc />
public bool Identify(IMediaImage imagePlugin, Partition partition) public bool Identify(IMediaImage imagePlugin, Partition partition)

View File

@@ -42,9 +42,7 @@ using Marshal = Aaru.Helpers.Marshal;
namespace Aaru.Filesystems namespace Aaru.Filesystems
{ {
/// <inheritdoc /> /// <inheritdoc />
/// <summary> /// <summary>Implements detection of the b-tree filesystem (btrfs)</summary>
/// Implements detection of the b-tree filesystem (btrfs)
/// </summary>
public sealed class BTRFS : IFilesystem public sealed class BTRFS : IFilesystem
{ {
/// <summary>BTRFS magic "_BHRfS_M"</summary> /// <summary>BTRFS magic "_BHRfS_M"</summary>
@@ -53,13 +51,13 @@ namespace Aaru.Filesystems
/// <inheritdoc /> /// <inheritdoc />
public FileSystemType XmlFsType { get; private set; } public FileSystemType XmlFsType { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; } public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => "B-tree file system"; public string Name => "B-tree file system";
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new Guid("C904CF15-5222-446B-B7DB-02EAC5D781B3"); public Guid Id => new Guid("C904CF15-5222-446B-B7DB-02EAC5D781B3");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => "Natalia Portillo";
/// <inheritdoc /> /// <inheritdoc />
public bool Identify(IMediaImage imagePlugin, Partition partition) public bool Identify(IMediaImage imagePlugin, Partition partition)

Some files were not shown because too many files have changed in this diff Show More