From c5ac4c1d771ded26a1bddbc91cb67c2f5dac2c5a Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 18 Oct 2020 04:32:47 +0100 Subject: [PATCH] Add detection of ECMA-322 / ISO 22092 1024bps magneto-optical. --- MediaType.cs | 13 ++++++++++--- MediaTypeFromDevice/FromOdc.cs | 6 ++++++ MediaTypeFromDevice/FromSbc.cs | 6 ++++++ Metadata/Dimensions.cs | 2 ++ Metadata/MediaType.cs | 4 +++- 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/MediaType.cs b/MediaType.cs index 020e2ea..0dccf8d 100644 --- a/MediaType.cs +++ b/MediaType.cs @@ -773,9 +773,9 @@ namespace Aaru.CommonTypes ECMA_280 = 649, /// 300mm, M.O., 7355716 sectors, 2048 bytes/sector, ECMA-317, ISO 20162 ECMA_317 = 650, - /// 5,25", M.O., 1095840 sectors, 4096 bytes/sector, ECMA-322, ISO 22092 + /// 5,25", M.O., 1095840 sectors, 4096 bytes/sector, ECMA-322, ISO 22092, 9.1Gb/cart ECMA_322 = 651, - /// 5,25", M.O., 2043664 sectors, 2048 bytes/sector, ECMA-322, ISO 22092 + /// 5,25", M.O., 2043664 sectors, 2048 bytes/sector, ECMA-322, ISO 22092, 8.6Gb/cart ECMA_322_2k = 652, /// 3,5", M.O., 605846 sectors, 2048 bytes/sector, Cherry Book, GigaMo, ECMA-351, ISO 17346 GigaMo = 653, @@ -1011,7 +1011,14 @@ namespace Aaru.CommonTypes /// Optical Disc archive, 4th gen., write once, 3300Gb ODC3300R = 785, /// Optical Disc archive, 5th gen., write once, 5500Gb - ODC5500R = 786 + ODC5500R = 786, #endregion Sony and Panasonic Blu-ray derived, types 770 to 799 + + #region Magneto-optical, types 800 to 819 + /// 5,25", M.O., 4383356 sectors, 1024 bytes/sector, ECMA-322, ISO 22092, 9.1Gb/cart + ECMA_322_1k = 800, + /// 5,25", M.O., ??????? sectors, 512 bytes/sector, ECMA-322, ISO 22092, 9.1Gb/cart + ECMA_322_512 = 801, + #endregion Magneto-optical, types 800 to 819 } } \ No newline at end of file diff --git a/MediaTypeFromDevice/FromOdc.cs b/MediaTypeFromDevice/FromOdc.cs index 2414636..642bfbb 100644 --- a/MediaTypeFromDevice/FromOdc.cs +++ b/MediaTypeFromDevice/FromOdc.cs @@ -172,6 +172,12 @@ namespace Aaru.CommonTypes mediumType, blocks, blockSize); return MediaType.ISO_15286_1024; + case 4383356: + AaruConsole.DebugWriteLine("Media detection", + "SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-322 / ISO 22092 conforming 5¼\" magneto-optical.", + mediumType, blocks, blockSize); + + return MediaType.ECMA_322_1k; case 14476734: AaruConsole.DebugWriteLine("Media detection", "SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-260 / ISO 15898 conforming 356mm magneto-optical.", diff --git a/MediaTypeFromDevice/FromSbc.cs b/MediaTypeFromDevice/FromSbc.cs index d268d44..5b6beae 100644 --- a/MediaTypeFromDevice/FromSbc.cs +++ b/MediaTypeFromDevice/FromSbc.cs @@ -767,6 +767,12 @@ namespace Aaru.CommonTypes mediumType, blocks, blockSize); return MediaType.ISO_15286_1024; + case 4383356 when mediumType == 0x01 || mediumType == 0x02: + AaruConsole.DebugWriteLine("Media detection", + "SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-322 / ISO 22092 conforming 5¼\" magneto-optical.", + mediumType, blocks, blockSize); + + return MediaType.ECMA_322_1k; case 14476734 when mediumType == 0x01 || mediumType == 0x02: AaruConsole.DebugWriteLine("Media detection", "SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-260 / ISO 15898 conforming 356mm magneto-optical.", diff --git a/Metadata/Dimensions.cs b/Metadata/Dimensions.cs index 51cba8f..fbc7bf5 100644 --- a/Metadata/Dimensions.cs +++ b/Metadata/Dimensions.cs @@ -205,6 +205,8 @@ namespace Aaru.CommonTypes.Metadata case CommonTypes.MediaType.ISO_15286_512: case CommonTypes.MediaType.ISO_10089: case CommonTypes.MediaType.ISO_10089_512: + case CommonTypes.MediaType.ECMA_322_1k: + case CommonTypes.MediaType.ECMA_322_512: // According to ECMA-183 et al dmns.Height = 153; dmns.HeightSpecified = true; diff --git a/Metadata/MediaType.cs b/Metadata/MediaType.cs index 50ef0de..1a2edef 100644 --- a/Metadata/MediaType.cs +++ b/Metadata/MediaType.cs @@ -1860,9 +1860,11 @@ namespace Aaru.CommonTypes.Metadata break; case CommonTypes.MediaType.ECMA_322: + case CommonTypes.MediaType.ECMA_322_512: + case CommonTypes.MediaType.ECMA_322_1k: case CommonTypes.MediaType.ECMA_322_2k: discType = "5.25\" magneto-optical"; - discSubType = "ECMA-322"; + discSubType = "ECMA-322 / ISO 22092"; break; case CommonTypes.MediaType.ISO_15286: