mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
* DiscImageChef.Decoders/CD/ATIP.cs:
Make ATIP manufacturer resolver a public method. * DiscImageChef.Decoders/SCSI/MMC/Features.cs: Added HDBurn profiles. * DiscImageChef.Decoders/SCSI/Modes.cs: Corrected typo. * DiscImageChef.DiscImages/BLU.cs: * DiscImageChef.DiscImages/GDI.cs: * DiscImageChef.DiscImages/VHD.cs: * DiscImageChef.DiscImages/Nero.cs: * DiscImageChef/Commands/Compare.cs: * DiscImageChef.DiscImages/CopyQM.cs: * DiscImageChef.DiscImages/CDRWin.cs: * DiscImageChef.DiscImages/CDRDAO.cs: * DiscImageChef.DiscImages/Apple2MG.cs: * DiscImageChef.DiscImages/TeleDisk.cs: * DiscImageChef.DiscImages/ImageInfo.cs: * DiscImageChef.DiscImages/Alcohol120.cs: * DiscImageChef.DiscImages/DiskCopy42.cs: * DiscImageChef.DiscImages/ZZZRawImage.cs: Added field for drive firmware revision. * DiscImageChef.DiscImages/BlindWrite4.cs: Added field for drive firmware revision. Change subchannel informative exception. Change application name and version. * DiscImageChef.DiscImages/ImagePlugin.cs: Added subchannel types for Q only. * DiscImageChef/Commands/CreateSidecar.cs: If drive image contains information about the dumping drive, use it. Added subchannel types for Q only.
This commit is contained in:
@@ -426,285 +426,7 @@ namespace DiscImageChef.Decoders.CD
|
|||||||
sb.AppendLine("Disc uses short strategy type dye (Phthalocyanine, etc...)");
|
sb.AppendLine("Disc uses short strategy type dye (Phthalocyanine, etc...)");
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(response.LeadInStartSec)
|
manufacturer = ManufacturerFromATIP(response.LeadInStartSec, frm);
|
||||||
{
|
|
||||||
case 15:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "TDK Corporation";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Ritek Co.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Mitsubishi Chemical Corporation";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "NAN-YA Plastics Corporation";
|
|
||||||
break;
|
|
||||||
case 16:
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Shenzen SG&Gast Digital Optical Discs";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Grand Advance Technology Ltd.";
|
|
||||||
break;
|
|
||||||
case 17:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Moser Baer India Limited";
|
|
||||||
break;
|
|
||||||
case 18:
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Wealth Fair Investment Ltd.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Taroko International Co. Ltd.";
|
|
||||||
break;
|
|
||||||
case 20:
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "CDA Datenträger Albrechts GmbH";
|
|
||||||
break;
|
|
||||||
case 21:
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Grupo Condor S.L.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Bestdisc Technology Corporation";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "Optical Disc Manufacturing Equipment";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Sound Sound Multi-Media Development Ltd.";
|
|
||||||
break;
|
|
||||||
case 22:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Woongjin Media Corp.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Seantram Technology Inc.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Advanced Digital Media";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "EXIMPO";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "CIS Technology Inc.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Hong Kong Digital Technology Co., Ltd.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Acer Media Technology, Inc.";
|
|
||||||
break;
|
|
||||||
case 23:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Matsushita Electric Industrial Co., Ltd.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Doremi Media Co., Ltd.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Nacar Media s.r.l.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Audio Distributors Co., Ltd.";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "Victor Company of Japan, Ltd.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Optrom Inc.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Customer Pressing Oosterhout";
|
|
||||||
break;
|
|
||||||
case 24:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Taiyo Yuden Company Ltd.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "SONY Corporation";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Computer Support Italy s.r.l.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Unitech Japan Inc.";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "kdg mediatech AG";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Guann Yinn Co., Ltd.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Harmonic Hall Optical Disc Ltd.";
|
|
||||||
break;
|
|
||||||
case 25:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "MPO";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Hitachi Maxell, Ltd.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Infodisc Technology Co. Ltd.";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "Vivastar AG";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "AMS Technology Inc.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Xcitec Inc.";
|
|
||||||
break;
|
|
||||||
case 26:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Fornet International Pte Ltd.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "POSTECH Corporation";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "SKC Co., Ltd.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Optical Disc Corporation";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "FUJI Photo Film Co., Ltd.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Lead Data Inc.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "CMC Magnetics Corporation";
|
|
||||||
break;
|
|
||||||
case 27:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Digital Storage Technology Co., Ltd.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Plasmon Data systems Ltd.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Princo Corporation";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Pioneer Video Corporation";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "Kodak Japan Ltd.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Mitsui Chemicals, Inc.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Ricoh Company Ltd.";
|
|
||||||
break;
|
|
||||||
case 28:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Opti.Me.S. S.p.A.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Gigastore Corporation";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Multi Media Masters & Machinary SA";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Auvistar Industry Co., Ltd.";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "King Pro Mediatek Inc.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Delphi Technology Inc.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Friendly CD-Tek Co.";
|
|
||||||
break;
|
|
||||||
case 29:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Taeil Media Co., Ltd.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Vanguard Disc Inc.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Unidisc Technology Co., Ltd.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Hile Optical Disc Technology Corp.";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "Viva Magnetics Ltd.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "General Magnetics Ltd.";
|
|
||||||
break;
|
|
||||||
case 30:
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "CDA Datenträger Albrechts GmbH";
|
|
||||||
break;
|
|
||||||
case 31:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Ritek Co.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Grand Advance Technology Ltd.";
|
|
||||||
break;
|
|
||||||
case 32:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "TDK Corporation";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Prodisc Technology Inc.";
|
|
||||||
break;
|
|
||||||
case 34:
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Mitsubishi Chemical Corporation";
|
|
||||||
break;
|
|
||||||
case 42:
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Advanced Digital Media";
|
|
||||||
break;
|
|
||||||
case 45:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Fornet International Pte Ltd.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Unitech Japan Inc.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Acer Media Technology, Inc.";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "CIS Technology Inc.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Guann Yinn Co., Ltd.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Xcitec Inc.";
|
|
||||||
break;
|
|
||||||
case 46:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Taiyo Yuden Company Ltd.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Hong Kong Digital Technology Co., Ltd.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Multi Media Masters & Machinary SA";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Computer Support Italy s.r.l.";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "FUJI Photo Film Co., Ltd.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Auvistar Industry Co., Ltd.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "CMC Magnetics Corporation";
|
|
||||||
break;
|
|
||||||
case 47:
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Hitachi Maxell, Ltd.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Princo Corporation";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "POSTECH Corporation";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Ritek Co.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Prodisc Technology Inc.";
|
|
||||||
break;
|
|
||||||
case 48:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "Ricoh Company Ltd.";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Kodak Japan Ltd.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Plasmon Data systems Ltd.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Pioneer Video Corporation";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "Digital Storage Technology Co., Ltd.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Mitsui Chemicals, Inc.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Lead Data Inc.";
|
|
||||||
break;
|
|
||||||
case 49:
|
|
||||||
if(frm == 00)
|
|
||||||
manufacturer = "TDK Corporation";
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Gigastore Corporation";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "King Pro Mediatek Inc.";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "Opti.Me.S. S.p.A.";
|
|
||||||
if(frm == 40)
|
|
||||||
manufacturer = "Victor Company of Japan, Ltd.";
|
|
||||||
if(frm == 60)
|
|
||||||
manufacturer = "Matsushita Electric Industrial Co., Ltd.";
|
|
||||||
break;
|
|
||||||
case 50:
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Vanguard Disc Inc.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Mitsubishi Chemical Corporation";
|
|
||||||
if(frm == 30)
|
|
||||||
manufacturer = "CDA Datenträger Albrechts GmbH";
|
|
||||||
break;
|
|
||||||
case 51:
|
|
||||||
if(frm == 10)
|
|
||||||
manufacturer = "Grand Advance Technology Ltd.";
|
|
||||||
if(frm == 20)
|
|
||||||
manufacturer = "Infodisc Technology Co. Ltd.";
|
|
||||||
if(frm == 50)
|
|
||||||
manufacturer = "Hile Optical Disc Technology Corp.";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(manufacturer != "")
|
if(manufacturer != "")
|
||||||
sb.AppendFormat("Disc manufactured by: {0}", manufacturer).AppendLine();
|
sb.AppendFormat("Disc manufactured by: {0}", manufacturer).AppendLine();
|
||||||
@@ -718,6 +440,291 @@ namespace DiscImageChef.Decoders.CD
|
|||||||
CDATIP? decoded = Decode(CDATIPResponse);
|
CDATIP? decoded = Decode(CDATIPResponse);
|
||||||
return Prettify(decoded);
|
return Prettify(decoded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string ManufacturerFromATIP(byte sec, int frm)
|
||||||
|
{
|
||||||
|
switch(sec)
|
||||||
|
{
|
||||||
|
case 15:
|
||||||
|
if(frm == 00)
|
||||||
|
return "TDK Corporation";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Ritek Co.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Mitsubishi Chemical Corporation";
|
||||||
|
if(frm == 30)
|
||||||
|
return "NAN-YA Plastics Corporation";
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
if(frm == 20)
|
||||||
|
return "Shenzen SG&Gast Digital Optical Discs";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Grand Advance Technology Ltd.";
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Moser Baer India Limited";
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
if(frm == 10)
|
||||||
|
return "Wealth Fair Investment Ltd.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Taroko International Co. Ltd.";
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
if(frm == 10)
|
||||||
|
return "CDA Datenträger Albrechts GmbH";
|
||||||
|
break;
|
||||||
|
case 21:
|
||||||
|
if(frm == 10)
|
||||||
|
return "Grupo Condor S.L.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Bestdisc Technology Corporation";
|
||||||
|
if(frm == 40)
|
||||||
|
return "Optical Disc Manufacturing Equipment";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Sound Sound Multi-Media Development Ltd.";
|
||||||
|
break;
|
||||||
|
case 22:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Woongjin Media Corp.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Seantram Technology Inc.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Advanced Digital Media";
|
||||||
|
if(frm == 30)
|
||||||
|
return "EXIMPO";
|
||||||
|
if(frm == 40)
|
||||||
|
return "CIS Technology Inc.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Hong Kong Digital Technology Co., Ltd.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Acer Media Technology, Inc.";
|
||||||
|
break;
|
||||||
|
case 23:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Matsushita Electric Industrial Co., Ltd.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Doremi Media Co., Ltd.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Nacar Media s.r.l.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Audio Distributors Co., Ltd.";
|
||||||
|
if(frm == 40)
|
||||||
|
return "Victor Company of Japan, Ltd.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Optrom Inc.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Customer Pressing Oosterhout";
|
||||||
|
break;
|
||||||
|
case 24:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Taiyo Yuden Company Ltd.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "SONY Corporation";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Computer Support Italy s.r.l.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Unitech Japan Inc.";
|
||||||
|
if(frm == 40)
|
||||||
|
return "kdg mediatech AG";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Guann Yinn Co., Ltd.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Harmonic Hall Optical Disc Ltd.";
|
||||||
|
break;
|
||||||
|
case 25:
|
||||||
|
if(frm == 00)
|
||||||
|
return "MPO";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Hitachi Maxell, Ltd.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Infodisc Technology Co. Ltd.";
|
||||||
|
if(frm == 40)
|
||||||
|
return "Vivastar AG";
|
||||||
|
if(frm == 50)
|
||||||
|
return "AMS Technology Inc.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Xcitec Inc.";
|
||||||
|
break;
|
||||||
|
case 26:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Fornet International Pte Ltd.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "POSTECH Corporation";
|
||||||
|
if(frm == 20)
|
||||||
|
return "SKC Co., Ltd.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Optical Disc Corporation";
|
||||||
|
if(frm == 40)
|
||||||
|
return "FUJI Photo Film Co., Ltd.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Lead Data Inc.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "CMC Magnetics Corporation";
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Digital Storage Technology Co., Ltd.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Plasmon Data systems Ltd.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Princo Corporation";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Pioneer Video Corporation";
|
||||||
|
if(frm == 40)
|
||||||
|
return "Kodak Japan Ltd.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Mitsui Chemicals, Inc.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Ricoh Company Ltd.";
|
||||||
|
break;
|
||||||
|
case 28:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Opti.Me.S. S.p.A.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Gigastore Corporation";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Multi Media Masters & Machinary SA";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Auvistar Industry Co., Ltd.";
|
||||||
|
if(frm == 40)
|
||||||
|
return "King Pro Mediatek Inc.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Delphi Technology Inc.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Friendly CD-Tek Co.";
|
||||||
|
break;
|
||||||
|
case 29:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Taeil Media Co., Ltd.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Vanguard Disc Inc.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Unidisc Technology Co., Ltd.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Hile Optical Disc Technology Corp.";
|
||||||
|
if(frm == 40)
|
||||||
|
return "Viva Magnetics Ltd.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "General Magnetics Ltd.";
|
||||||
|
break;
|
||||||
|
case 30:
|
||||||
|
if(frm == 10)
|
||||||
|
return "CDA Datenträger Albrechts GmbH";
|
||||||
|
break;
|
||||||
|
case 31:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Ritek Co.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Grand Advance Technology Ltd.";
|
||||||
|
break;
|
||||||
|
case 32:
|
||||||
|
if(frm == 00)
|
||||||
|
return "TDK Corporation";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Prodisc Technology Inc.";
|
||||||
|
break;
|
||||||
|
case 34:
|
||||||
|
if(frm == 20)
|
||||||
|
return "Mitsubishi Chemical Corporation";
|
||||||
|
break;
|
||||||
|
case 42:
|
||||||
|
if(frm == 20)
|
||||||
|
return "Advanced Digital Media";
|
||||||
|
break;
|
||||||
|
case 45:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Fornet International Pte Ltd.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Unitech Japan Inc.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Acer Media Technology, Inc.";
|
||||||
|
if(frm == 40)
|
||||||
|
return "CIS Technology Inc.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Guann Yinn Co., Ltd.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Xcitec Inc.";
|
||||||
|
break;
|
||||||
|
case 46:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Taiyo Yuden Company Ltd.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Hong Kong Digital Technology Co., Ltd.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Multi Media Masters & Machinary SA";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Computer Support Italy s.r.l.";
|
||||||
|
if(frm == 40)
|
||||||
|
return "FUJI Photo Film Co., Ltd.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Auvistar Industry Co., Ltd.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "CMC Magnetics Corporation";
|
||||||
|
break;
|
||||||
|
case 47:
|
||||||
|
if(frm == 10)
|
||||||
|
return "Hitachi Maxell, Ltd.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Princo Corporation";
|
||||||
|
if(frm == 40)
|
||||||
|
return "POSTECH Corporation";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Ritek Co.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Prodisc Technology Inc.";
|
||||||
|
break;
|
||||||
|
case 48:
|
||||||
|
if(frm == 00)
|
||||||
|
return "Ricoh Company Ltd.";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Kodak Japan Ltd.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Plasmon Data systems Ltd.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Pioneer Video Corporation";
|
||||||
|
if(frm == 40)
|
||||||
|
return "Digital Storage Technology Co., Ltd.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Mitsui Chemicals, Inc.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Lead Data Inc.";
|
||||||
|
break;
|
||||||
|
case 49:
|
||||||
|
if(frm == 00)
|
||||||
|
return "TDK Corporation";
|
||||||
|
if(frm == 10)
|
||||||
|
return "Gigastore Corporation";
|
||||||
|
if(frm == 20)
|
||||||
|
return "King Pro Mediatek Inc.";
|
||||||
|
if(frm == 30)
|
||||||
|
return "Opti.Me.S. S.p.A.";
|
||||||
|
if(frm == 40)
|
||||||
|
return "Victor Company of Japan, Ltd.";
|
||||||
|
if(frm == 60)
|
||||||
|
return "Matsushita Electric Industrial Co., Ltd.";
|
||||||
|
break;
|
||||||
|
case 50:
|
||||||
|
if(frm == 10)
|
||||||
|
return "Vanguard Disc Inc.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Mitsubishi Chemical Corporation";
|
||||||
|
if(frm == 30)
|
||||||
|
return "CDA Datenträger Albrechts GmbH";
|
||||||
|
break;
|
||||||
|
case 51:
|
||||||
|
if(frm == 10)
|
||||||
|
return "Grand Advance Technology Ltd.";
|
||||||
|
if(frm == 20)
|
||||||
|
return "Infodisc Technology Co. Ltd.";
|
||||||
|
if(frm == 50)
|
||||||
|
return "Hile Optical Disc Technology Corp.";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
2016-08-18 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* ATIP.cs: Make ATIP manufacturer resolver a public method.
|
||||||
|
|
||||||
|
* Features.cs: Added HDBurn profiles.
|
||||||
|
|
||||||
|
* Modes.cs: Corrected typo.
|
||||||
|
|
||||||
2016-08-09 Natalia Portillo <claunia@claunia.com>
|
2016-08-09 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* DiscImageChef.Decoders.csproj: Bumped version to 3.2.99.2.
|
* DiscImageChef.Decoders.csproj: Bumped version to 3.2.99.2.
|
||||||
|
|||||||
@@ -428,6 +428,18 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
HDDVDRWDL = 0x005A,
|
HDDVDRWDL = 0x005A,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// HDBurn CD-ROM
|
||||||
|
/// </summary>
|
||||||
|
HDBURNROM = 0x0080,
|
||||||
|
/// <summary>
|
||||||
|
/// HDBurn CD-R
|
||||||
|
/// </summary>
|
||||||
|
HDBURNR = 0x0081,
|
||||||
|
/// <summary>
|
||||||
|
/// HDBurn CD-RW
|
||||||
|
/// </summary>
|
||||||
|
HDBURNRW = 0x0082,
|
||||||
|
/// <summary>
|
||||||
/// Drive does not conform to any profiles
|
/// Drive does not conform to any profiles
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Unconforming = 0xFFFF
|
Unconforming = 0xFFFF
|
||||||
@@ -4099,6 +4111,15 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
case ProfileNumber.HDDVDRWDL:
|
case ProfileNumber.HDDVDRWDL:
|
||||||
sb.Append("\tDrive supports HD DVD-RW DL");
|
sb.Append("\tDrive supports HD DVD-RW DL");
|
||||||
break;
|
break;
|
||||||
|
case ProfileNumber.HDBURNROM:
|
||||||
|
sb.Append("\tDrive supports HDBurn CD-ROM");
|
||||||
|
break;
|
||||||
|
case ProfileNumber.HDBURNR:
|
||||||
|
sb.Append("\tDrive supports HDBurn CD-R");
|
||||||
|
break;
|
||||||
|
case ProfileNumber.HDBURNRW:
|
||||||
|
sb.Append("\tDrive supports HDBurn CD-RW");
|
||||||
|
break;
|
||||||
case ProfileNumber.Unconforming:
|
case ProfileNumber.Unconforming:
|
||||||
sb.Append("\tDrive is not conforming to any profile");
|
sb.Append("\tDrive is not conforming to any profile");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -5143,7 +5143,7 @@ namespace DiscImageChef.Decoders.SCSI
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(page.Composite)
|
if(page.Composite)
|
||||||
sb.AppendLine("\tDrive can deliver a compositve audio and video data stream");
|
sb.AppendLine("\tDrive can deliver a composite audio and video data stream");
|
||||||
if(page.DigitalPort1)
|
if(page.DigitalPort1)
|
||||||
sb.AppendLine("\tDrive supports IEC-958 digital output on port 1");
|
sb.AppendLine("\tDrive supports IEC-958 digital output on port 1");
|
||||||
if(page.DigitalPort2)
|
if(page.DigitalPort2)
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IdentifyImage(string imagePath)
|
public override bool IdentifyImage(string imagePath)
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IdentifyImage(string imagePath)
|
public override bool IdentifyImage(string imagePath)
|
||||||
|
|||||||
@@ -90,6 +90,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IdentifyImage(string imagePath)
|
public override bool IdentifyImage(string imagePath)
|
||||||
|
|||||||
@@ -202,6 +202,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IdentifyImage(string imagePath)
|
public override bool IdentifyImage(string imagePath)
|
||||||
@@ -785,7 +786,9 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
|
|
||||||
ImageInfo.mediaType = MediaType.CD;
|
ImageInfo.mediaType = MediaType.CD;
|
||||||
|
|
||||||
ImageInfo.imageApplication = "BlindRead 4";
|
ImageInfo.imageApplication = "BlindWrite";
|
||||||
|
ImageInfo.imageApplicationVersion = "4";
|
||||||
|
ImageInfo.imageVersion = "4";
|
||||||
|
|
||||||
FileInfo fi = new FileInfo(dataFile);
|
FileInfo fi = new FileInfo(dataFile);
|
||||||
ImageInfo.imageSize = (ulong)fi.Length;
|
ImageInfo.imageSize = (ulong)fi.Length;
|
||||||
@@ -1116,7 +1119,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SectorTagType.CDSectorSubchannel:
|
case SectorTagType.CDSectorSubchannel:
|
||||||
throw new NotImplementedException("Subchannel interleaving not yet implemented");
|
throw new NotImplementedException("Packed subchannel not yet supported");
|
||||||
default:
|
default:
|
||||||
throw new ArgumentException("Unsupported tag requested", nameof(tag));
|
throw new ArgumentException("Unsupported tag requested", nameof(tag));
|
||||||
}
|
}
|
||||||
@@ -1146,7 +1149,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SectorTagType.CDSectorSubchannel:
|
case SectorTagType.CDSectorSubchannel:
|
||||||
throw new NotImplementedException("Subchannel interleaving not yet implemented");
|
throw new NotImplementedException("Packed subchannel not yet supported");
|
||||||
default:
|
default:
|
||||||
throw new ArgumentException("Unsupported tag requested", nameof(tag));
|
throw new ArgumentException("Unsupported tag requested", nameof(tag));
|
||||||
}
|
}
|
||||||
@@ -1157,7 +1160,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
switch(tag)
|
switch(tag)
|
||||||
{
|
{
|
||||||
case SectorTagType.CDSectorSubchannel:
|
case SectorTagType.CDSectorSubchannel:
|
||||||
throw new NotImplementedException("Subchannel interleaving not yet implemented");
|
throw new NotImplementedException("Packed subchannel not yet supported");
|
||||||
default:
|
default:
|
||||||
throw new ArgumentException("Unsupported tag requested", nameof(tag));
|
throw new ArgumentException("Unsupported tag requested", nameof(tag));
|
||||||
}
|
}
|
||||||
|
|||||||
42
DiscImageChef.DiscImages/BlindWrite5.cs
Normal file
42
DiscImageChef.DiscImages/BlindWrite5.cs
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
// /***************************************************************************
|
||||||
|
// The Disc Image Chef
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Filename : BlindWrite5.cs
|
||||||
|
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||||
|
//
|
||||||
|
// 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-2016 Natalia Portillo
|
||||||
|
// ****************************************************************************/
|
||||||
|
using System;
|
||||||
|
namespace DiscImageChef.DiscImages
|
||||||
|
{
|
||||||
|
public class BlindWrite5
|
||||||
|
{
|
||||||
|
public BlindWrite5()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -232,6 +232,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Public methods
|
#endregion Public methods
|
||||||
|
|||||||
@@ -305,6 +305,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Due to .cue format, this method must parse whole file, ignoring errors (those will be thrown by OpenImage()).
|
// Due to .cue format, this method must parse whole file, ignoring errors (those will be thrown by OpenImage()).
|
||||||
|
|||||||
@@ -1,3 +1,25 @@
|
|||||||
|
2016-08-18 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* BLU.cs:
|
||||||
|
* GDI.cs:
|
||||||
|
* VHD.cs:
|
||||||
|
* Nero.cs:
|
||||||
|
* CopyQM.cs:
|
||||||
|
* CDRDAO.cs:
|
||||||
|
* CDRWin.cs:
|
||||||
|
* TeleDisk.cs:
|
||||||
|
* Apple2MG.cs:
|
||||||
|
* ImageInfo.cs:
|
||||||
|
* Alcohol120.cs:
|
||||||
|
* DiskCopy42.cs:
|
||||||
|
* ZZZRawImage.cs: Added field for drive firmware revision.
|
||||||
|
|
||||||
|
* BlindWrite4.cs: Added field for drive firmware revision.
|
||||||
|
Change subchannel informative exception.
|
||||||
|
Change application name and version.
|
||||||
|
|
||||||
|
* ImagePlugin.cs: Added subchannel types for Q only.
|
||||||
|
|
||||||
2016-08-17 Natalia Portillo <claunia@claunia.com>
|
2016-08-17 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* BlindWrite4.cs:
|
* BlindWrite4.cs:
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Public methods
|
#region Public methods
|
||||||
|
|||||||
@@ -154,6 +154,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IdentifyImage(string imagePath)
|
public override bool IdentifyImage(string imagePath)
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Due to .gdi format, this method must parse whole file, ignoring errors (those will be thrown by OpenImage()).
|
// Due to .gdi format, this method must parse whole file, ignoring errors (those will be thrown by OpenImage()).
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
public string driveManufacturer;
|
public string driveManufacturer;
|
||||||
public string driveModel;
|
public string driveModel;
|
||||||
public string driveSerialNumber;
|
public string driveSerialNumber;
|
||||||
|
public string driveFirmwareRevision;
|
||||||
public XmlMediaType xmlMediaType;
|
public XmlMediaType xmlMediaType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -503,7 +503,15 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Subchannel is interleaved and comes interleaved with main channel in same file
|
/// Subchannel is interleaved and comes interleaved with main channel in same file
|
||||||
/// </summary>
|
/// </summary>
|
||||||
RawInterleaved
|
RawInterleaved,
|
||||||
|
/// <summary>
|
||||||
|
/// Only Q subchannel is stored as 16 bytes
|
||||||
|
/// </summary>
|
||||||
|
Q16,
|
||||||
|
/// <summary>
|
||||||
|
/// Only Q subchannel is stored as 16 bytes and comes interleaved with main channel in same file
|
||||||
|
/// </summary>
|
||||||
|
Q16Interleaved
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -653,6 +661,8 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
MMC_POWResourcesInformation,
|
MMC_POWResourcesInformation,
|
||||||
/// <summary>SCSI INQUIRY response</summary>
|
/// <summary>SCSI INQUIRY response</summary>
|
||||||
SCSI_INQUIRY,
|
SCSI_INQUIRY,
|
||||||
|
/// <summary>SCSI MODE PAGE 2Ah</summary>
|
||||||
|
SCSI_MODEPAGE_2A,
|
||||||
/// <summary>ATA IDENTIFY DEVICE response</summary>
|
/// <summary>ATA IDENTIFY DEVICE response</summary>
|
||||||
ATA_IDENTIFY,
|
ATA_IDENTIFY,
|
||||||
/// <summary>ATA IDENTIFY PACKET DEVICE response</summary>
|
/// <summary>ATA IDENTIFY PACKET DEVICE response</summary>
|
||||||
|
|||||||
@@ -1488,6 +1488,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
ImageInfo.mediaSequence = 0;
|
ImageInfo.mediaSequence = 0;
|
||||||
ImageInfo.lastMediaSequence = 0;
|
ImageInfo.lastMediaSequence = 0;
|
||||||
if(imageNewFormat)
|
if(imageNewFormat)
|
||||||
|
|||||||
@@ -219,6 +219,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
ADiskCRCHasFailed = false;
|
ADiskCRCHasFailed = false;
|
||||||
SectorsWhereCRCHasFailed = new List<ulong>();
|
SectorsWhereCRCHasFailed = new List<ulong>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -386,6 +386,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region public methods
|
#region public methods
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ImageInfo.driveManufacturer = null;
|
ImageInfo.driveManufacturer = null;
|
||||||
ImageInfo.driveModel = null;
|
ImageInfo.driveModel = null;
|
||||||
ImageInfo.driveSerialNumber = null;
|
ImageInfo.driveSerialNumber = null;
|
||||||
|
ImageInfo.driveFirmwareRevision = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IdentifyImage(string imagePath)
|
public override bool IdentifyImage(string imagePath)
|
||||||
|
|||||||
@@ -1,3 +1,13 @@
|
|||||||
|
2016-08-18 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* Commands/Compare.cs:
|
||||||
|
Added field for drive firmware revision.
|
||||||
|
|
||||||
|
* Commands/CreateSidecar.cs:
|
||||||
|
If drive image contains information about the dumping drive,
|
||||||
|
use it.
|
||||||
|
Added subchannel types for Q only.
|
||||||
|
|
||||||
2016-08-09 Natalia Portillo <claunia@claunia.com>
|
2016-08-09 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* DiscImageChef.csproj:
|
* DiscImageChef.csproj:
|
||||||
|
|||||||
@@ -147,6 +147,7 @@ namespace DiscImageChef.Commands
|
|||||||
try { image1Info.driveManufacturer = input1Format.GetDriveManufacturer(); } catch { image1Info.driveManufacturer = null; }
|
try { image1Info.driveManufacturer = input1Format.GetDriveManufacturer(); } catch { image1Info.driveManufacturer = null; }
|
||||||
try { image1Info.driveModel = input1Format.GetDriveModel(); } catch { image1Info.driveModel = null; }
|
try { image1Info.driveModel = input1Format.GetDriveModel(); } catch { image1Info.driveModel = null; }
|
||||||
try { image1Info.driveSerialNumber = input1Format.GetDriveSerialNumber(); } catch { image1Info.driveSerialNumber = null; }
|
try { image1Info.driveSerialNumber = input1Format.GetDriveSerialNumber(); } catch { image1Info.driveSerialNumber = null; }
|
||||||
|
try { image1Info.driveFirmwareRevision = input1Format.ImageInfo.driveFirmwareRevision; } catch { image1Info.driveFirmwareRevision = null; }
|
||||||
foreach(MediaTagType disktag in Enum.GetValues(typeof(MediaTagType)))
|
foreach(MediaTagType disktag in Enum.GetValues(typeof(MediaTagType)))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -188,6 +189,7 @@ namespace DiscImageChef.Commands
|
|||||||
try { image2Info.driveManufacturer = input2Format.GetDriveManufacturer(); } catch { image2Info.driveManufacturer = null; }
|
try { image2Info.driveManufacturer = input2Format.GetDriveManufacturer(); } catch { image2Info.driveManufacturer = null; }
|
||||||
try { image2Info.driveModel = input2Format.GetDriveModel(); } catch { image2Info.driveModel = null; }
|
try { image2Info.driveModel = input2Format.GetDriveModel(); } catch { image2Info.driveModel = null; }
|
||||||
try { image2Info.driveSerialNumber = input2Format.GetDriveSerialNumber(); } catch { image2Info.driveSerialNumber = null; }
|
try { image2Info.driveSerialNumber = input2Format.GetDriveSerialNumber(); } catch { image2Info.driveSerialNumber = null; }
|
||||||
|
try { image2Info.driveFirmwareRevision = input2Format.ImageInfo.driveFirmwareRevision; } catch { image2Info.driveFirmwareRevision = null; }
|
||||||
foreach(MediaTagType disktag in Enum.GetValues(typeof(MediaTagType)))
|
foreach(MediaTagType disktag in Enum.GetValues(typeof(MediaTagType)))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -226,6 +228,7 @@ namespace DiscImageChef.Commands
|
|||||||
sb.AppendFormat("Disk sequence\t{0}\t{1}", image1Info.mediaSequence, image2Info.mediaSequence).AppendLine();
|
sb.AppendFormat("Disk sequence\t{0}\t{1}", image1Info.mediaSequence, image2Info.mediaSequence).AppendLine();
|
||||||
sb.AppendFormat("Last disk on sequence\t{0}\t{1}", image1Info.lastMediaSequence, image2Info.lastMediaSequence).AppendLine();
|
sb.AppendFormat("Last disk on sequence\t{0}\t{1}", image1Info.lastMediaSequence, image2Info.lastMediaSequence).AppendLine();
|
||||||
sb.AppendFormat("Drive manufacturer\t{0}\t{1}", image1Info.driveManufacturer, image2Info.driveManufacturer).AppendLine();
|
sb.AppendFormat("Drive manufacturer\t{0}\t{1}", image1Info.driveManufacturer, image2Info.driveManufacturer).AppendLine();
|
||||||
|
sb.AppendFormat("Drive firmware revision\t{0}\t{1}", image1Info.driveFirmwareRevision, image2Info.driveFirmwareRevision).AppendLine();
|
||||||
sb.AppendFormat("Drive model\t{0}\t{1}", image1Info.driveModel, image2Info.driveModel).AppendLine();
|
sb.AppendFormat("Drive model\t{0}\t{1}", image1Info.driveModel, image2Info.driveModel).AppendLine();
|
||||||
sb.AppendFormat("Drive serial number\t{0}\t{1}", image1Info.driveSerialNumber, image2Info.driveSerialNumber).AppendLine();
|
sb.AppendFormat("Drive serial number\t{0}\t{1}", image1Info.driveSerialNumber, image2Info.driveSerialNumber).AppendLine();
|
||||||
foreach(MediaTagType disktag in Enum.GetValues(typeof(MediaTagType)))
|
foreach(MediaTagType disktag in Enum.GetValues(typeof(MediaTagType)))
|
||||||
@@ -380,6 +383,12 @@ namespace DiscImageChef.Commands
|
|||||||
if(!options.Verbose)
|
if(!options.Verbose)
|
||||||
sb.AppendLine("Drive serial number differ");
|
sb.AppendLine("Drive serial number differ");
|
||||||
}
|
}
|
||||||
|
if(image1Info.driveFirmwareRevision != image2Info.driveFirmwareRevision)
|
||||||
|
{
|
||||||
|
imagesDiffer = true;
|
||||||
|
if(!options.Verbose)
|
||||||
|
sb.AppendLine("Drive firmware revision differ");
|
||||||
|
}
|
||||||
|
|
||||||
ulong leastSectors;
|
ulong leastSectors;
|
||||||
if(image1Info.sectors < image2Info.sectors)
|
if(image1Info.sectors < image2Info.sectors)
|
||||||
|
|||||||
@@ -453,6 +453,10 @@ namespace DiscImageChef.Commands
|
|||||||
case TrackSubchannelType.RawInterleaved:
|
case TrackSubchannelType.RawInterleaved:
|
||||||
xmlTrk.SubChannel.Image.format = "rw_raw";
|
xmlTrk.SubChannel.Image.format = "rw_raw";
|
||||||
break;
|
break;
|
||||||
|
case TrackSubchannelType.Q16:
|
||||||
|
case TrackSubchannelType.Q16Interleaved:
|
||||||
|
xmlTrk.SubChannel.Image.format = "q16";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(trk.TrackFileOffset > 0)
|
if(trk.TrackFileOffset > 0)
|
||||||
@@ -617,6 +621,24 @@ namespace DiscImageChef.Commands
|
|||||||
sidecar.OpticalDisc[0].DiscSubType = dscSubType;
|
sidecar.OpticalDisc[0].DiscSubType = dscSubType;
|
||||||
Core.Statistics.AddMedia(dskType, false);
|
Core.Statistics.AddMedia(dskType, false);
|
||||||
|
|
||||||
|
if(!string.IsNullOrEmpty(_imageFormat.ImageInfo.driveManufacturer) ||
|
||||||
|
!string.IsNullOrEmpty(_imageFormat.ImageInfo.driveModel) ||
|
||||||
|
!string.IsNullOrEmpty(_imageFormat.ImageInfo.driveFirmwareRevision) ||
|
||||||
|
!string.IsNullOrEmpty(_imageFormat.ImageInfo.driveSerialNumber))
|
||||||
|
{
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray = new DumpHardwareType[1];
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Extents = new ExtentType[0];
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Extents[0].Start = 0;
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Extents[0].End = (int)_imageFormat.ImageInfo.sectors;
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Manufacturer = _imageFormat.ImageInfo.driveManufacturer;
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Model = _imageFormat.ImageInfo.driveModel;
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Firmware = _imageFormat.ImageInfo.driveFirmwareRevision;
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Serial = _imageFormat.ImageInfo.driveSerialNumber;
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Software = new SoftwareType();
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Software.Name = _imageFormat.GetImageApplication();
|
||||||
|
sidecar.OpticalDisc[0].DumpHardwareArray[0].Software.Version = _imageFormat.GetImageApplicationVersion();
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case XmlMediaType.BlockMedia:
|
case XmlMediaType.BlockMedia:
|
||||||
|
|||||||
Reference in New Issue
Block a user