Code restyling.

This commit is contained in:
2020-02-29 18:03:33 +00:00
parent 9abc956373
commit a43b4132ee
40 changed files with 2701 additions and 2473 deletions

View File

@@ -57,8 +57,8 @@ namespace Aaru.Decoders.CD
CDATIPResponse.Length != 28)
{
AaruConsole.DebugWriteLine("CD ATIP decoder",
"Expected CD ATIP size (32 bytes) is not received size ({0} bytes), not decoding",
CDATIPResponse.Length);
"Expected CD ATIP size (32 bytes) is not received size ({0} bytes), not decoding",
CDATIPResponse.Length);
return null;
}
@@ -322,169 +322,169 @@ namespace Aaru.Decoders.CD
case 15:
switch(frm)
{
case 00: return"TDK Corporation";
case 10: return"Ritek Co.";
case 20: return"Mitsubishi Chemical Corporation";
case 30: return"NAN-YA Plastics Corporation";
case 00: return "TDK Corporation";
case 10: return "Ritek Co.";
case 20: return "Mitsubishi Chemical Corporation";
case 30: return "NAN-YA Plastics Corporation";
}
break;
case 16:
switch(frm)
{
case 20: return"Shenzen SG&Gast Digital Optical Discs";
case 30: return"Grand Advance Technology Ltd.";
case 20: return "Shenzen SG&Gast Digital Optical Discs";
case 30: return "Grand Advance Technology Ltd.";
}
break;
case 17:
if(frm == 00)
return"Moser Baer India Limited";
return "Moser Baer India Limited";
break;
case 18:
switch(frm)
{
case 10: return"Wealth Fair Investment Ltd.";
case 60: return"Taroko International Co. Ltd.";
case 10: return "Wealth Fair Investment Ltd.";
case 60: return "Taroko International Co. Ltd.";
}
break;
case 20:
if(frm == 10)
return"CDA Datenträger Albrechts GmbH";
return "CDA Datenträger Albrechts GmbH";
break;
case 21:
switch(frm)
{
case 10: return"Grupo Condor S.L.";
case 30: return"Bestdisc Technology Corporation";
case 40: return"Optical Disc Manufacturing Equipment";
case 50: return"Sound Sound Multi-Media Development Ltd.";
case 10: return "Grupo Condor S.L.";
case 30: return "Bestdisc Technology Corporation";
case 40: return "Optical Disc Manufacturing Equipment";
case 50: return "Sound Sound Multi-Media Development Ltd.";
}
break;
case 22:
switch(frm)
{
case 00: return"Woongjin Media Corp.";
case 10: return"Seantram Technology Inc.";
case 20: return"Advanced Digital Media";
case 30: return"EXIMPO";
case 40: return"CIS Technology Inc.";
case 50: return"Hong Kong Digital Technology Co., Ltd.";
case 60: return"Acer Media Technology, Inc.";
case 00: return "Woongjin Media Corp.";
case 10: return "Seantram Technology Inc.";
case 20: return "Advanced Digital Media";
case 30: return "EXIMPO";
case 40: return "CIS Technology Inc.";
case 50: return "Hong Kong Digital Technology Co., Ltd.";
case 60: return "Acer Media Technology, Inc.";
}
break;
case 23:
switch(frm)
{
case 00: return"Matsushita Electric Industrial Co., Ltd.";
case 10: return"Doremi Media Co., Ltd.";
case 20: return"Nacar Media s.r.l.";
case 30: return"Audio Distributors Co., Ltd.";
case 40: return"Victor Company of Japan, Ltd.";
case 50: return"Optrom Inc.";
case 60: return"Customer Pressing Oosterhout";
case 00: return "Matsushita Electric Industrial Co., Ltd.";
case 10: return "Doremi Media Co., Ltd.";
case 20: return "Nacar Media s.r.l.";
case 30: return "Audio Distributors Co., Ltd.";
case 40: return "Victor Company of Japan, Ltd.";
case 50: return "Optrom Inc.";
case 60: return "Customer Pressing Oosterhout";
}
break;
case 24:
switch(frm)
{
case 00: return"Taiyo Yuden Company Ltd.";
case 10: return"SONY Corporation";
case 20: return"Computer Support Italy s.r.l.";
case 30: return"Unitech Japan Inc.";
case 40: return"kdg mediatech AG";
case 50: return"Guann Yinn Co., Ltd.";
case 60: return"Harmonic Hall Optical Disc Ltd.";
case 00: return "Taiyo Yuden Company Ltd.";
case 10: return "SONY Corporation";
case 20: return "Computer Support Italy s.r.l.";
case 30: return "Unitech Japan Inc.";
case 40: return "kdg mediatech AG";
case 50: return "Guann Yinn Co., Ltd.";
case 60: return "Harmonic Hall Optical Disc Ltd.";
}
break;
case 25:
switch(frm)
{
case 00: return"MPO";
case 20: return"Hitachi Maxell, Ltd.";
case 30: return"Infodisc Technology Co. Ltd.";
case 40: return"Vivastar AG";
case 50: return"AMS Technology Inc.";
case 60: return"Xcitec Inc.";
case 00: return "MPO";
case 20: return "Hitachi Maxell, Ltd.";
case 30: return "Infodisc Technology Co. Ltd.";
case 40: return "Vivastar AG";
case 50: return "AMS Technology Inc.";
case 60: return "Xcitec Inc.";
}
break;
case 26:
switch(frm)
{
case 00: return"Fornet International Pte Ltd.";
case 10: return"POSTECH Corporation";
case 20: return"SKC Co., Ltd.";
case 30: return"Optical Disc Corporation";
case 40: return"FUJI Photo Film Co., Ltd.";
case 50: return"Lead Data Inc.";
case 60: return"CMC Magnetics Corporation";
case 00: return "Fornet International Pte Ltd.";
case 10: return "POSTECH Corporation";
case 20: return "SKC Co., Ltd.";
case 30: return "Optical Disc Corporation";
case 40: return "FUJI Photo Film Co., Ltd.";
case 50: return "Lead Data Inc.";
case 60: return "CMC Magnetics Corporation";
}
break;
case 27:
switch(frm)
{
case 00: return"Digital Storage Technology Co., Ltd.";
case 10: return"Plasmon Data systems Ltd.";
case 20: return"Princo Corporation";
case 30: return"Pioneer Video Corporation";
case 40: return"Kodak Japan Ltd.";
case 50: return"Mitsui Chemicals, Inc.";
case 60: return"Ricoh Company Ltd.";
case 00: return "Digital Storage Technology Co., Ltd.";
case 10: return "Plasmon Data systems Ltd.";
case 20: return "Princo Corporation";
case 30: return "Pioneer Video Corporation";
case 40: return "Kodak Japan Ltd.";
case 50: return "Mitsui Chemicals, Inc.";
case 60: return "Ricoh Company Ltd.";
}
break;
case 28:
switch(frm)
{
case 00: return"Opti.Me.S. S.p.A.";
case 10: return"Gigastore Corporation";
case 20: return"Multi Media Masters & Machinary SA";
case 30: return"Auvistar Industry Co., Ltd.";
case 40: return"King Pro Mediatek Inc.";
case 50: return"Delphi Technology Inc.";
case 60: return"Friendly CD-Tek Co.";
case 00: return "Opti.Me.S. S.p.A.";
case 10: return "Gigastore Corporation";
case 20: return "Multi Media Masters & Machinary SA";
case 30: return "Auvistar Industry Co., Ltd.";
case 40: return "King Pro Mediatek Inc.";
case 50: return "Delphi Technology Inc.";
case 60: return "Friendly CD-Tek Co.";
}
break;
case 29:
switch(frm)
{
case 00: return"Taeil Media Co., Ltd.";
case 10: return"Vanguard Disc Inc.";
case 20: return"Unidisc Technology Co., Ltd.";
case 30: return"Hile Optical Disc Technology Corp.";
case 40: return"Viva Magnetics Ltd.";
case 50: return"General Magnetics Ltd.";
case 00: return "Taeil Media Co., Ltd.";
case 10: return "Vanguard Disc Inc.";
case 20: return "Unidisc Technology Co., Ltd.";
case 30: return "Hile Optical Disc Technology Corp.";
case 40: return "Viva Magnetics Ltd.";
case 50: return "General Magnetics Ltd.";
}
break;
case 30:
if(frm == 10)
return"CDA Datenträger Albrechts GmbH";
return "CDA Datenträger Albrechts GmbH";
break;
case 31:
switch(frm)
{
case 00: return"Ritek Co.";
case 30: return"Grand Advance Technology Ltd.";
case 00: return "Ritek Co.";
case 30: return "Grand Advance Technology Ltd.";
}
break;
case 32:
switch(frm)
{
case 00: return"TDK Corporation";
case 10: return"Prodisc Technology Inc.";
case 00: return "TDK Corporation";
case 10: return "Prodisc Technology Inc.";
}
break;
@@ -492,97 +492,97 @@ namespace Aaru.Decoders.CD
switch(frm)
{
case 20:
case 22: return"Mitsubishi Chemical Corporation";
case 22: return "Mitsubishi Chemical Corporation";
}
break;
case 42:
if(frm == 20)
return"Advanced Digital Media";
return "Advanced Digital Media";
break;
case 45:
switch(frm)
{
case 00: return"Fornet International Pte Ltd.";
case 10: return"Unitech Japan Inc.";
case 20: return"Acer Media Technology, Inc.";
case 40: return"CIS Technology Inc.";
case 50: return"Guann Yinn Co., Ltd.";
case 60: return"Xcitec Inc.";
case 00: return "Fornet International Pte Ltd.";
case 10: return "Unitech Japan Inc.";
case 20: return "Acer Media Technology, Inc.";
case 40: return "CIS Technology Inc.";
case 50: return "Guann Yinn Co., Ltd.";
case 60: return "Xcitec Inc.";
}
break;
case 46:
switch(frm)
{
case 00: return"Taiyo Yuden Company Ltd.";
case 10: return"Hong Kong Digital Technology Co., Ltd.";
case 20: return"Multi Media Masters & Machinary SA";
case 30: return"Computer Support Italy s.r.l.";
case 40: return"FUJI Photo Film Co., Ltd.";
case 50: return"Auvistar Industry Co., Ltd.";
case 60: return"CMC Magnetics Corporation";
case 00: return "Taiyo Yuden Company Ltd.";
case 10: return "Hong Kong Digital Technology Co., Ltd.";
case 20: return "Multi Media Masters & Machinary SA";
case 30: return "Computer Support Italy s.r.l.";
case 40: return "FUJI Photo Film Co., Ltd.";
case 50: return "Auvistar Industry Co., Ltd.";
case 60: return "CMC Magnetics Corporation";
}
break;
case 47:
switch(frm)
{
case 10: return"Hitachi Maxell, Ltd.";
case 20: return"Princo Corporation";
case 40: return"POSTECH Corporation";
case 50: return"Ritek Co.";
case 60: return"Prodisc Technology Inc.";
case 10: return "Hitachi Maxell, Ltd.";
case 20: return "Princo Corporation";
case 40: return "POSTECH Corporation";
case 50: return "Ritek Co.";
case 60: return "Prodisc Technology Inc.";
}
break;
case 48:
switch(frm)
{
case 00: return"Ricoh Company Ltd.";
case 10: return"Kodak Japan Ltd.";
case 20: return"Plasmon Data systems Ltd.";
case 30: return"Pioneer Video Corporation";
case 40: return"Digital Storage Technology Co., Ltd.";
case 50: return"Mitsui Chemicals, Inc.";
case 60: return"Lead Data Inc.";
case 00: return "Ricoh Company Ltd.";
case 10: return "Kodak Japan Ltd.";
case 20: return "Plasmon Data systems Ltd.";
case 30: return "Pioneer Video Corporation";
case 40: return "Digital Storage Technology Co., Ltd.";
case 50: return "Mitsui Chemicals, Inc.";
case 60: return "Lead Data Inc.";
}
break;
case 49:
switch(frm)
{
case 00: return"TDK Corporation";
case 10: return"Gigastore Corporation";
case 20: return"King Pro Mediatek Inc.";
case 30: return"Opti.Me.S. S.p.A.";
case 40: return"Victor Company of Japan, Ltd.";
case 60: return"Matsushita Electric Industrial Co., Ltd.";
case 00: return "TDK Corporation";
case 10: return "Gigastore Corporation";
case 20: return "King Pro Mediatek Inc.";
case 30: return "Opti.Me.S. S.p.A.";
case 40: return "Victor Company of Japan, Ltd.";
case 60: return "Matsushita Electric Industrial Co., Ltd.";
}
break;
case 50:
switch(frm)
{
case 10: return"Vanguard Disc Inc.";
case 20: return"Mitsubishi Chemical Corporation";
case 30: return"CDA Datenträger Albrechts GmbH";
case 10: return "Vanguard Disc Inc.";
case 20: return "Mitsubishi Chemical Corporation";
case 30: return "CDA Datenträger Albrechts GmbH";
}
break;
case 51:
switch(frm)
{
case 10: return"Grand Advance Technology Ltd.";
case 20: return"Infodisc Technology Co. Ltd.";
case 50: return"Hile Optical Disc Technology Corp.";
case 10: return "Grand Advance Technology Ltd.";
case 20: return "Infodisc Technology Co. Ltd.";
case 50: return "Hile Optical Disc Technology Corp.";
}
break;
}
return"";
return "";
}
public struct CDATIP

View File

@@ -49,21 +49,36 @@ namespace Aaru.Decoders.CD
public enum PackTypeIndicator : byte
{
/// <summary>Title of the track (or album if track == 0)</summary>
Title = 0x80, /// <summary>Performer</summary>
Performer = 0x81, /// <summary>Songwriter</summary>
Songwriter = 0x82, /// <summary>Composer</summary>
Composer = 0x83, /// <summary>Arranger</summary>
Arranger = 0x84, /// <summary>Message from the content provider or artist</summary>
Message = 0x85, /// <summary>Disc identification information</summary>
DiscIdentification = 0x86, /// <summary>Genre identification</summary>
GenreIdentification = 0x87, /// <summary>Table of content information</summary>
TOCInformation = 0x88, /// <summary>Second table of content information</summary>
SecondTOCInformation = 0x89, /// <summary>Reserved</summary>
Reserved1 = 0x8A, /// <summary>Reserved</summary>
Reserved2 = 0x8B, /// <summary>Reserved</summary>
Reserved3 = 0x8C, /// <summary>Reserved for content provider only</summary>
ReservedForContentProvider = 0x8D, /// <summary>UPC of album or ISRC of track</summary>
UPCorISRC = 0x8E, /// <summary>Size information of the block</summary>
Title = 0x80,
/// <summary>Performer</summary>
Performer = 0x81,
/// <summary>Songwriter</summary>
Songwriter = 0x82,
/// <summary>Composer</summary>
Composer = 0x83,
/// <summary>Arranger</summary>
Arranger = 0x84,
/// <summary>Message from the content provider or artist</summary>
Message = 0x85,
/// <summary>Disc identification information</summary>
DiscIdentification = 0x86,
/// <summary>Genre identification</summary>
GenreIdentification = 0x87,
/// <summary>Table of content information</summary>
TOCInformation = 0x88,
/// <summary>Second table of content information</summary>
SecondTOCInformation = 0x89,
/// <summary>Reserved</summary>
Reserved1 = 0x8A,
/// <summary>Reserved</summary>
Reserved2 = 0x8B,
/// <summary>Reserved</summary>
Reserved3 = 0x8C,
/// <summary>Reserved for content provider only</summary>
ReservedForContentProvider = 0x8D,
/// <summary>UPC of album or ISRC of track</summary>
UPCorISRC = 0x8E,
/// <summary>Size information of the block</summary>
BlockSizeInformation = 0x8F
}
@@ -86,23 +101,23 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDTextResponse.Length)
{
AaruConsole.DebugWriteLine("CD-TEXT decoder",
"Expected CD-TEXT size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDTextResponse.Length);
"Expected CD-TEXT size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDTextResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 18; i++)
{
decoded.DataPacks[i].HeaderID1 = CDTextResponse[0 + i * 18 + 4];
decoded.DataPacks[i].HeaderID2 = CDTextResponse[1 + i * 18 + 4];
decoded.DataPacks[i].HeaderID3 = CDTextResponse[2 + i * 18 + 4];
decoded.DataPacks[i].DBCC = Convert.ToBoolean(CDTextResponse[3 + i * 18 + 4] & 0x80);
decoded.DataPacks[i].BlockNumber = (byte)((CDTextResponse[3 + i * 18 + 4] & 0x70) >> 4);
decoded.DataPacks[i].CharacterPosition = (byte)(CDTextResponse[3 + i * 18 + 4] & 0x0F);
decoded.DataPacks[i].HeaderID1 = CDTextResponse[0 + (i * 18) + 4];
decoded.DataPacks[i].HeaderID2 = CDTextResponse[1 + (i * 18) + 4];
decoded.DataPacks[i].HeaderID3 = CDTextResponse[2 + (i * 18) + 4];
decoded.DataPacks[i].DBCC = Convert.ToBoolean(CDTextResponse[3 + (i * 18) + 4] & 0x80);
decoded.DataPacks[i].BlockNumber = (byte)((CDTextResponse[3 + (i * 18) + 4] & 0x70) >> 4);
decoded.DataPacks[i].CharacterPosition = (byte)(CDTextResponse[3 + (i * 18) + 4] & 0x0F);
decoded.DataPacks[i].TextDataField = new byte[12];
Array.Copy(CDTextResponse, 4 + i * 18 + 4, decoded.DataPacks[i].TextDataField, 0, 12);
decoded.DataPacks[i].CRC = BigEndianBitConverter.ToUInt16(CDTextResponse, 16 + i * 18 + 4);
Array.Copy(CDTextResponse, 4 + (i * 18) + 4, decoded.DataPacks[i].TextDataField, 0, 12);
decoded.DataPacks[i].CRC = BigEndianBitConverter.ToUInt16(CDTextResponse, 16 + (i * 18) + 4);
}
return decoded;

View File

@@ -38,24 +38,36 @@ namespace Aaru.Decoders.CD
public enum TocAdr : byte
{
/// <summary>Q Sub-channel mode information not supplied</summary>
NoInformation = 0x00, /// <summary>Q Sub-channel encodes current position data</summary>
CurrentPosition = 0x01, /// <summary>Q Sub-channel encodes the media catalog number</summary>
MediaCatalogNumber = 0x02, /// <summary>Q Sub-channel encodes the ISRC</summary>
ISRC = 0x03, /// <summary>Q Sub-channel encodes the start of an audio/data track (if found in TOC)</summary>
TrackPointer = 0x01, /// <summary>Q Sub-channel encodes the start of a video track (if found in TOC) for CD-V</summary>
NoInformation = 0x00,
/// <summary>Q Sub-channel encodes current position data</summary>
CurrentPosition = 0x01,
/// <summary>Q Sub-channel encodes the media catalog number</summary>
MediaCatalogNumber = 0x02,
/// <summary>Q Sub-channel encodes the ISRC</summary>
ISRC = 0x03,
/// <summary>Q Sub-channel encodes the start of an audio/data track (if found in TOC)</summary>
TrackPointer = 0x01,
/// <summary>Q Sub-channel encodes the start of a video track (if found in TOC) for CD-V</summary>
VideoTrackPointer = 0x04
}
public enum TocControl : byte
{
/// <summary>Stereo audio, no pre-emphasis</summary>
TwoChanNoPreEmph = 0x00, /// <summary>Stereo audio with pre-emphasis</summary>
TwoChanPreEmph = 0x01, /// <summary>If mask applied, track can be copied</summary>
CopyPermissionMask = 0x02, /// <summary>Data track, recorded uninterrumpted</summary>
DataTrack = 0x04, /// <summary>Data track, recorded incrementally</summary>
DataTrackIncremental = 0x05, /// <summary>Quadraphonic audio, no pre-emphasis</summary>
FourChanNoPreEmph = 0x08, /// <summary>Quadraphonic audio with pre-emphasis</summary>
FourChanPreEmph = 0x09, /// <summary>Reserved mask</summary>
TwoChanNoPreEmph = 0x00,
/// <summary>Stereo audio with pre-emphasis</summary>
TwoChanPreEmph = 0x01,
/// <summary>If mask applied, track can be copied</summary>
CopyPermissionMask = 0x02,
/// <summary>Data track, recorded uninterrumpted</summary>
DataTrack = 0x04,
/// <summary>Data track, recorded incrementally</summary>
DataTrackIncremental = 0x05,
/// <summary>Quadraphonic audio, no pre-emphasis</summary>
FourChanNoPreEmph = 0x08,
/// <summary>Quadraphonic audio with pre-emphasis</summary>
FourChanPreEmph = 0x09,
/// <summary>Reserved mask</summary>
ReservedMask = 0x0C
}
}

View File

@@ -69,28 +69,28 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDFullTOCResponse.Length)
{
AaruConsole.DebugWriteLine("CD full TOC decoder",
"Expected CDFullTOC size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDFullTOCResponse.Length);
"Expected CDFullTOC size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDFullTOCResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 11; i++)
{
decoded.TrackDescriptors[i].SessionNumber = CDFullTOCResponse[0 + i * 11 + 4];
decoded.TrackDescriptors[i].ADR = (byte)((CDFullTOCResponse[1 + i * 11 + 4] & 0xF0) >> 4);
decoded.TrackDescriptors[i].CONTROL = (byte)(CDFullTOCResponse[1 + i * 11 + 4] & 0x0F);
decoded.TrackDescriptors[i].TNO = CDFullTOCResponse[2 + i * 11 + 4];
decoded.TrackDescriptors[i].POINT = CDFullTOCResponse[3 + i * 11 + 4];
decoded.TrackDescriptors[i].Min = CDFullTOCResponse[4 + i * 11 + 4];
decoded.TrackDescriptors[i].Sec = CDFullTOCResponse[5 + i * 11 + 4];
decoded.TrackDescriptors[i].Frame = CDFullTOCResponse[6 + i * 11 + 4];
decoded.TrackDescriptors[i].Zero = CDFullTOCResponse[7 + i * 11 + 4];
decoded.TrackDescriptors[i].HOUR = (byte)((CDFullTOCResponse[7 + i * 11 + 4] & 0xF0) >> 4);
decoded.TrackDescriptors[i].PHOUR = (byte)(CDFullTOCResponse[7 + i * 11 + 4] & 0x0F);
decoded.TrackDescriptors[i].PMIN = CDFullTOCResponse[8 + i * 11 + 4];
decoded.TrackDescriptors[i].PSEC = CDFullTOCResponse[9 + i * 11 + 4];
decoded.TrackDescriptors[i].PFRAME = CDFullTOCResponse[10 + i * 11 + 4];
decoded.TrackDescriptors[i].SessionNumber = CDFullTOCResponse[0 + (i * 11) + 4];
decoded.TrackDescriptors[i].ADR = (byte)((CDFullTOCResponse[1 + (i * 11) + 4] & 0xF0) >> 4);
decoded.TrackDescriptors[i].CONTROL = (byte)(CDFullTOCResponse[1 + (i * 11) + 4] & 0x0F);
decoded.TrackDescriptors[i].TNO = CDFullTOCResponse[2 + (i * 11) + 4];
decoded.TrackDescriptors[i].POINT = CDFullTOCResponse[3 + (i * 11) + 4];
decoded.TrackDescriptors[i].Min = CDFullTOCResponse[4 + (i * 11) + 4];
decoded.TrackDescriptors[i].Sec = CDFullTOCResponse[5 + (i * 11) + 4];
decoded.TrackDescriptors[i].Frame = CDFullTOCResponse[6 + (i * 11) + 4];
decoded.TrackDescriptors[i].Zero = CDFullTOCResponse[7 + (i * 11) + 4];
decoded.TrackDescriptors[i].HOUR = (byte)((CDFullTOCResponse[7 + (i * 11) + 4] & 0xF0) >> 4);
decoded.TrackDescriptors[i].PHOUR = (byte)(CDFullTOCResponse[7 + (i * 11) + 4] & 0x0F);
decoded.TrackDescriptors[i].PMIN = CDFullTOCResponse[8 + (i * 11) + 4];
decoded.TrackDescriptors[i].PSEC = CDFullTOCResponse[9 + (i * 11) + 4];
decoded.TrackDescriptors[i].PFRAME = CDFullTOCResponse[10 + (i * 11) + 4];
}
return decoded;
@@ -111,8 +111,8 @@ namespace Aaru.Decoders.CD
sb.AppendFormat("Last complete session number: {0}", response.LastCompleteSession).AppendLine();
foreach(TrackDataDescriptor descriptor in response.TrackDescriptors)
if((descriptor.CONTROL & 0x08) == 0x08 ||
descriptor.ADR != 1 && descriptor.ADR != 5 && descriptor.ADR != 4 && descriptor.ADR != 6 ||
if((descriptor.CONTROL & 0x08) == 0x08 ||
(descriptor.ADR != 1 && descriptor.ADR != 5 && descriptor.ADR != 4 && descriptor.ADR != 6) ||
descriptor.TNO != 0)
{
sb.AppendLine("Unknown TOC entry format, printing values as-is");

View File

@@ -61,27 +61,27 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDPMAResponse.Length)
{
AaruConsole.DebugWriteLine("CD PMA decoder",
"Expected CDPMA size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDPMAResponse.Length);
"Expected CDPMA size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDPMAResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 11; i++)
{
decoded.PMADescriptors[i].Reserved = CDPMAResponse[0 + i * 11 + 4];
decoded.PMADescriptors[i].ADR = (byte)((CDPMAResponse[1 + i * 11 + 4] & 0xF0) >> 4);
decoded.PMADescriptors[i].CONTROL = (byte)(CDPMAResponse[1 + i * 11 + 4] & 0x0F);
decoded.PMADescriptors[i].TNO = CDPMAResponse[2 + i * 11 + 4];
decoded.PMADescriptors[i].POINT = CDPMAResponse[3 + i * 11 + 4];
decoded.PMADescriptors[i].Min = CDPMAResponse[4 + i * 11 + 4];
decoded.PMADescriptors[i].Sec = CDPMAResponse[5 + i * 11 + 4];
decoded.PMADescriptors[i].Frame = CDPMAResponse[6 + i * 11 + 4];
decoded.PMADescriptors[i].HOUR = (byte)((CDPMAResponse[7 + i * 11 + 4] & 0xF0) >> 4);
decoded.PMADescriptors[i].PHOUR = (byte)(CDPMAResponse[7 + i * 11 + 4] & 0x0F);
decoded.PMADescriptors[i].PMIN = CDPMAResponse[8 + i * 11 + 4];
decoded.PMADescriptors[i].PSEC = CDPMAResponse[9 + i * 11 + 4];
decoded.PMADescriptors[i].PFRAME = CDPMAResponse[10 + i * 11 + 4];
decoded.PMADescriptors[i].Reserved = CDPMAResponse[0 + (i * 11) + 4];
decoded.PMADescriptors[i].ADR = (byte)((CDPMAResponse[1 + (i * 11) + 4] & 0xF0) >> 4);
decoded.PMADescriptors[i].CONTROL = (byte)(CDPMAResponse[1 + (i * 11) + 4] & 0x0F);
decoded.PMADescriptors[i].TNO = CDPMAResponse[2 + (i * 11) + 4];
decoded.PMADescriptors[i].POINT = CDPMAResponse[3 + (i * 11) + 4];
decoded.PMADescriptors[i].Min = CDPMAResponse[4 + (i * 11) + 4];
decoded.PMADescriptors[i].Sec = CDPMAResponse[5 + (i * 11) + 4];
decoded.PMADescriptors[i].Frame = CDPMAResponse[6 + (i * 11) + 4];
decoded.PMADescriptors[i].HOUR = (byte)((CDPMAResponse[7 + (i * 11) + 4] & 0xF0) >> 4);
decoded.PMADescriptors[i].PHOUR = (byte)(CDPMAResponse[7 + (i * 11) + 4] & 0x0F);
decoded.PMADescriptors[i].PMIN = CDPMAResponse[8 + (i * 11) + 4];
decoded.PMADescriptors[i].PSEC = CDPMAResponse[9 + (i * 11) + 4];
decoded.PMADescriptors[i].PFRAME = CDPMAResponse[10 + (i * 11) + 4];
}
return decoded;

View File

@@ -61,22 +61,22 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDSessionInfoResponse.Length)
{
AaruConsole.DebugWriteLine("CD Session Info decoder",
"Expected CDSessionInfo size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDSessionInfoResponse.Length);
"Expected CDSessionInfo size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDSessionInfoResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 8; i++)
{
decoded.TrackDescriptors[i].Reserved1 = CDSessionInfoResponse[0 + i * 8 + 4];
decoded.TrackDescriptors[i].ADR = (byte)((CDSessionInfoResponse[1 + i * 8 + 4] & 0xF0) >> 4);
decoded.TrackDescriptors[i].CONTROL = (byte)(CDSessionInfoResponse[1 + i * 8 + 4] & 0x0F);
decoded.TrackDescriptors[i].TrackNumber = CDSessionInfoResponse[2 + i * 8 + 4];
decoded.TrackDescriptors[i].Reserved2 = CDSessionInfoResponse[3 + i * 8 + 4];
decoded.TrackDescriptors[i].Reserved1 = CDSessionInfoResponse[0 + (i * 8) + 4];
decoded.TrackDescriptors[i].ADR = (byte)((CDSessionInfoResponse[1 + (i * 8) + 4] & 0xF0) >> 4);
decoded.TrackDescriptors[i].CONTROL = (byte)(CDSessionInfoResponse[1 + (i * 8) + 4] & 0x0F);
decoded.TrackDescriptors[i].TrackNumber = CDSessionInfoResponse[2 + (i * 8) + 4];
decoded.TrackDescriptors[i].Reserved2 = CDSessionInfoResponse[3 + (i * 8) + 4];
decoded.TrackDescriptors[i].TrackStartAddress =
BigEndianBitConverter.ToUInt32(CDSessionInfoResponse, 4 + i * 8 + 4);
BigEndianBitConverter.ToUInt32(CDSessionInfoResponse, 4 + (i * 8) + 4);
}
return decoded;

View File

@@ -62,22 +62,22 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDTOCResponse.Length)
{
AaruConsole.DebugWriteLine("CD TOC decoder",
"Expected CDTOC size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDTOCResponse.Length);
"Expected CDTOC size ({0} bytes) is not received size ({1} bytes), not decoding",
decoded.DataLength + 2, CDTOCResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 8; i++)
{
decoded.TrackDescriptors[i].Reserved1 = CDTOCResponse[0 + i * 8 + 4];
decoded.TrackDescriptors[i].ADR = (byte)((CDTOCResponse[1 + i * 8 + 4] & 0xF0) >> 4);
decoded.TrackDescriptors[i].CONTROL = (byte)(CDTOCResponse[1 + i * 8 + 4] & 0x0F);
decoded.TrackDescriptors[i].TrackNumber = CDTOCResponse[2 + i * 8 + 4];
decoded.TrackDescriptors[i].Reserved2 = CDTOCResponse[3 + i * 8 + 4];
decoded.TrackDescriptors[i].Reserved1 = CDTOCResponse[0 + (i * 8) + 4];
decoded.TrackDescriptors[i].ADR = (byte)((CDTOCResponse[1 + (i * 8) + 4] & 0xF0) >> 4);
decoded.TrackDescriptors[i].CONTROL = (byte)(CDTOCResponse[1 + (i * 8) + 4] & 0x0F);
decoded.TrackDescriptors[i].TrackNumber = CDTOCResponse[2 + (i * 8) + 4];
decoded.TrackDescriptors[i].Reserved2 = CDTOCResponse[3 + (i * 8) + 4];
decoded.TrackDescriptors[i].TrackStartAddress =
BigEndianBitConverter.ToUInt32(CDTOCResponse, 4 + i * 8 + 4);
BigEndianBitConverter.ToUInt32(CDTOCResponse, 4 + (i * 8) + 4);
}
return decoded;