mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 11:14:25 +00:00
General code refactor.
This commit is contained in:
65
.github/CODE_OF_CONDUCT.md
vendored
65
.github/CODE_OF_CONDUCT.md
vendored
@@ -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
|
||||||
|
|||||||
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -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]
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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...");
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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="/***************************************************************************
Aaru Data Preservation Suite
----------------------------------------------------------------------------
 
Filename : ${FileName}
Author(s) : ${AuthorName} <${AuthorEmail}>

Component : Component
 
--[ Description ] ----------------------------------------------------------
 
 Description
 
--[ License ] --------------------------------------------------------------
 
 This library is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as
 published by the Free Software Foundation; either version 2.1 of the
 License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, see <http://www.gnu.org/licenses/>.

----------------------------------------------------------------------------
Copyright © 2011-${Year} ${CopyrightHolder}
****************************************************************************/" />
|
<StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************
Aaru Data Preservation Suite
----------------------------------------------------------------------------
 
Filename : ${FileName}
Author(s) : ${AuthorName} <${AuthorEmail}>

Component : Component
 
--[ Description ] ----------------------------------------------------------
 
 Description
 
--[ License ] --------------------------------------------------------------
 
 This library is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as
 published by the Free Software Foundation; either version 2.1 of the
 License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, see <http://www.gnu.org/licenses/>.

----------------------------------------------------------------------------
Copyright © 2011-${Year} ${CopyrightHolder}
****************************************************************************/"/>
|
||||||
<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>
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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 {}
|
||||||
}
|
}
|
||||||
@@ -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="/***************************************************************************
Aaru Data Preservation Suite
----------------------------------------------------------------------------
 
Filename : ${FileName}
Author(s) : ${AuthorName} <${AuthorEmail}>

Component : Component
 
--[ Description ] ----------------------------------------------------------
 
 Description
 
--[ License ] --------------------------------------------------------------
 
 This library is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as
 published by the Free Software Foundation; either version 2.1 of the
 License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, see <http://www.gnu.org/licenses/>.

----------------------------------------------------------------------------
Copyright © 2011-${Year} ${CopyrightHolder}
****************************************************************************/" />
|
<StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************
Aaru Data Preservation Suite
----------------------------------------------------------------------------
 
Filename : ${FileName}
Author(s) : ${AuthorName} <${AuthorEmail}>

Component : Component
 
--[ Description ] ----------------------------------------------------------
 
 Description
 
--[ License ] --------------------------------------------------------------
 
 This library is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as
 published by the Free Software Foundation; either version 2.1 of the
 License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, see <http://www.gnu.org/licenses/>.

----------------------------------------------------------------------------
Copyright © 2011-${Year} ${CopyrightHolder}
****************************************************************************/"/>
|
||||||
<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>
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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,
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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="/***************************************************************************
Aaru Data Preservation Suite
----------------------------------------------------------------------------
 
Filename : ${FileName}
Author(s) : ${AuthorName} <${AuthorEmail}>

Component : Component
 
--[ Description ] ----------------------------------------------------------
 
 Description
 
--[ License ] --------------------------------------------------------------
 
 This library is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as
 published by the Free Software Foundation; either version 2.1 of the
 License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, see <http://www.gnu.org/licenses/>.

----------------------------------------------------------------------------
Copyright © 2011-${Year} ${CopyrightHolder}
****************************************************************************/" />
|
<StandardHeader IncludeInNewFiles="True" Text="/***************************************************************************
Aaru Data Preservation Suite
----------------------------------------------------------------------------
 
Filename : ${FileName}
Author(s) : ${AuthorName} <${AuthorEmail}>

Component : Component
 
--[ Description ] ----------------------------------------------------------
 
 Description
 
--[ License ] --------------------------------------------------------------
 
 This library is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as
 published by the Free Software Foundation; either version 2.1 of the
 License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, see <http://www.gnu.org/licenses/>.

----------------------------------------------------------------------------
Copyright © 2011-${Year} ${CopyrightHolder}
****************************************************************************/"/>
|
||||||
</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>
|
||||||
@@ -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 />
|
||||||
|
|||||||
@@ -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
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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 =>
|
||||||
|
|||||||
@@ -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";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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 />
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
Reference in New Issue
Block a user