From 2462026fbd5e9a1ae2fba2fd591edbf9e6468cbf Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 28 Jan 2018 21:35:38 +0000 Subject: [PATCH] Read metadata sidecar for raw sector-by-sector images. --- .../DiscImageChef.DiscImages.csproj | 1 + DiscImageChef.DiscImages/ZZZRawImage.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj b/DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj index 1d2fd9148..08375a06c 100644 --- a/DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj +++ b/DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj @@ -51,6 +51,7 @@ ..\packages\System.ValueTuple.4.4.0\lib\portable-net40+sl4+win8+wp8\System.ValueTuple.dll + diff --git a/DiscImageChef.DiscImages/ZZZRawImage.cs b/DiscImageChef.DiscImages/ZZZRawImage.cs index 5777a460b..50d8c470e 100644 --- a/DiscImageChef.DiscImages/ZZZRawImage.cs +++ b/DiscImageChef.DiscImages/ZZZRawImage.cs @@ -34,6 +34,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Xml.Serialization; using DiscImageChef.CommonTypes; using DiscImageChef.Console; using DiscImageChef.Decoders.ATA; @@ -1041,6 +1042,19 @@ namespace DiscImageChef.DiscImages DicConsole.VerboseWriteLine("Raw disk image contains a disk of type {0}", imageInfo.MediaType); + XmlSerializer sidecarXs = new XmlSerializer(typeof(CICMMetadataType)); + if(File.Exists(basename + "cicm.xml")) + try + { + StreamReader sr = new StreamReader(basename + "cicm.xml"); + CicmMetadata = (CICMMetadataType)sidecarXs.Deserialize(sr); + sr.Close(); + } + catch + { + // Do nothing. + } + imageInfo.ReadableMediaTags = new List(mediaTags.Keys); return true;