mirror of
https://github.com/aaru-dps/Aaru.Decoders.git
synced 2025-12-16 19:24:32 +00:00
Remove the ability to support little endian from BigEndianBitConverter.
This commit is contained in:
@@ -70,14 +70,14 @@ namespace DiscImageChef.Decoders.Bluray
|
||||
return null;
|
||||
}
|
||||
|
||||
BurstCuttingArea decoded = new BurstCuttingArea();
|
||||
BurstCuttingArea decoded = new BurstCuttingArea
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(BCAResponse, 0),
|
||||
Reserved1 = BCAResponse[2],
|
||||
Reserved2 = BCAResponse[3],
|
||||
BCA = new byte[64]
|
||||
};
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(BCAResponse, 0);
|
||||
decoded.Reserved1 = BCAResponse[2];
|
||||
decoded.Reserved2 = BCAResponse[3];
|
||||
decoded.BCA = new byte[64];
|
||||
Array.Copy(BCAResponse, 4, decoded.BCA, 0, 64);
|
||||
|
||||
return decoded;
|
||||
|
||||
@@ -72,21 +72,20 @@ namespace DiscImageChef.Decoders.Bluray
|
||||
return null;
|
||||
}
|
||||
|
||||
CartridgeStatus decoded = new CartridgeStatus();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CSResponse, 0);
|
||||
decoded.Reserved1 = CSResponse[2];
|
||||
decoded.Reserved2 = CSResponse[3];
|
||||
decoded.Cartridge = Convert.ToBoolean(CSResponse[4] & 0x80);
|
||||
decoded.OUT = Convert.ToBoolean(CSResponse[4] & 0x40);
|
||||
decoded.Reserved3 = (byte)((CSResponse[4] & 0x38) >> 3);
|
||||
decoded.OUT = Convert.ToBoolean(CSResponse[4] & 0x04);
|
||||
decoded.Reserved4 = (byte)(CSResponse[4] & 0x03);
|
||||
decoded.Reserved5 = CSResponse[5];
|
||||
decoded.Reserved6 = CSResponse[6];
|
||||
decoded.Reserved7 = CSResponse[7];
|
||||
CartridgeStatus decoded = new CartridgeStatus
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(CSResponse, 0),
|
||||
Reserved1 = CSResponse[2],
|
||||
Reserved2 = CSResponse[3],
|
||||
Cartridge = Convert.ToBoolean(CSResponse[4] & 0x80),
|
||||
OUT = Convert.ToBoolean(CSResponse[4] & 0x40),
|
||||
Reserved3 = (byte)((CSResponse[4] & 0x38) >> 3),
|
||||
CWP = Convert.ToBoolean(CSResponse[4] & 0x04),
|
||||
Reserved4 = (byte)(CSResponse[4] & 0x03),
|
||||
Reserved5 = CSResponse[5],
|
||||
Reserved6 = CSResponse[6],
|
||||
Reserved7 = CSResponse[7]
|
||||
};
|
||||
|
||||
return decoded;
|
||||
}
|
||||
|
||||
@@ -70,14 +70,14 @@ namespace DiscImageChef.Decoders.Bluray
|
||||
{
|
||||
if(DDSResponse == null) return null;
|
||||
|
||||
DiscDefinitionStructure decoded = new DiscDefinitionStructure();
|
||||
DiscDefinitionStructure decoded = new DiscDefinitionStructure
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(DDSResponse, 0),
|
||||
Reserved1 = DDSResponse[2],
|
||||
Reserved2 = DDSResponse[3],
|
||||
Signature = BigEndianBitConverter.ToUInt16(DDSResponse, 4)
|
||||
};
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(DDSResponse, 0);
|
||||
decoded.Reserved1 = DDSResponse[2];
|
||||
decoded.Reserved2 = DDSResponse[3];
|
||||
decoded.Signature = BigEndianBitConverter.ToUInt16(DDSResponse, 4);
|
||||
if(decoded.Signature != DDSIdentifier)
|
||||
{
|
||||
DicConsole.DebugWriteLine("BD DDS decoder", "Found incorrect DDS signature (0x{0:X4})",
|
||||
|
||||
@@ -83,13 +83,12 @@ namespace DiscImageChef.Decoders.Bluray
|
||||
return null;
|
||||
}
|
||||
|
||||
DiscInformation decoded = new DiscInformation();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(DIResponse, 0);
|
||||
decoded.Reserved1 = DIResponse[2];
|
||||
decoded.Reserved2 = DIResponse[3];
|
||||
DiscInformation decoded = new DiscInformation
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(DIResponse, 0),
|
||||
Reserved1 = DIResponse[2],
|
||||
Reserved2 = DIResponse[3]
|
||||
};
|
||||
|
||||
int offset = 4;
|
||||
List<DiscInformationUnits> units = new List<DiscInformationUnits>();
|
||||
@@ -141,6 +140,7 @@ namespace DiscImageChef.Decoders.Bluray
|
||||
Array.Copy(DIResponse, 32 + offset, unit.FormatDependentContents, 0, 32);
|
||||
break;
|
||||
}
|
||||
|
||||
case DiscTypeBDRE:
|
||||
case DiscTypeBDR:
|
||||
{
|
||||
@@ -156,6 +156,7 @@ namespace DiscImageChef.Decoders.Bluray
|
||||
offset += 14;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
DicConsole.DebugWriteLine("BD Disc Information decoder",
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
// Copyright © 2011-2019 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using DiscImageChef.Console;
|
||||
@@ -71,16 +70,15 @@ namespace DiscImageChef.Decoders.Bluray
|
||||
return null;
|
||||
}
|
||||
|
||||
SpareAreaInformation decoded = new SpareAreaInformation();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(SAIResponse, 0);
|
||||
decoded.Reserved1 = SAIResponse[2];
|
||||
decoded.Reserved2 = SAIResponse[3];
|
||||
decoded.Reserved3 = BigEndianBitConverter.ToUInt32(SAIResponse, 4);
|
||||
decoded.FreeSpareBlocks = BigEndianBitConverter.ToUInt32(SAIResponse, 8);
|
||||
decoded.AllocatedSpareBlocks = BigEndianBitConverter.ToUInt32(SAIResponse, 12);
|
||||
SpareAreaInformation decoded = new SpareAreaInformation
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(SAIResponse, 0),
|
||||
Reserved1 = SAIResponse[2],
|
||||
Reserved2 = SAIResponse[3],
|
||||
Reserved3 = BigEndianBitConverter.ToUInt32(SAIResponse, 4),
|
||||
FreeSpareBlocks = BigEndianBitConverter.ToUInt32(SAIResponse, 8),
|
||||
AllocatedSpareBlocks = BigEndianBitConverter.ToUInt32(SAIResponse, 12)
|
||||
};
|
||||
|
||||
return decoded;
|
||||
}
|
||||
|
||||
@@ -228,8 +228,6 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
CDATIP decoded = new CDATIP();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
if(CDATIPResponse.Length != 32 && CDATIPResponse.Length != 28)
|
||||
{
|
||||
DicConsole.DebugWriteLine("CD ATIP decoder",
|
||||
|
||||
@@ -194,13 +194,13 @@ namespace DiscImageChef.Decoders.CD
|
||||
{
|
||||
if(CDTextResponse == null) return null;
|
||||
|
||||
CDText decoded = new CDText();
|
||||
CDText decoded = new CDText
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(CDTextResponse, 0),
|
||||
Reserved1 = CDTextResponse[2],
|
||||
Reserved2 = CDTextResponse[3]
|
||||
};
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDTextResponse, 0);
|
||||
decoded.Reserved1 = CDTextResponse[2];
|
||||
decoded.Reserved2 = CDTextResponse[3];
|
||||
decoded.DataPacks = new CDTextPack[(decoded.DataLength - 2) / 18];
|
||||
|
||||
if(decoded.DataLength == 2) return null;
|
||||
@@ -260,6 +260,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
else sb.AppendFormat("track {0}", descriptor.HeaderID2).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x81:
|
||||
{
|
||||
sb.Append("CD-Text pack contains performer for ");
|
||||
@@ -267,6 +268,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
else sb.AppendFormat("track {0}", descriptor.HeaderID2).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x82:
|
||||
{
|
||||
sb.Append("CD-Text pack contains songwriter for ");
|
||||
@@ -274,12 +276,14 @@ namespace DiscImageChef.Decoders.CD
|
||||
else sb.AppendFormat("track {0}", descriptor.HeaderID2).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x83:
|
||||
{
|
||||
if(descriptor.HeaderID2 == 0x00) sb.AppendLine("album");
|
||||
else sb.AppendFormat("track {0}", descriptor.HeaderID2).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x84:
|
||||
{
|
||||
sb.Append("CD-Text pack contains arranger for ");
|
||||
@@ -287,6 +291,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
else sb.AppendFormat("track {0}", descriptor.HeaderID2).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x85:
|
||||
{
|
||||
sb.Append("CD-Text pack contains content provider's message for ");
|
||||
@@ -294,26 +299,31 @@ namespace DiscImageChef.Decoders.CD
|
||||
else sb.AppendFormat("track {0}", descriptor.HeaderID2).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x86:
|
||||
{
|
||||
sb.AppendLine("CD-Text pack contains disc identification information");
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x87:
|
||||
{
|
||||
sb.AppendLine("CD-Text pack contains genre identification information");
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x88:
|
||||
{
|
||||
sb.AppendLine("CD-Text pack contains table of contents information");
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x89:
|
||||
{
|
||||
sb.AppendLine("CD-Text pack contains second table of contents information");
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x8A:
|
||||
case 0x8B:
|
||||
case 0x8C:
|
||||
@@ -321,17 +331,20 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendLine("CD-Text pack contains reserved data");
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x8D:
|
||||
{
|
||||
sb.AppendLine("CD-Text pack contains data reserved for content provider only");
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x8E:
|
||||
{
|
||||
if(descriptor.HeaderID2 == 0x00) sb.AppendLine("CD-Text pack contains UPC");
|
||||
else sb.AppendFormat("track {0}", descriptor.HeaderID2).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x8F:
|
||||
{
|
||||
sb.AppendLine("CD-Text pack contains size block information");
|
||||
@@ -359,6 +372,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
Encoding.GetEncoding("iso-8859-1"))).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
sb.AppendFormat("Binary contents: {0}",
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
// Copyright © 2011-2019 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using DiscImageChef.Console;
|
||||
@@ -153,13 +152,13 @@ namespace DiscImageChef.Decoders.CD
|
||||
{
|
||||
if(CDFullTOCResponse == null) return null;
|
||||
|
||||
CDFullTOC decoded = new CDFullTOC();
|
||||
CDFullTOC decoded = new CDFullTOC
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(CDFullTOCResponse, 0),
|
||||
FirstCompleteSession = CDFullTOCResponse[2],
|
||||
LastCompleteSession = CDFullTOCResponse[3]
|
||||
};
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDFullTOCResponse, 0);
|
||||
decoded.FirstCompleteSession = CDFullTOCResponse[2];
|
||||
decoded.LastCompleteSession = CDFullTOCResponse[3];
|
||||
decoded.TrackDescriptors = new TrackDataDescriptor[(decoded.DataLength - 2) / 11];
|
||||
|
||||
if(decoded.DataLength + 2 != CDFullTOCResponse.Length)
|
||||
@@ -271,6 +270,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xA0 when descriptor.ADR == 1:
|
||||
{
|
||||
sb.AppendFormat("First track number: {0} (", descriptor.PMIN);
|
||||
@@ -301,6 +301,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
//sb.AppendFormat("Absolute time: {3:D2}:{0:D2}:{1:D2}:{2:D2}", descriptor.Min, descriptor.Sec, descriptor.Frame, descriptor.HOUR).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xA1 when descriptor.ADR == 4:
|
||||
sb.AppendFormat("Last video track number: {0}", descriptor.PMIN).AppendLine();
|
||||
break;
|
||||
@@ -333,6 +334,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
//sb.AppendFormat("Absolute time: {3:D2}:{0:D2}:{1:D2}:{2:D2}", descriptor.Min, descriptor.Sec, descriptor.Frame, descriptor.HOUR).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xA2:
|
||||
{
|
||||
if(descriptor.PHOUR > 0)
|
||||
@@ -361,6 +363,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xF0:
|
||||
{
|
||||
sb.AppendFormat("Book type: 0x{0:X2}", descriptor.PMIN);
|
||||
@@ -374,6 +377,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
descriptor.Sec, descriptor.Frame).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
if(descriptor.POINT >= 0x01 && descriptor.POINT <= 0x63)
|
||||
@@ -444,6 +448,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 5:
|
||||
{
|
||||
switch(descriptor.POINT)
|
||||
@@ -474,6 +479,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xB1:
|
||||
{
|
||||
sb.AppendFormat("Number of skip interval pointers: {0}", descriptor.PMIN)
|
||||
@@ -481,6 +487,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendFormat("Number of skip track pointers: {0}", descriptor.PSEC).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xB2:
|
||||
case 0xB3:
|
||||
case 0xB4:
|
||||
@@ -494,6 +501,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendFormat("Skip track {0}", descriptor.PFRAME).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xC0:
|
||||
{
|
||||
sb.AppendFormat("Optimum recording power: 0x{0:X2}", descriptor.Min).AppendLine();
|
||||
@@ -509,6 +517,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
.AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xC1:
|
||||
{
|
||||
sb.AppendFormat("Copy of information of A1 from ATIP found");
|
||||
@@ -521,6 +530,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
case 0xCF:
|
||||
{
|
||||
if(descriptor.PHOUR > 0)
|
||||
@@ -547,6 +557,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
if(descriptor.POINT >= 0x01 && descriptor.POINT <= 0x40)
|
||||
@@ -581,6 +592,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 6:
|
||||
{
|
||||
uint id = (uint)((descriptor.Min << 16) + (descriptor.Sec << 8) + descriptor.Frame);
|
||||
|
||||
13
CD/PMA.cs
13
CD/PMA.cs
@@ -30,7 +30,6 @@
|
||||
// Copyright © 2011-2019 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using DiscImageChef.Console;
|
||||
@@ -140,13 +139,13 @@ namespace DiscImageChef.Decoders.CD
|
||||
{
|
||||
if(CDPMAResponse == null) return null;
|
||||
|
||||
CDPMA decoded = new CDPMA();
|
||||
CDPMA decoded = new CDPMA
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(CDPMAResponse, 0),
|
||||
Reserved1 = CDPMAResponse[2],
|
||||
Reserved2 = CDPMAResponse[3]
|
||||
};
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDPMAResponse, 0);
|
||||
decoded.Reserved1 = CDPMAResponse[2];
|
||||
decoded.Reserved2 = CDPMAResponse[3];
|
||||
decoded.PMADescriptors = new CDPMADescriptors[(decoded.DataLength - 2) / 11];
|
||||
|
||||
if(decoded.DataLength + 2 != CDPMAResponse.Length)
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
// Copyright © 2011-2019 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using DiscImageChef.Console;
|
||||
@@ -115,13 +114,13 @@ namespace DiscImageChef.Decoders.CD
|
||||
{
|
||||
if(CDSessionInfoResponse == null) return null;
|
||||
|
||||
CDSessionInfo decoded = new CDSessionInfo();
|
||||
CDSessionInfo decoded = new CDSessionInfo
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(CDSessionInfoResponse, 0),
|
||||
FirstCompleteSession = CDSessionInfoResponse[2],
|
||||
LastCompleteSession = CDSessionInfoResponse[3]
|
||||
};
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDSessionInfoResponse, 0);
|
||||
decoded.FirstCompleteSession = CDSessionInfoResponse[2];
|
||||
decoded.LastCompleteSession = CDSessionInfoResponse[3];
|
||||
decoded.TrackDescriptors = new TrackDataDescriptor[(decoded.DataLength - 2) / 8];
|
||||
|
||||
if(decoded.DataLength + 2 != CDSessionInfoResponse.Length)
|
||||
|
||||
13
CD/TOC.cs
13
CD/TOC.cs
@@ -30,7 +30,6 @@
|
||||
// Copyright © 2011-2019 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using DiscImageChef.Console;
|
||||
@@ -117,13 +116,13 @@ namespace DiscImageChef.Decoders.CD
|
||||
{
|
||||
if(CDTOCResponse == null) return null;
|
||||
|
||||
CDTOC decoded = new CDTOC();
|
||||
CDTOC decoded = new CDTOC
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(CDTOCResponse, 0),
|
||||
FirstTrack = CDTOCResponse[2],
|
||||
LastTrack = CDTOCResponse[3]
|
||||
};
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDTOCResponse, 0);
|
||||
decoded.FirstTrack = CDTOCResponse[2];
|
||||
decoded.LastTrack = CDTOCResponse[3];
|
||||
decoded.TrackDescriptors = new CDTOCTrackDataDescriptor[(decoded.DataLength - 2) / 8];
|
||||
|
||||
if(decoded.DataLength + 2 != CDTOCResponse.Length)
|
||||
|
||||
33
LisaTag.cs
33
LisaTag.cs
@@ -134,8 +134,6 @@ namespace DiscImageChef.Decoders
|
||||
{
|
||||
byte[] tagBytes = new byte[20];
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
byte[] tmp = BigEndianBitConverter.GetBytes(Version);
|
||||
Array.Copy(tmp, 0, tagBytes, 0, 2);
|
||||
tagBytes[2] = (byte)(Kind << 6);
|
||||
@@ -257,8 +255,6 @@ namespace DiscImageChef.Decoders
|
||||
{
|
||||
byte[] tagBytes = new byte[24];
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
byte[] tmp = BigEndianBitConverter.GetBytes(Version);
|
||||
Array.Copy(tmp, 0, tagBytes, 0, 2);
|
||||
tagBytes[2] = (byte)(Kind << 6);
|
||||
@@ -358,8 +354,6 @@ namespace DiscImageChef.Decoders
|
||||
{
|
||||
byte[] tagBytes = new byte[12];
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
byte[] tmp = BigEndianBitConverter.GetBytes(Version);
|
||||
Array.Copy(tmp, 0, tagBytes, 0, 2);
|
||||
tagBytes[2] = (byte)(Kind << 6);
|
||||
@@ -381,18 +375,17 @@ namespace DiscImageChef.Decoders
|
||||
{
|
||||
if(tag == null || tag.Length != 12) return null;
|
||||
|
||||
SonyTag snTag = new SonyTag();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
snTag.Version = BigEndianBitConverter.ToUInt16(tag, 0);
|
||||
snTag.Kind = (byte)((tag[2] & 0xC0) >> 6);
|
||||
snTag.Reserved = (byte)(tag[2] & 0x3F);
|
||||
snTag.Volume = tag[3];
|
||||
snTag.FileId = BigEndianBitConverter.ToInt16(tag, 4);
|
||||
snTag.RelPage = BigEndianBitConverter.ToUInt16(tag, 6);
|
||||
snTag.NextBlock = (ushort)(BigEndianBitConverter.ToUInt16(tag, 8) & 0x7FF);
|
||||
snTag.PrevBlock = (ushort)(BigEndianBitConverter.ToUInt16(tag, 10) & 0x7FF);
|
||||
SonyTag snTag = new SonyTag
|
||||
{
|
||||
Version = BigEndianBitConverter.ToUInt16(tag, 0),
|
||||
Kind = (byte)((tag[2] & 0xC0) >> 6),
|
||||
Reserved = (byte)(tag[2] & 0x3F),
|
||||
Volume = tag[3],
|
||||
FileId = BigEndianBitConverter.ToInt16(tag, 4),
|
||||
RelPage = BigEndianBitConverter.ToUInt16(tag, 6),
|
||||
NextBlock = (ushort)(BigEndianBitConverter.ToUInt16(tag, 8) & 0x7FF),
|
||||
PrevBlock = (ushort)(BigEndianBitConverter.ToUInt16(tag, 10) & 0x7FF)
|
||||
};
|
||||
|
||||
snTag.IsLast = snTag.NextBlock == 0x7FF;
|
||||
snTag.IsFirst = snTag.PrevBlock == 0x7FF;
|
||||
@@ -406,8 +399,6 @@ namespace DiscImageChef.Decoders
|
||||
|
||||
ProfileTag phTag = new ProfileTag();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
byte[] tmp = new byte[4];
|
||||
|
||||
phTag.Version = BigEndianBitConverter.ToUInt16(tag, 0);
|
||||
@@ -451,8 +442,6 @@ namespace DiscImageChef.Decoders
|
||||
|
||||
PriamTag pmTag = new PriamTag();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
byte[] tmp = new byte[4];
|
||||
|
||||
pmTag.Version = BigEndianBitConverter.ToUInt16(tag, 0);
|
||||
|
||||
@@ -227,8 +227,6 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
|
||||
AACSVolumeIdentifier decoded = new AACSVolumeIdentifier();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.VolumeIdentifier = new byte[AACSVIResponse.Length - 4];
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(AACSVIResponse, 0);
|
||||
@@ -269,8 +267,6 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
|
||||
AACSMediaSerialNumber decoded = new AACSMediaSerialNumber();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.MediaSerialNumber = new byte[AACSMSNResponse.Length - 4];
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(AACSMSNResponse, 0);
|
||||
@@ -311,8 +307,6 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
|
||||
AACSMediaIdentifier decoded = new AACSMediaIdentifier();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.MediaIdentifier = new byte[AACSMIResponse.Length - 4];
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(AACSMIResponse, 0);
|
||||
@@ -353,8 +347,6 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
|
||||
AACSMediaKeyBlock decoded = new AACSMediaKeyBlock();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.MediaKeyBlockPacks = new byte[AACSMKBResponse.Length - 4];
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(AACSMKBResponse, 0);
|
||||
@@ -396,8 +388,6 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
|
||||
AACSDataKeys decoded = new AACSDataKeys();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataKeys = new byte[AACSDKResponse.Length - 4];
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(AACSDKResponse, 0);
|
||||
@@ -436,13 +426,12 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
{
|
||||
if(AACSLBAExtsResponse == null) return null;
|
||||
|
||||
AACSLBAExtentsResponse decoded = new AACSLBAExtentsResponse();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(AACSLBAExtsResponse, 0);
|
||||
decoded.Reserved = AACSLBAExtsResponse[2];
|
||||
decoded.MaxLBAExtents = AACSLBAExtsResponse[3];
|
||||
AACSLBAExtentsResponse decoded = new AACSLBAExtentsResponse
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(AACSLBAExtsResponse, 0),
|
||||
Reserved = AACSLBAExtsResponse[2],
|
||||
MaxLBAExtents = AACSLBAExtsResponse[3]
|
||||
};
|
||||
|
||||
if((AACSLBAExtsResponse.Length - 4) % 16 != 0) return decoded;
|
||||
|
||||
|
||||
@@ -85,15 +85,14 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
{
|
||||
if(CPRMMKBResponse == null) return null;
|
||||
|
||||
CPRMMediaKeyBlock decoded = new CPRMMediaKeyBlock();
|
||||
CPRMMediaKeyBlock decoded = new CPRMMediaKeyBlock
|
||||
{
|
||||
MKBPackData = new byte[CPRMMKBResponse.Length - 4],
|
||||
DataLength = BigEndianBitConverter.ToUInt16(CPRMMKBResponse, 0),
|
||||
Reserved = CPRMMKBResponse[2],
|
||||
TotalPacks = CPRMMKBResponse[3]
|
||||
};
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.MKBPackData = new byte[CPRMMKBResponse.Length - 4];
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CPRMMKBResponse, 0);
|
||||
decoded.Reserved = CPRMMKBResponse[2];
|
||||
decoded.TotalPacks = CPRMMKBResponse[3];
|
||||
Array.Copy(CPRMMKBResponse, 4, decoded.MKBPackData, 0, CPRMMKBResponse.Length - 4);
|
||||
|
||||
return decoded;
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
// Copyright © 2011-2019 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
|
||||
@@ -112,20 +111,18 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
|
||||
if(FormatLayersResponse.Length < 8) return null;
|
||||
|
||||
RecognizedFormatLayers decoded = new RecognizedFormatLayers();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(FormatLayersResponse, 0);
|
||||
decoded.Reserved1 = FormatLayersResponse[2];
|
||||
decoded.Reserved2 = FormatLayersResponse[3];
|
||||
decoded.NumberOfLayers = FormatLayersResponse[4];
|
||||
decoded.Reserved3 = (byte)((FormatLayersResponse[5] & 0xC0) >> 6);
|
||||
decoded.DefaultFormatLayer = (byte)((FormatLayersResponse[5] & 0x30) >> 4);
|
||||
decoded.Reserved4 = (byte)((FormatLayersResponse[5] & 0x0C) >> 2);
|
||||
decoded.OnlineFormatLayer = (byte)(FormatLayersResponse[5] & 0x03);
|
||||
|
||||
decoded.FormatLayers = new ushort[(FormatLayersResponse.Length - 6) / 2];
|
||||
RecognizedFormatLayers decoded = new RecognizedFormatLayers
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(FormatLayersResponse, 0),
|
||||
Reserved1 = FormatLayersResponse[2],
|
||||
Reserved2 = FormatLayersResponse[3],
|
||||
NumberOfLayers = FormatLayersResponse[4],
|
||||
Reserved3 = (byte)((FormatLayersResponse[5] & 0xC0) >> 6),
|
||||
DefaultFormatLayer = (byte)((FormatLayersResponse[5] & 0x30) >> 4),
|
||||
Reserved4 = (byte)((FormatLayersResponse[5] & 0x0C) >> 2),
|
||||
OnlineFormatLayer = (byte)(FormatLayersResponse[5] & 0x03),
|
||||
FormatLayers = new ushort[(FormatLayersResponse.Length - 6) / 2]
|
||||
};
|
||||
|
||||
for(int i = 0; i < (FormatLayersResponse.Length - 6) / 2; i++)
|
||||
decoded.FormatLayers[i] = BigEndianBitConverter.ToUInt16(FormatLayersResponse, i * 2 + 6);
|
||||
@@ -153,6 +150,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
if(response.OnlineFormatLayer == i) sb.AppendLine("This is the layer actually in use.");
|
||||
break;
|
||||
}
|
||||
|
||||
case (ushort)FormatLayerTypeCodes.CDLayer:
|
||||
{
|
||||
sb.AppendFormat("Layer {0} is of type CD", i).AppendLine();
|
||||
@@ -160,6 +158,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
if(response.OnlineFormatLayer == i) sb.AppendLine("This is the layer actually in use.");
|
||||
break;
|
||||
}
|
||||
|
||||
case (ushort)FormatLayerTypeCodes.DVDLayer:
|
||||
{
|
||||
sb.AppendFormat("Layer {0} is of type DVD", i).AppendLine();
|
||||
@@ -167,6 +166,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
if(response.OnlineFormatLayer == i) sb.AppendLine("This is the layer actually in use.");
|
||||
break;
|
||||
}
|
||||
|
||||
case (ushort)FormatLayerTypeCodes.HDDVDLayer:
|
||||
{
|
||||
sb.AppendFormat("Layer {0} is of type HD DVD", i).AppendLine();
|
||||
@@ -174,6 +174,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
if(response.OnlineFormatLayer == i) sb.AppendLine("This is the layer actually in use.");
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
sb.AppendFormat("Layer {0} is of unknown type 0x{1:X4}", i, response.FormatLayers[i])
|
||||
|
||||
@@ -120,21 +120,20 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
{
|
||||
if(WPSResponse == null) return null;
|
||||
|
||||
WriteProtectionStatus decoded = new WriteProtectionStatus();
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(WPSResponse, 0);
|
||||
decoded.Reserved1 = WPSResponse[2];
|
||||
decoded.Reserved2 = WPSResponse[3];
|
||||
decoded.Reserved3 = (byte)((WPSResponse[4] & 0xF0) >> 4);
|
||||
decoded.MSWI = Convert.ToBoolean(WPSResponse[4] & 0x08);
|
||||
decoded.CWP = Convert.ToBoolean(WPSResponse[4] & 0x04);
|
||||
decoded.PWP = Convert.ToBoolean(WPSResponse[4] & 0x02);
|
||||
decoded.SWPP = Convert.ToBoolean(WPSResponse[4] & 0x01);
|
||||
decoded.Reserved4 = WPSResponse[5];
|
||||
decoded.Reserved5 = WPSResponse[6];
|
||||
decoded.Reserved6 = WPSResponse[7];
|
||||
WriteProtectionStatus decoded = new WriteProtectionStatus
|
||||
{
|
||||
DataLength = BigEndianBitConverter.ToUInt16(WPSResponse, 0),
|
||||
Reserved1 = WPSResponse[2],
|
||||
Reserved2 = WPSResponse[3],
|
||||
Reserved3 = (byte)((WPSResponse[4] & 0xF0) >> 4),
|
||||
MSWI = Convert.ToBoolean(WPSResponse[4] & 0x08),
|
||||
CWP = Convert.ToBoolean(WPSResponse[4] & 0x04),
|
||||
PWP = Convert.ToBoolean(WPSResponse[4] & 0x02),
|
||||
SWPP = Convert.ToBoolean(WPSResponse[4] & 0x01),
|
||||
Reserved4 = WPSResponse[5],
|
||||
Reserved5 = WPSResponse[6],
|
||||
Reserved6 = WPSResponse[7]
|
||||
};
|
||||
|
||||
return decoded;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user