diff --git a/MediaType.cs b/MediaType.cs index be96ec7..3012391 100644 --- a/MediaType.cs +++ b/MediaType.cs @@ -552,11 +552,29 @@ namespace DiscImageChef.CommonTypes #endregion Advanced Intelligent Tape, types 320 to 339 #region Iomega, types 340 to 359 - Bernoulli = 340, Bernoulli2 = 341, Ditto = 342, - DittoMax = 343, Jaz = 344, Jaz2 = 345, - PocketZip = 346, REV120 = 347, REV35 = 348, - REV70 = 349, ZIP100 = 350, ZIP250 = 351, - ZIP750 = 352, + /// Obsolete type for 8"x11" Bernoulli Box disk + [Obsolete] + Bernoulli = 340, + /// Obsolete type for 5⅓" Bernoulli Box II disks + [Obsolete] + Bernoulli2 = 341, Ditto = 342, DittoMax = 343, Jaz = 344, + Jaz2 = 345, PocketZip = 346, REV120 = 347, + REV35 = 348, REV70 = 349, ZIP100 = 350, + ZIP250 = 351, ZIP750 = 352, + /// 5⅓" Bernoulli Box II disk with 35Mb capacity + Bernoulli35 = 353, + /// 5⅓" Bernoulli Box II disk with 44Mb capacity + Bernoulli44 = 354, + /// 5⅓" Bernoulli Box II disk with 65Mb capacity + Bernoulli65 = 355, + /// 5⅓" Bernoulli Box II disk with 90Mb capacity + Bernoulli90 = 356, + /// 5⅓" Bernoulli Box II disk with 105Mb capacity + Bernoulli105 = 357, + /// 5⅓" Bernoulli Box II disk with 150Mb capacity + Bernoulli150 = 358, + /// 5⅓" Bernoulli Box II disk with 230Mb capacity + Bernoulli230 = 359, #endregion Iomega, types 340 to 359 #region Audio or video media, types 360 to 369 @@ -928,7 +946,57 @@ namespace DiscImageChef.CommonTypes #endregion Imation, types 730 to 739 #region VideoNow, types 740 to 749 - VideoNow = 740, VideoNowColor = 741, VideoNowXp = 742 + VideoNow = 740, VideoNowColor = 741, VideoNowXp = 742, #endregion + + #region Iomega, types 750 to 759 + /// 8"x11" Bernoulli Box disk with 10Mb capacity + Bernoulli10 = 750, + /// 8"x11" Bernoulli Box disk with 20Mb capacity + Bernoulli20 = 751, + /// 5⅓" Bernoulli Box II disk with 20Mb capacity + BernoulliBox2_20 = 752, + #endregion Iomega, types 750 to 759 + + #region Kodak, types 760 to 769 + KodakVerbatim3 = 760, KodakVerbatim6 = 761, KodakVerbatim12 = 762, + #endregion Kodak, types 760 to 769 + + #region Sony and Panasonic Blu-ray derived, types 770 to 799 + /// Professional Disc for video, single layer, rewritable, 23Gb + ProfessionalDisc = 770, + /// Professional Disc for video, dual layer, rewritable, 50Gb + ProfessionalDiscDual = 771, + /// Professional Disc for video, triple layer, rewritable, 100Gb + ProfessionalDiscTriple = 772, + /// Professional Disc for video, quad layer, write once, 128Gb + ProfessionalDiscQuad = 773, + /// Professional Disc for DATA, single layer, rewritable, 23Gb + PDD = 774, + /// Professional Disc for DATA, single layer, write once, 23Gb + PDD_WORM = 775, + /// Archival Disc, 1st gen., 300Gb + ArchivalDisc = 776, + /// Archival Disc, 2nd gen., 500Gb + ArchivalDisc2 = 777, + /// Archival Disc, 3rd gen., 1Tb + ArchivalDisc3 = 778, + /// Optical Disc archive, 1st gen., write once, 300Gb + ODC300R = 779, + /// Optical Disc archive, 1st gen., rewritable, 300Gb + ODC300RE = 780, + /// Optical Disc archive, 2nd gen., write once, 600Gb + ODC600R = 781, + /// Optical Disc archive, 2nd gen., rewritable, 600Gb + ODC600RE = 782, + /// Optical Disc archive, 3rd gen., rewritable, 1200Gb + ODC1200RE = 783, + /// Optical Disc archive, 3rd gen., write once, 1500Gb + ODC1500R = 784, + /// Optical Disc archive, 4th gen., write once, 3300Gb + ODC3300R = 785, + /// Optical Disc archive, 5th gen., write once, 5500Gb + ODC5500R = 786 + #endregion Sony and Panasonic Blu-ray derived, types 770 to 799 } } \ No newline at end of file diff --git a/MediaTypeFromDevice.cs b/MediaTypeFromDevice.cs index 3960ca7..8c4c41f 100644 --- a/MediaTypeFromDevice.cs +++ b/MediaTypeFromDevice.cs @@ -91,29 +91,46 @@ namespace DiscImageChef.CommonTypes return MediaType.Unknown; } - if(vendor.ToLowerInvariant().StartsWith("iomega", StringComparison.Ordinal) && - (model.ToLowerInvariant().StartsWith("clik", StringComparison.Ordinal) || - model.ToLowerInvariant().StartsWith("pocketzip", StringComparison.Ordinal)) && - blockSize == 512 && - blocks == 78882) - return MediaType.PocketZip; + if(vendor.ToLowerInvariant().StartsWith("iomega")) - if(model.ToLowerInvariant().StartsWith("zip", StringComparison.Ordinal)) { - if(blockSize != 512) - return MediaType.Unknown; + switch(blockSize) + { + case 256: + { + switch(blocks) + { + case 39168: + case 41004: return MediaType.Bernoulli10; + } + break; + } + case 512: + { + switch(blocks) + { + case 78882: return MediaType.PocketZip; + case 175856: return MediaType.Bernoulli90; + } + + break; + } + } + } + + if(model.ToLowerInvariant().StartsWith("zip", StringComparison.Ordinal) && + blockSize == 512) + { if(blocks == 196608) return MediaType.ZIP100; return blocks == 489532 ? MediaType.ZIP250 : MediaType.ZIP750; } - if(model.ToLowerInvariant().StartsWith("jaz", StringComparison.Ordinal)) + if(model.ToLowerInvariant().StartsWith("jaz", StringComparison.Ordinal) && + blockSize == 512) { - if(blockSize != 512) - return MediaType.Unknown; - if(blocks == 2091050) return MediaType.Jaz; @@ -148,20 +165,16 @@ namespace DiscImageChef.CommonTypes return MediaType.Unknown; } - if(model.ToLowerInvariant().StartsWith("rdx", StringComparison.Ordinal)) - { - if(blockSize != 512) - return MediaType.Unknown; - + if(model.ToLowerInvariant().StartsWith("rdx", StringComparison.Ordinal) && + blockSize == 512) return blocks == 625134256 ? MediaType.RDX320 : MediaType.RDX; - } if(vendor.ToLowerInvariant().StartsWith("cws orb")) { switch(blocks) { case 4307184 when blockSize == 512: return MediaType.Orb; - default: return MediaType.Unknown; + default: return MediaType.Unknown; } } diff --git a/Metadata/Dimensions.cs b/Metadata/Dimensions.cs index e6efa95..c4e918f 100644 --- a/Metadata/Dimensions.cs +++ b/Metadata/Dimensions.cs @@ -684,12 +684,21 @@ namespace DiscImageChef.CommonTypes.Metadata return dmns; case CommonTypes.MediaType.EZ135: case CommonTypes.MediaType.EZ230: + case CommonTypes.MediaType.SQ327: dmns.Height = 97; dmns.HeightSpecified = true; dmns.Width = 98; dmns.WidthSpecified = true; dmns.Thickness = 9.5; + return dmns; + case CommonTypes.MediaType.SQ800: + dmns.Height = 137; + dmns.HeightSpecified = true; + dmns.Width = 137; + dmns.WidthSpecified = true; + dmns.Thickness = 12; + return dmns; case CommonTypes.MediaType.ZIP100: case CommonTypes.MediaType.ZIP250: @@ -726,6 +735,19 @@ namespace DiscImageChef.CommonTypes.Metadata dmns.WidthSpecified = true; dmns.Thickness = 9.7; + return dmns; + case CommonTypes.MediaType.ProfessionalDisc: + case CommonTypes.MediaType.ProfessionalDiscDual: + case CommonTypes.MediaType.ProfessionalDiscTriple: + case CommonTypes.MediaType.ProfessionalDiscQuad: + case CommonTypes.MediaType.PDD: + case CommonTypes.MediaType.PDD_WORM: + dmns.Height = 130; + dmns.HeightSpecified = true; + dmns.Width = 128.5; + dmns.WidthSpecified = true; + dmns.Thickness = 9; + return dmns; case CommonTypes.MediaType.SLR1: case CommonTypes.MediaType.SLR2: @@ -838,14 +860,6 @@ namespace DiscImageChef.CommonTypes.Metadata dmns.WidthSpecified = true; dmns.Thickness = 16.51; - return dmns; - case CommonTypes.MediaType.Bernoulli2: - dmns.Height = 136; - dmns.HeightSpecified = true; - dmns.Width = 140; - dmns.WidthSpecified = true; - dmns.Thickness = 9; - return dmns; case CommonTypes.MediaType.MLR1: case CommonTypes.MediaType.MLR3: @@ -871,11 +885,29 @@ namespace DiscImageChef.CommonTypes.Metadata return dmns; case CommonTypes.MediaType.Bernoulli: - dmns.Height = 275; + case CommonTypes.MediaType.Bernoulli10: + case CommonTypes.MediaType.Bernoulli20: + dmns.Height = 280; dmns.HeightSpecified = true; - dmns.Width = 210; + dmns.Width = 209; dmns.WidthSpecified = true; - dmns.Thickness = 0; + dmns.Thickness = 18; + + return dmns; + case CommonTypes.MediaType.Bernoulli2: + case CommonTypes.MediaType.BernoulliBox2_20: + case CommonTypes.MediaType.Bernoulli35: + case CommonTypes.MediaType.Bernoulli44: + case CommonTypes.MediaType.Bernoulli65: + case CommonTypes.MediaType.Bernoulli90: + case CommonTypes.MediaType.Bernoulli105: + case CommonTypes.MediaType.Bernoulli150: + case CommonTypes.MediaType.Bernoulli230: + dmns.Height = 138; + dmns.HeightSpecified = true; + dmns.Width = 136; + dmns.WidthSpecified = true; + dmns.Thickness = 9; return dmns; case CommonTypes.MediaType.DTF: diff --git a/Metadata/MediaType.cs b/Metadata/MediaType.cs index 76e9137..d326bba 100644 --- a/Metadata/MediaType.cs +++ b/Metadata/MediaType.cs @@ -1113,13 +1113,55 @@ namespace DiscImageChef.CommonTypes.Metadata break; case CommonTypes.MediaType.Bernoulli: - discType = "Iomega Bernoulli"; - discSubType = "Iomega Bernoulli"; + case CommonTypes.MediaType.Bernoulli10: + discType = "Iomega Bernoulli Box"; + discSubType = "Iomega Bernoulli Box 10Mb"; break; + case CommonTypes.MediaType.Bernoulli20: + discType = "Iomega Bernoulli Box"; + discSubType = "Iomega Bernoulli Box 20Mb"; + + break; + case CommonTypes.MediaType.BernoulliBox2_20: case CommonTypes.MediaType.Bernoulli2: - discType = "Iomega Bernoulli"; - discSubType = "Iomega Bernoulli 2"; + discType = "Iomega Bernoulli Box II"; + discSubType = "Iomega Bernoulli Box II 20Mb"; + + break; + case CommonTypes.MediaType.Bernoulli35: + discType = "Iomega Bernoulli Box II"; + discSubType = "Iomega Bernoulli Box II 35Mb"; + + break; + case CommonTypes.MediaType.Bernoulli44: + discType = "Iomega Bernoulli Box II"; + discSubType = "Iomega Bernoulli Box II 44Mb"; + + break; + case CommonTypes.MediaType.Bernoulli65: + discType = "Iomega Bernoulli Box II"; + discSubType = "Iomega Bernoulli Box II 65Mb"; + + break; + case CommonTypes.MediaType.Bernoulli90: + discType = "Iomega Bernoulli Box II"; + discSubType = "Iomega Bernoulli Box II 90Mb"; + + break; + case CommonTypes.MediaType.Bernoulli105: + discType = "Iomega Bernoulli Box II"; + discSubType = "Iomega Bernoulli Box II 105Mb"; + + break; + case CommonTypes.MediaType.Bernoulli150: + discType = "Iomega Bernoulli Box II"; + discSubType = "Iomega Bernoulli Box II 150Mb"; + + break; + case CommonTypes.MediaType.Bernoulli230: + discType = "Iomega Bernoulli Box II"; + discSubType = "Iomega Bernoulli Box II 230Mb"; break; case CommonTypes.MediaType.Ditto: @@ -2342,6 +2384,106 @@ namespace DiscImageChef.CommonTypes.Metadata discType = "VideoNow"; discSubType = "VideoNow XP"; + break; + case CommonTypes.MediaType.KodakVerbatim3: + discType = "Kodak Verbatim"; + discSubType = "Kodak Verbatim (3 Mb)"; + + break; + case CommonTypes.MediaType.KodakVerbatim6: + discType = "Kodak Verbatim"; + discSubType = "Kodak Verbatim (6 Mb)"; + + break; + case CommonTypes.MediaType.KodakVerbatim12: + discType = "Kodak Verbatim"; + discSubType = "Kodak Verbatim (12 Mb)"; + + break; + case CommonTypes.MediaType.ProfessionalDisc: + discType = "Sony Professional Disc"; + discSubType = "Sony Professional Disc (single layer)"; + + break; + case CommonTypes.MediaType.ProfessionalDiscDual: + discType = "Sony Professional Disc"; + discSubType = "Sony Professional Disc (double layer)"; + + break; + case CommonTypes.MediaType.ProfessionalDiscTriple: + discType = "Sony Professional Disc"; + discSubType = "Sony Professional Disc (triple layer)"; + + break; + case CommonTypes.MediaType.ProfessionalDiscQuad: + discType = "Sony Professional Disc"; + discSubType = "Sony Professional Disc (quad layer)"; + + break; + case CommonTypes.MediaType.PDD: + discType = "Sony Professional Disc for DATA"; + discSubType = "Sony Professional Disc for DATA"; + + break; + case CommonTypes.MediaType.PDD_WORM: + discType = "Sony Professional Disc for DATA"; + discSubType = "Sony Professional Disc for DATA (write-once)"; + + break; + case CommonTypes.MediaType.ArchivalDisc: + discType = "Archival Disc"; + discSubType = "Archival Disc"; + + break; + case CommonTypes.MediaType.ArchivalDisc2: + discType = "Archival Disc"; + discSubType = "Archival Disc (2nd generation)"; + + break; + case CommonTypes.MediaType.ArchivalDisc3: + discType = "Archival Disc"; + discSubType = "Archival Disc (3rd generation)"; + + break; + case CommonTypes.MediaType.ODC300R: + discType = "Optical Disc Archive"; + discSubType = "ODC300R"; + + break; + case CommonTypes.MediaType.ODC300RE: + discType = "Optical Disc Archive"; + discSubType = "ODC300RE"; + + break; + case CommonTypes.MediaType.ODC600R: + discType = "Optical Disc Archive"; + discSubType = "ODC600R"; + + break; + case CommonTypes.MediaType.ODC600RE: + discType = "Optical Disc Archive"; + discSubType = "ODC600RE"; + + break; + case CommonTypes.MediaType.ODC1200RE: + discType = "Optical Disc Archive"; + discSubType = "ODC1200RE"; + + break; + case CommonTypes.MediaType.ODC1500R: + discType = "Optical Disc Archive"; + discSubType = "ODC1500R"; + + break; + case CommonTypes.MediaType.ODC3300R: + discType = "Optical Disc Archive"; + discSubType = "ODC3300R"; + + break; + case CommonTypes.MediaType.ODC5500R: + discType = "Optical Disc Archive"; + discSubType = "ODC5500R"; + break; default: discType = "Unknown";