From cd3671b5656fbfda4d22109dd255423ca3e3a253 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 8 Aug 2017 12:15:55 +0100 Subject: [PATCH] Refactor: Split Sidecar class. --- DiscImageChef.Core/DiscImageChef.Core.csproj | 7 +- DiscImageChef.Core/Sidecar/Events.cs | 93 +++++++++++++++++ DiscImageChef.Core/Sidecar/Helpers.cs | 93 +++++++++++++++++ DiscImageChef.Core/{ => Sidecar}/Sidecar.cs | 103 +------------------ 4 files changed, 192 insertions(+), 104 deletions(-) create mode 100644 DiscImageChef.Core/Sidecar/Events.cs create mode 100644 DiscImageChef.Core/Sidecar/Helpers.cs rename DiscImageChef.Core/{ => Sidecar}/Sidecar.cs (94%) diff --git a/DiscImageChef.Core/DiscImageChef.Core.csproj b/DiscImageChef.Core/DiscImageChef.Core.csproj index 5f5f9deb..ce9b4a07 100644 --- a/DiscImageChef.Core/DiscImageChef.Core.csproj +++ b/DiscImageChef.Core/DiscImageChef.Core.csproj @@ -53,7 +53,6 @@ - @@ -80,6 +79,9 @@ + + + @@ -143,6 +145,7 @@ + @@ -156,7 +159,7 @@ - + diff --git a/DiscImageChef.Core/Sidecar/Events.cs b/DiscImageChef.Core/Sidecar/Events.cs new file mode 100644 index 00000000..55e4cec8 --- /dev/null +++ b/DiscImageChef.Core/Sidecar/Events.cs @@ -0,0 +1,93 @@ +// /*************************************************************************** +// The Disc Image Chef +// ---------------------------------------------------------------------------- +// +// Filename : Events.cs +// Version : 1.0 +// Author(s) : Natalia Portillo +// +// Component : Component +// +// Revision : $Revision$ +// Last change by : $Author$ +// Date : $Date$ +// +// --[ Description ] ---------------------------------------------------------- +// +// Description +// +// --[ License ] -------------------------------------------------------------- +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// ---------------------------------------------------------------------------- +// Copyright (C) 2011-2015 Claunia.com +// ****************************************************************************/ +// //$Id$ +using System; +namespace DiscImageChef.Core +{ + public static partial class Sidecar + { + public static event InitProgressHandler InitProgressEvent; + public static event UpdateProgressHandler UpdateProgressEvent; + public static event EndProgressHandler EndProgressEvent; + public static event InitProgressHandler2 InitProgressEvent2; + public static event UpdateProgressHandler2 UpdateProgressEvent2; + public static event EndProgressHandler2 EndProgressEvent2; + public static event UpdateStatusHandler UpdateStatusEvent; + + public static void InitProgress() + { + if(InitProgressEvent != null) + InitProgressEvent(); + } + + public static void UpdateProgress(string text, long current, long maximum) + { + if(UpdateProgressEvent != null) + UpdateProgressEvent(string.Format(text, current, maximum), current, maximum); + } + + public static void EndProgress() + { + if(EndProgressEvent != null) + EndProgressEvent(); + } + + public static void InitProgress2() + { + if(InitProgressEvent2 != null) + InitProgressEvent2(); + } + + public static void UpdateProgress2(string text, long current, long maximum) + { + if(UpdateProgressEvent2 != null) + UpdateProgressEvent2(string.Format(text, current, maximum), current, maximum); + } + + public static void EndProgress2() + { + if(EndProgressEvent2 != null) + EndProgressEvent2(); + } + + public static void UpdateStatus(string text, params object[] args) + { + if(UpdateStatusEvent != null) + UpdateStatusEvent(string.Format(text, args)); + } + } +} diff --git a/DiscImageChef.Core/Sidecar/Helpers.cs b/DiscImageChef.Core/Sidecar/Helpers.cs new file mode 100644 index 00000000..77957773 --- /dev/null +++ b/DiscImageChef.Core/Sidecar/Helpers.cs @@ -0,0 +1,93 @@ +// /*************************************************************************** +// The Disc Image Chef +// ---------------------------------------------------------------------------- +// +// Filename : Helpers.cs +// Version : 1.0 +// Author(s) : Natalia Portillo +// +// Component : Component +// +// Revision : $Revision$ +// Last change by : $Author$ +// Date : $Date$ +// +// --[ Description ] ---------------------------------------------------------- +// +// Description +// +// --[ License ] -------------------------------------------------------------- +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// ---------------------------------------------------------------------------- +// Copyright (C) 2011-2015 Claunia.com +// ****************************************************************************/ +// //$Id$ +using System; +namespace DiscImageChef.Core +{ + public static partial class Sidecar + { + static string LbaToMsf(long lba) + { + long m, s, f; + if(lba >= -150) + { + m = (lba + 150) / (75 * 60); + lba -= m * (75 * 60); + s = (lba + 150) / 75; + lba -= s * 75; + f = lba + 150; + } + else + { + m = (lba + 450150) / (75 * 60); + lba -= m * (75 * 60); + s = (lba + 450150) / 75; + lba -= s * 75; + f = lba + 450150; + } + + return string.Format("{0}:{1:D2}:{2:D2}", m, s, f); + } + + static string DdcdLbaToMsf(long lba) + { + long h, m, s, f; + if(lba >= -150) + { + h = (lba + 150) / (75 * 60 * 60); + lba -= h * (75 * 60 * 60); + m = (lba + 150) / (75 * 60); + lba -= m * (75 * 60); + s = (lba + 150) / 75; + lba -= s * 75; + f = lba + 150; + } + else + { + h = (lba + 450150 * 2) / (75 * 60 * 60); + lba -= h * (75 * 60 * 60); + m = (lba + 450150 * 2) / (75 * 60); + lba -= m * (75 * 60); + s = (lba + 450150 * 2) / 75; + lba -= s * 75; + f = lba + 450150 * 2; + } + + return string.Format("{3}:{0:D2}:{1:D2}:{2:D2}", m, s, f, h); + } + } +} diff --git a/DiscImageChef.Core/Sidecar.cs b/DiscImageChef.Core/Sidecar/Sidecar.cs similarity index 94% rename from DiscImageChef.Core/Sidecar.cs rename to DiscImageChef.Core/Sidecar/Sidecar.cs index 9c7440e1..87db2f31 100644 --- a/DiscImageChef.Core/Sidecar.cs +++ b/DiscImageChef.Core/Sidecar/Sidecar.cs @@ -41,63 +41,12 @@ using DiscImageChef.CommonTypes; using DiscImageChef.Decoders.PCMCIA; using DiscImageChef.Filesystems; using DiscImageChef.ImagePlugins; -using DiscImageChef.PartPlugins; using Schemas; namespace DiscImageChef.Core { - public static class Sidecar + public static partial class Sidecar { - public static event InitProgressHandler InitProgressEvent; - public static event UpdateProgressHandler UpdateProgressEvent; - public static event EndProgressHandler EndProgressEvent; - public static event InitProgressHandler2 InitProgressEvent2; - public static event UpdateProgressHandler2 UpdateProgressEvent2; - public static event EndProgressHandler2 EndProgressEvent2; - public static event UpdateStatusHandler UpdateStatusEvent; - - public static void InitProgress() - { - if(InitProgressEvent != null) - InitProgressEvent(); - } - - public static void UpdateProgress(string text, long current, long maximum) - { - if(UpdateProgressEvent != null) - UpdateProgressEvent(string.Format(text, current, maximum), current, maximum); - } - - public static void EndProgress() - { - if(EndProgressEvent != null) - EndProgressEvent(); - } - - public static void InitProgress2() - { - if(InitProgressEvent2 != null) - InitProgressEvent2(); - } - - public static void UpdateProgress2(string text, long current, long maximum) - { - if(UpdateProgressEvent2 != null) - UpdateProgressEvent2(string.Format(text, current, maximum), current, maximum); - } - - public static void EndProgress2() - { - if(EndProgressEvent2 != null) - EndProgressEvent2(); - } - - public static void UpdateStatus(string text, params object[] args) - { - if(UpdateStatusEvent != null) - UpdateStatusEvent(string.Format(text, args)); - } - public static CICMMetadataType Create(ImagePlugin image, string imagePath, System.Guid filterId) { CICMMetadataType sidecar = new CICMMetadataType(); @@ -975,55 +924,5 @@ namespace DiscImageChef.Core return sidecar; } - - static string LbaToMsf(long lba) - { - long m, s, f; - if(lba >= -150) - { - m = (lba + 150) / (75 * 60); - lba -= m * (75 * 60); - s = (lba + 150) / 75; - lba -= s * 75; - f = lba + 150; - } - else - { - m = (lba + 450150) / (75 * 60); - lba -= m * (75 * 60); - s = (lba + 450150) / 75; - lba -= s * 75; - f = lba + 450150; - } - - return string.Format("{0}:{1:D2}:{2:D2}", m, s, f); - } - - static string DdcdLbaToMsf(long lba) - { - long h, m, s, f; - if(lba >= -150) - { - h = (lba + 150) / (75 * 60 * 60); - lba -= h * (75 * 60 * 60); - m = (lba + 150) / (75 * 60); - lba -= m * (75 * 60); - s = (lba + 150) / 75; - lba -= s * 75; - f = lba + 150; - } - else - { - h = (lba + 450150 * 2) / (75 * 60 * 60); - lba -= h * (75 * 60 * 60); - m = (lba + 450150 * 2) / (75 * 60); - lba -= m * (75 * 60); - s = (lba + 450150 * 2) / 75; - lba -= s * 75; - f = lba + 450150 * 2; - } - - return string.Format("{3}:{0:D2}:{1:D2}:{2:D2}", m, s, f, h); - } } }