From 086f54abf0360b8a4017bc80bdfbd381d0232672 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sun, 25 Apr 2021 14:08:00 -0700 Subject: [PATCH] Topsy-turvy (fixes #274) --- CHANGELIST.md | 4 +++ MPF.Library/Data/DumpEnvironment.cs | 43 +++++++++++++---------- MPF/Windows/DiscInformationWindow.xaml.cs | 21 +++++++---- 3 files changed, 43 insertions(+), 25 deletions(-) diff --git a/CHANGELIST.md b/CHANGELIST.md index ccbafcb2..979c8398 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -1,3 +1,7 @@ +### WIP (xxx-xx-xx) +- Enum, no more +- Sony works backward + ### 2.0 (2021-04-23) - Rename DICUI to Media Preservation Frontend (MPF) - Add handling for BEh drive _mainInfo.txt changes diff --git a/MPF.Library/Data/DumpEnvironment.cs b/MPF.Library/Data/DumpEnvironment.cs index 0c09a195..dd6e0865 100644 --- a/MPF.Library/Data/DumpEnvironment.cs +++ b/MPF.Library/Data/DumpEnvironment.cs @@ -968,6 +968,13 @@ namespace MPF.Data try { + // Sony-printed discs have layers in the opposite order + var system = info.CommonDiscInfo.System; + bool reverseOrder = (system == KnownSystem.SonyPlayStation2 + || system == KnownSystem.SonyPlayStation3 + || system == KnownSystem.SonyPlayStation4 + || system == KnownSystem.SonyPlayStation5); + // Common Disc Info section List output = new List { "Common Disc Info:" }; AddIfExists(output, Template.TitleField, info.CommonDiscInfo.Title, 1); @@ -995,9 +1002,9 @@ namespace MPF.Data // If we have a triple-layer disc if (info.SizeAndChecksums.Layerbreak3 != default) { - AddIfExists(output, "Layer 0 (Inner) " + Template.MasteringRingField, info.CommonDiscInfo.Layer0MasteringRing, 2); - AddIfExists(output, "Layer 0 (Inner) " + Template.MasteringSIDField, info.CommonDiscInfo.Layer0MasteringSID, 2); - AddIfExists(output, "Layer 0 (Inner) " + Template.ToolstampField, info.CommonDiscInfo.Layer0ToolstampMasteringCode, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.MasteringRingField, info.CommonDiscInfo.Layer0MasteringRing, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.MasteringSIDField, info.CommonDiscInfo.Layer0MasteringSID, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.ToolstampField, info.CommonDiscInfo.Layer0ToolstampMasteringCode, 2); AddIfExists(output, "Data Side " + Template.MouldSIDField, info.CommonDiscInfo.Layer0MouldSID, 2); AddIfExists(output, "Data Side " + Template.AdditionalMouldField, info.CommonDiscInfo.Layer0AdditionalMould, 2); @@ -1011,16 +1018,16 @@ namespace MPF.Data AddIfExists(output, "Layer 2 " + Template.MasteringSIDField, info.CommonDiscInfo.Layer2MasteringSID, 2); AddIfExists(output, "Layer 2 " + Template.ToolstampField, info.CommonDiscInfo.Layer2ToolstampMasteringCode, 2); - AddIfExists(output, "Layer 3 (Outer) " + Template.MasteringRingField, info.CommonDiscInfo.Layer3MasteringRing, 2); - AddIfExists(output, "Layer 3 (Outer) " + Template.MasteringSIDField, info.CommonDiscInfo.Layer3MasteringSID, 2); - AddIfExists(output, "Layer 3 (Outer) " + Template.ToolstampField, info.CommonDiscInfo.Layer3ToolstampMasteringCode, 2); + AddIfExists(output, (reverseOrder ? "Layer 3 (Inner) " : "Layer 3 (Outer) ") + Template.MasteringRingField, info.CommonDiscInfo.Layer3MasteringRing, 2); + AddIfExists(output, (reverseOrder ? "Layer 3 (Inner) " : "Layer 3 (Outer) ") + Template.MasteringSIDField, info.CommonDiscInfo.Layer3MasteringSID, 2); + AddIfExists(output, (reverseOrder ? "Layer 3 (Inner) " : "Layer 3 (Outer) ") + Template.ToolstampField, info.CommonDiscInfo.Layer3ToolstampMasteringCode, 2); } // If we have a triple-layer disc else if (info.SizeAndChecksums.Layerbreak2 != default) { - AddIfExists(output, "Layer 0 (Inner) " + Template.MasteringRingField, info.CommonDiscInfo.Layer0MasteringRing, 2); - AddIfExists(output, "Layer 0 (Inner) " + Template.MasteringSIDField, info.CommonDiscInfo.Layer0MasteringSID, 2); - AddIfExists(output, "Layer 0 (Inner) " + Template.ToolstampField, info.CommonDiscInfo.Layer0ToolstampMasteringCode, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.MasteringRingField, info.CommonDiscInfo.Layer0MasteringRing, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.MasteringSIDField, info.CommonDiscInfo.Layer0MasteringSID, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.ToolstampField, info.CommonDiscInfo.Layer0ToolstampMasteringCode, 2); AddIfExists(output, "Data Side " + Template.MouldSIDField, info.CommonDiscInfo.Layer0MouldSID, 2); AddIfExists(output, "Data Side " + Template.AdditionalMouldField, info.CommonDiscInfo.Layer0AdditionalMould, 2); @@ -1030,22 +1037,22 @@ namespace MPF.Data AddIfExists(output, "Label Side " + Template.MouldSIDField, info.CommonDiscInfo.Layer1MouldSID, 2); AddIfExists(output, "Label Side " + Template.AdditionalMouldField, info.CommonDiscInfo.Layer1AdditionalMould, 2); - AddIfExists(output, "Layer 2 (Outer) " + Template.MasteringRingField, info.CommonDiscInfo.Layer2MasteringRing, 2); - AddIfExists(output, "Layer 2 (Outer) " + Template.MasteringSIDField, info.CommonDiscInfo.Layer2MasteringSID, 2); - AddIfExists(output, "Layer 2 (Outer) " + Template.ToolstampField, info.CommonDiscInfo.Layer2ToolstampMasteringCode, 2); + AddIfExists(output, (reverseOrder ? "Layer 2 (Inner) " : "Layer 2 (Outer) ") + Template.MasteringRingField, info.CommonDiscInfo.Layer2MasteringRing, 2); + AddIfExists(output, (reverseOrder ? "Layer 2 (Inner) " : "Layer 2 (Outer) ") + Template.MasteringSIDField, info.CommonDiscInfo.Layer2MasteringSID, 2); + AddIfExists(output, (reverseOrder ? "Layer 2 (Inner) " : "Layer 2 (Outer) ") + Template.ToolstampField, info.CommonDiscInfo.Layer2ToolstampMasteringCode, 2); } // If we have a dual-layer disc else if (info.SizeAndChecksums.Layerbreak != default) { - AddIfExists(output, "Layer 0 (Inner) " + Template.MasteringRingField, info.CommonDiscInfo.Layer0MasteringRing, 2); - AddIfExists(output, "Layer 0 (Inner) " + Template.MasteringSIDField, info.CommonDiscInfo.Layer0MasteringSID, 2); - AddIfExists(output, "Layer 0 (Inner) " + Template.ToolstampField, info.CommonDiscInfo.Layer0ToolstampMasteringCode, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.MasteringRingField, info.CommonDiscInfo.Layer0MasteringRing, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.MasteringSIDField, info.CommonDiscInfo.Layer0MasteringSID, 2); + AddIfExists(output, (reverseOrder ? "Layer 0 (Outer) " : "Layer 0 (Inner) ") + Template.ToolstampField, info.CommonDiscInfo.Layer0ToolstampMasteringCode, 2); AddIfExists(output, "Data Side " + Template.MouldSIDField, info.CommonDiscInfo.Layer0MouldSID, 2); AddIfExists(output, "Data Side " + Template.AdditionalMouldField, info.CommonDiscInfo.Layer0AdditionalMould, 2); - AddIfExists(output, "Layer 1 (Outer) " + Template.MasteringRingField, info.CommonDiscInfo.Layer1MasteringRing, 2); - AddIfExists(output, "Layer 1 (Outer) " + Template.MasteringSIDField, info.CommonDiscInfo.Layer1MasteringSID, 2); - AddIfExists(output, "Layer 1 (Outer) " + Template.ToolstampField, info.CommonDiscInfo.Layer1ToolstampMasteringCode, 2); + AddIfExists(output, (reverseOrder ? "Layer 1 (Inner) " : "Layer 1 (Outer) ") + Template.MasteringRingField, info.CommonDiscInfo.Layer1MasteringRing, 2); + AddIfExists(output, (reverseOrder ? "Layer 1 (Inner) " : "Layer 1 (Outer) ") + Template.MasteringSIDField, info.CommonDiscInfo.Layer1MasteringSID, 2); + AddIfExists(output, (reverseOrder ? "Layer 1 (Inner) " : "Layer 1 (Outer) ") + Template.ToolstampField, info.CommonDiscInfo.Layer1ToolstampMasteringCode, 2); AddIfExists(output, "Label Side " + Template.MouldSIDField, info.CommonDiscInfo.Layer1MouldSID, 2); AddIfExists(output, "Label Side " + Template.AdditionalMouldField, info.CommonDiscInfo.Layer1AdditionalMould, 2); } diff --git a/MPF/Windows/DiscInformationWindow.xaml.cs b/MPF/Windows/DiscInformationWindow.xaml.cs index ac443e3e..86c64fd3 100644 --- a/MPF/Windows/DiscInformationWindow.xaml.cs +++ b/MPF/Windows/DiscInformationWindow.xaml.cs @@ -55,6 +55,13 @@ namespace MPF.Windows /// private void ManipulateFields() { + // Sony-printed discs have layers in the opposite order + var system = SubmissionInfo?.CommonDiscInfo?.System; + bool reverseOrder = (system == KnownSystem.SonyPlayStation2 + || system == KnownSystem.SonyPlayStation3 + || system == KnownSystem.SonyPlayStation4 + || system == KnownSystem.SonyPlayStation5); + // Different media types mean different fields available switch (SubmissionInfo?.CommonDiscInfo?.Media) { @@ -87,7 +94,7 @@ namespace MPF.Windows L2Info.Visibility = Visibility.Visible; L3Info.Visibility = Visibility.Visible; - L0Info.Header = "Layer 0 (Inner)"; + L0Info.Header = reverseOrder ? "Layer 0 (Outer)" : "Layer 0 (Inner)"; L0MasteringRing.Label = "Mastering Ring"; L0MasteringSID.Label = "Mastering SID"; L0Toolstamp.Label = "Toolstamp/Mastering Code"; @@ -106,7 +113,7 @@ namespace MPF.Windows L2MasteringSID.Label = "Mastering SID"; L2Toolstamp.Label = "Toolstamp/Mastering Code"; - L3Info.Header = "Layer 3 (Outer)"; + L3Info.Header = reverseOrder ? "Layer 3 (Inner)" : "Layer 3 (Outer)"; L3MasteringRing.Label = "Mastering Ring"; L3MasteringSID.Label = "Mastering SID"; L3Toolstamp.Label = "Toolstamp/Mastering Code"; @@ -117,7 +124,7 @@ namespace MPF.Windows { L2Info.Visibility = Visibility.Visible; - L0Info.Header = "Layer 0 (Inner)"; + L0Info.Header = reverseOrder ? "Layer 0 (Outer)" : "Layer 0 (Inner)"; L0MasteringRing.Label = "Mastering Ring"; L0MasteringSID.Label = "Mastering SID"; L0Toolstamp.Label = "Toolstamp/Mastering Code"; @@ -131,7 +138,7 @@ namespace MPF.Windows L1MouldSID.Label = "Label Side Mould SID"; L1AdditionalMould.Label = "Label Side Additional Mould"; - L2Info.Header = "Layer 2 (Outer)"; + L2Info.Header = reverseOrder ? "Layer 2 (Inner)" : "Layer 2 (Outer)"; L2MasteringRing.Label = "Mastering Ring"; L2MasteringSID.Label = "Mastering SID"; L2Toolstamp.Label = "Toolstamp/Mastering Code"; @@ -140,14 +147,14 @@ namespace MPF.Windows // Double-layer discs else if (SubmissionInfo?.SizeAndChecksums?.Layerbreak != default(long)) { - L0Info.Header = "Layer 0 (Inner)"; + L0Info.Header = reverseOrder ? "Layer 0 (Outer)" : "Layer 0 (Inner)"; L0MasteringRing.Label = "Mastering Ring"; L0MasteringSID.Label = "Mastering SID"; L0Toolstamp.Label = "Toolstamp/Mastering Code"; L0MouldSID.Label = "Data Side Mould SID"; L0AdditionalMould.Label = "Data Side Additional Mould"; - L1Info.Header = "Layer 1 (Outer)"; + L1Info.Header = reverseOrder ? "Layer 1 (Inner)" : "Layer 1 (Outer)"; L1MasteringRing.Label = "Mastering Ring"; L1MasteringSID.Label = "Mastering SID"; L1Toolstamp.Label = "Toolstamp/Mastering Code"; @@ -185,7 +192,7 @@ namespace MPF.Windows } // Different systems mean different fields available - switch (SubmissionInfo?.CommonDiscInfo?.System) + switch (system) { case KnownSystem.SonyPlayStation2: LanguageSelectionGrid.Visibility = Visibility.Visible;