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...)");
|
||||
}
|
||||
|
||||
switch(response.LeadInStartSec)
|
||||
{
|
||||
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;
|
||||
}
|
||||
manufacturer = ManufacturerFromATIP(response.LeadInStartSec, frm);
|
||||
|
||||
if(manufacturer != "")
|
||||
sb.AppendFormat("Disc manufactured by: {0}", manufacturer).AppendLine();
|
||||
@@ -718,6 +440,291 @@ namespace DiscImageChef.Decoders.CD
|
||||
CDATIP? decoded = Decode(CDATIPResponse);
|
||||
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>
|
||||
|
||||
* DiscImageChef.Decoders.csproj: Bumped version to 3.2.99.2.
|
||||
|
||||
@@ -428,6 +428,18 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
/// </summary>
|
||||
HDDVDRWDL = 0x005A,
|
||||
/// <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
|
||||
/// </summary>
|
||||
Unconforming = 0xFFFF
|
||||
@@ -4099,6 +4111,15 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
||||
case ProfileNumber.HDDVDRWDL:
|
||||
sb.Append("\tDrive supports HD DVD-RW DL");
|
||||
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:
|
||||
sb.Append("\tDrive is not conforming to any profile");
|
||||
break;
|
||||
|
||||
@@ -5143,7 +5143,7 @@ namespace DiscImageChef.Decoders.SCSI
|
||||
}
|
||||
|
||||
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)
|
||||
sb.AppendLine("\tDrive supports IEC-958 digital output on port 1");
|
||||
if(page.DigitalPort2)
|
||||
|
||||
@@ -199,6 +199,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
public override bool IdentifyImage(string imagePath)
|
||||
|
||||
@@ -194,6 +194,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
public override bool IdentifyImage(string imagePath)
|
||||
|
||||
@@ -90,6 +90,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
public override bool IdentifyImage(string imagePath)
|
||||
|
||||
@@ -202,6 +202,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
public override bool IdentifyImage(string imagePath)
|
||||
@@ -785,7 +786,9 @@ namespace DiscImageChef.ImagePlugins
|
||||
|
||||
ImageInfo.mediaType = MediaType.CD;
|
||||
|
||||
ImageInfo.imageApplication = "BlindRead 4";
|
||||
ImageInfo.imageApplication = "BlindWrite";
|
||||
ImageInfo.imageApplicationVersion = "4";
|
||||
ImageInfo.imageVersion = "4";
|
||||
|
||||
FileInfo fi = new FileInfo(dataFile);
|
||||
ImageInfo.imageSize = (ulong)fi.Length;
|
||||
@@ -1116,7 +1119,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
break;
|
||||
}
|
||||
case SectorTagType.CDSectorSubchannel:
|
||||
throw new NotImplementedException("Subchannel interleaving not yet implemented");
|
||||
throw new NotImplementedException("Packed subchannel not yet supported");
|
||||
default:
|
||||
throw new ArgumentException("Unsupported tag requested", nameof(tag));
|
||||
}
|
||||
@@ -1146,7 +1149,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
break;
|
||||
}
|
||||
case SectorTagType.CDSectorSubchannel:
|
||||
throw new NotImplementedException("Subchannel interleaving not yet implemented");
|
||||
throw new NotImplementedException("Packed subchannel not yet supported");
|
||||
default:
|
||||
throw new ArgumentException("Unsupported tag requested", nameof(tag));
|
||||
}
|
||||
@@ -1157,7 +1160,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
switch(tag)
|
||||
{
|
||||
case SectorTagType.CDSectorSubchannel:
|
||||
throw new NotImplementedException("Subchannel interleaving not yet implemented");
|
||||
throw new NotImplementedException("Packed subchannel not yet supported");
|
||||
default:
|
||||
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.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
#endregion Public methods
|
||||
|
||||
@@ -305,6 +305,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = 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()).
|
||||
|
||||
@@ -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>
|
||||
|
||||
* BlindWrite4.cs:
|
||||
|
||||
@@ -186,6 +186,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
#region Public methods
|
||||
|
||||
@@ -154,6 +154,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
public override bool IdentifyImage(string imagePath)
|
||||
|
||||
@@ -124,6 +124,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = 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()).
|
||||
|
||||
@@ -64,6 +64,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
public string driveManufacturer;
|
||||
public string driveModel;
|
||||
public string driveSerialNumber;
|
||||
public string driveFirmwareRevision;
|
||||
public XmlMediaType xmlMediaType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -503,7 +503,15 @@ namespace DiscImageChef.ImagePlugins
|
||||
/// <summary>
|
||||
/// Subchannel is interleaved and comes interleaved with main channel in same file
|
||||
/// </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>
|
||||
@@ -653,6 +661,8 @@ namespace DiscImageChef.ImagePlugins
|
||||
MMC_POWResourcesInformation,
|
||||
/// <summary>SCSI INQUIRY response</summary>
|
||||
SCSI_INQUIRY,
|
||||
/// <summary>SCSI MODE PAGE 2Ah</summary>
|
||||
SCSI_MODEPAGE_2A,
|
||||
/// <summary>ATA IDENTIFY DEVICE response</summary>
|
||||
ATA_IDENTIFY,
|
||||
/// <summary>ATA IDENTIFY PACKET DEVICE response</summary>
|
||||
|
||||
@@ -1488,6 +1488,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
ImageInfo.mediaSequence = 0;
|
||||
ImageInfo.lastMediaSequence = 0;
|
||||
if(imageNewFormat)
|
||||
|
||||
@@ -219,6 +219,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
ADiskCRCHasFailed = false;
|
||||
SectorsWhereCRCHasFailed = new List<ulong>();
|
||||
}
|
||||
|
||||
@@ -386,6 +386,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
#region public methods
|
||||
|
||||
@@ -72,6 +72,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.driveManufacturer = null;
|
||||
ImageInfo.driveModel = null;
|
||||
ImageInfo.driveSerialNumber = null;
|
||||
ImageInfo.driveFirmwareRevision = null;
|
||||
}
|
||||
|
||||
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>
|
||||
|
||||
* DiscImageChef.csproj:
|
||||
|
||||
@@ -147,6 +147,7 @@ namespace DiscImageChef.Commands
|
||||
try { image1Info.driveManufacturer = input1Format.GetDriveManufacturer(); } catch { image1Info.driveManufacturer = null; }
|
||||
try { image1Info.driveModel = input1Format.GetDriveModel(); } catch { image1Info.driveModel = 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)))
|
||||
{
|
||||
try
|
||||
@@ -188,6 +189,7 @@ namespace DiscImageChef.Commands
|
||||
try { image2Info.driveManufacturer = input2Format.GetDriveManufacturer(); } catch { image2Info.driveManufacturer = null; }
|
||||
try { image2Info.driveModel = input2Format.GetDriveModel(); } catch { image2Info.driveModel = 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)))
|
||||
{
|
||||
try
|
||||
@@ -226,6 +228,7 @@ namespace DiscImageChef.Commands
|
||||
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("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 serial number\t{0}\t{1}", image1Info.driveSerialNumber, image2Info.driveSerialNumber).AppendLine();
|
||||
foreach(MediaTagType disktag in Enum.GetValues(typeof(MediaTagType)))
|
||||
@@ -380,6 +383,12 @@ namespace DiscImageChef.Commands
|
||||
if(!options.Verbose)
|
||||
sb.AppendLine("Drive serial number differ");
|
||||
}
|
||||
if(image1Info.driveFirmwareRevision != image2Info.driveFirmwareRevision)
|
||||
{
|
||||
imagesDiffer = true;
|
||||
if(!options.Verbose)
|
||||
sb.AppendLine("Drive firmware revision differ");
|
||||
}
|
||||
|
||||
ulong leastSectors;
|
||||
if(image1Info.sectors < image2Info.sectors)
|
||||
|
||||
@@ -453,6 +453,10 @@ namespace DiscImageChef.Commands
|
||||
case TrackSubchannelType.RawInterleaved:
|
||||
xmlTrk.SubChannel.Image.format = "rw_raw";
|
||||
break;
|
||||
case TrackSubchannelType.Q16:
|
||||
case TrackSubchannelType.Q16Interleaved:
|
||||
xmlTrk.SubChannel.Image.format = "q16";
|
||||
break;
|
||||
}
|
||||
|
||||
if(trk.TrackFileOffset > 0)
|
||||
@@ -617,6 +621,24 @@ namespace DiscImageChef.Commands
|
||||
sidecar.OpticalDisc[0].DiscSubType = dscSubType;
|
||||
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;
|
||||
}
|
||||
case XmlMediaType.BlockMedia:
|
||||
|
||||
Reference in New Issue
Block a user