Files
Aaru/Aaru.Core/Devices/Info/Properties.cs

139 lines
6.1 KiB
C#

// /***************************************************************************
// Aaru Data Preservation Suite
// ----------------------------------------------------------------------------
//
// Filename : Properties.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Core.
//
// --[ Description ] ----------------------------------------------------------
//
// Contains the device info properties.
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
namespace Aaru.Core.Devices.Info;
using System.Collections.Generic;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Structs.Devices.SCSI;
using Aaru.Decoders.ATA;
using Aaru.Decoders.DVD;
using Aaru.Decoders.SCSI;
using Aaru.Decoders.SCSI.SSC;
using Aaru.Devices;
using Inquiry = Aaru.CommonTypes.Structs.Devices.SCSI.Inquiry;
public partial class DeviceInfo
{
/// <summary>Raw IDENTIFY DEVICE response</summary>
public byte[] AtaIdentify { get; }
/// <summary>Raw IDENTIFY PACKET DEVICE response</summary>
public byte[] AtapiIdentify { get; }
/// <summary>Raw INQUIRY response</summary>
public byte[] ScsiInquiryData { get; }
/// <summary>Decoded INQUIRY response</summary>
public Inquiry? ScsiInquiry { get; }
/// <summary>Response for ATA Memory Card Pass Through</summary>
public AtaErrorRegistersChs? AtaMcptError { get; }
/// <summary>List of raw EVPD page indexed by page number</summary>
public Dictionary<byte, byte[]> ScsiEvpdPages { get; }
/// <summary>Decoded MODE SENSE response</summary>
public Modes.DecodedMode? ScsiMode { get; }
/// <summary>Raw MODE SENSE(6) response</summary>
public byte[] ScsiModeSense6 { get; }
/// <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; }
/// <summary>Raw CID registers</summary>
public byte[] CID { get; }
/// <summary>Raw CSD</summary>
public byte[] CSD { get; }
/// <summary>Raw extended CSD</summary>
public byte[] ExtendedCSD { get; }
/// <summary>Raw SCR registers</summary>
public byte[] SCR { get; }
/// <summary>Raw OCR registers</summary>
public byte[] OCR { get; }
/// <summary>Aaru's device type</summary>
public DeviceType Type { get; }
/// <summary>Device manufacturer</summary>
public string Manufacturer { get; }
/// <summary>Device model</summary>
public string Model { get; }
/// <summary>Device firmware version or revision</summary>
public string FirmwareRevision { get; }
/// <summary>Device serial number</summary>
public string Serial { get; }
/// <summary>SCSI Peripheral Device Type</summary>
public PeripheralDeviceTypes ScsiType { get; }
/// <summary>Is media removable from device?</summary>
public bool IsRemovable { get; }
/// <summary>Is device attached via USB?</summary>
public bool IsUsb { get; }
/// <summary>USB vendor ID</summary>
public ushort UsbVendorId { get; }
/// <summary>USB product ID</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; }
}