diff --git a/.idea/.idea.DiscImageChef/.idea/contentModel.xml b/.idea/.idea.DiscImageChef/.idea/contentModel.xml
index a35f5603b..1c40f6c9f 100644
--- a/.idea/.idea.DiscImageChef/.idea/contentModel.xml
+++ b/.idea/.idea.DiscImageChef/.idea/contentModel.xml
@@ -1618,6 +1618,8 @@
+
+
diff --git a/DiscImageChef.Gui/Panels/pnlImageInfo.xeto.cs b/DiscImageChef.Gui/Panels/pnlImageInfo.xeto.cs
index 771adb940..2c70f67e2 100644
--- a/DiscImageChef.Gui/Panels/pnlImageInfo.xeto.cs
+++ b/DiscImageChef.Gui/Panels/pnlImageInfo.xeto.cs
@@ -423,6 +423,85 @@ namespace DiscImageChef.Gui.Panels
tabDvdInfo.LoadData(imageFormat.Info.MediaType, dvdPfi, dvdDmi, dvdCmi, hddvdCopyrightInformation, dvdBca,
null, decodedPfi);
tabInfos.Pages.Add(tabDvdInfo);
+
+ byte[] dvdRamDds = null;
+ byte[] dvdRamCartridgeStatus = null;
+ byte[] dvdRamSpareArea = null;
+ byte[] lastBorderOutRmd = null;
+ byte[] dvdPreRecordedInfo = null;
+ byte[] dvdrMediaIdentifier = null;
+ byte[] dvdrPhysicalInformation = null;
+ byte[] hddvdrMediumStatus = null;
+ byte[] dvdrLayerCapacity = null;
+ byte[] dvdrDlMiddleZoneStart = null;
+ byte[] dvdrDlJumpIntervalSize = null;
+ byte[] dvdrDlManualLayerJumpStartLba = null;
+ byte[] dvdPlusAdip = null;
+ byte[] dvdPlusDcb = null;
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDRAM_DDS))
+ dvdRamDds = imageFormat.ReadDiskTag(MediaTagType.DVDRAM_DDS);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDRAM_MediumStatus))
+ dvdRamCartridgeStatus = imageFormat.ReadDiskTag(MediaTagType.DVDRAM_MediumStatus);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDRAM_SpareArea))
+ dvdRamSpareArea = imageFormat.ReadDiskTag(MediaTagType.DVDRAM_SpareArea);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDR_RMD))
+ lastBorderOutRmd = imageFormat.ReadDiskTag(MediaTagType.DVDR_RMD);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDR_PreRecordedInfo))
+ dvdPreRecordedInfo = imageFormat.ReadDiskTag(MediaTagType.DVDR_PreRecordedInfo);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDR_MediaIdentifier))
+ dvdrMediaIdentifier = imageFormat.ReadDiskTag(MediaTagType.DVDR_MediaIdentifier);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDR_PFI))
+ dvdrPhysicalInformation = imageFormat.ReadDiskTag(MediaTagType.DVDR_PFI);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.HDDVD_MediumStatus))
+ hddvdrMediumStatus = imageFormat.ReadDiskTag(MediaTagType.HDDVD_MediumStatus);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDDL_LayerCapacity))
+ dvdrLayerCapacity = imageFormat.ReadDiskTag(MediaTagType.DVDDL_LayerCapacity);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDDL_MiddleZoneAddress))
+ dvdrDlMiddleZoneStart = imageFormat.ReadDiskTag(MediaTagType.DVDDL_MiddleZoneAddress);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDDL_JumpIntervalSize))
+ dvdrDlJumpIntervalSize = imageFormat.ReadDiskTag(MediaTagType.DVDDL_JumpIntervalSize);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVDDL_ManualLayerJumpLBA))
+ dvdrDlManualLayerJumpStartLba = imageFormat.ReadDiskTag(MediaTagType.DVDDL_ManualLayerJumpLBA);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DVD_ADIP))
+ dvdPlusAdip = imageFormat.ReadDiskTag(MediaTagType.DVD_ADIP);
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.DCB))
+ dvdPlusDcb = imageFormat.ReadDiskTag(MediaTagType.DCB);
+
+ tabDvdWritableInfo tabDvdWritableInfo = new tabDvdWritableInfo();
+ tabDvdWritableInfo.LoadData(imageFormat.Info.MediaType, dvdRamDds, dvdRamCartridgeStatus, dvdRamSpareArea,
+ lastBorderOutRmd, dvdPreRecordedInfo, dvdrMediaIdentifier,
+ dvdrPhysicalInformation, hddvdrMediumStatus, null, dvdrLayerCapacity,
+ dvdrDlMiddleZoneStart, dvdrDlJumpIntervalSize, dvdrDlManualLayerJumpStartLba,
+ null, dvdPlusAdip, dvdPlusDcb);
+ tabInfos.Pages.Add(tabDvdWritableInfo);
}
#region XAML controls
diff --git a/DiscImageChef.Gui/Panels/pnlScsiInfo.xeto b/DiscImageChef.Gui/Panels/pnlScsiInfo.xeto
index 843419c09..5b274bf81 100644
--- a/DiscImageChef.Gui/Panels/pnlScsiInfo.xeto
+++ b/DiscImageChef.Gui/Panels/pnlScsiInfo.xeto
@@ -155,58 +155,6 @@
Visible="False"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/DiscImageChef.Gui/Panels/pnlScsiInfo.xeto.cs b/DiscImageChef.Gui/Panels/pnlScsiInfo.xeto.cs
index 3b19f1d29..dd9f77d27 100644
--- a/DiscImageChef.Gui/Panels/pnlScsiInfo.xeto.cs
+++ b/DiscImageChef.Gui/Panels/pnlScsiInfo.xeto.cs
@@ -45,10 +45,6 @@ using DiscImageChef.Gui.Tabs;
using Eto.Drawing;
using Eto.Forms;
using Eto.Serialization.Xaml;
-using Cartridge = DiscImageChef.Decoders.DVD.Cartridge;
-using DDS = DiscImageChef.Decoders.DVD.DDS;
-using DMI = DiscImageChef.Decoders.Xbox.DMI;
-using Spare = DiscImageChef.Decoders.DVD.Spare;
namespace DiscImageChef.Gui.Panels
{
@@ -80,52 +76,6 @@ namespace DiscImageChef.Gui.Panels
}
//}
- switch(this.scsiInfo.MediaType)
- {
- case MediaType.DVDR:
- tabDvdr.Text = "DVD-R";
- break;
- case MediaType.DVDRW:
- tabDvdr.Text = "DVD-RW";
- break;
- case MediaType.DVDPR:
- tabDvdr.Text = "DVD+R";
- break;
- case MediaType.DVDPRW:
- tabDvdr.Text = "DVD+RW";
- break;
- case MediaType.DVDPRWDL:
- tabDvdr.Text = "DVD+RW DL";
- break;
- case MediaType.DVDRDL:
- tabDvdr.Text = "DVD-R DL";
- break;
- case MediaType.DVDPRDL:
- tabDvdr.Text = "DVD+R DL";
- break;
- case MediaType.DVDRAM:
- tabDvdr.Text = "DVD-RAM";
- break;
- case MediaType.DVDRWDL:
- tabDvdr.Text = "DVD-RW DL";
- break;
- case MediaType.HDDVDRAM:
- tabDvdr.Text = "HD DVD-RAM";
- break;
- case MediaType.HDDVDR:
- tabDvdr.Text = "HD DVD-R";
- break;
- case MediaType.HDDVDRW:
- tabDvdr.Text = "HD DVD-RW";
- break;
- case MediaType.HDDVDRDL:
- tabDvdr.Text = "HD DVD-R DL";
- break;
- case MediaType.HDDVDRWDL:
- tabDvdr.Text = "HD DVD-RW DL";
- break;
- }
-
txtType.Text = scsiInfo.MediaType.ToString();
lblMediaSize.Text =
$"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize} bytes/each. (for a total of {scsiInfo.Blocks * scsiInfo.BlockSize} bytes)";
@@ -218,54 +168,16 @@ namespace DiscImageChef.Gui.Panels
tabXbox.Visible = stkXboxInformation.Visible || grpXboxDmi.Visible || grpXboxSs.Visible ||
btnSaveXboxSs.Visible;
- if(this.scsiInfo.DvdRamDds != null)
- {
- grpDvdRamDds.Visible = true;
- btnSaveDvdRamDds.Visible = true;
- txtDvdRamDds.Text = DDS.Prettify(this.scsiInfo.DvdRamDds);
- }
-
- if(this.scsiInfo.DvdRamCartridgeStatus != null)
- {
- grpDvdRamCartridgeStatus.Visible = true;
- btnSaveDvdRamCartridgeStatus.Visible = true;
- txtDvdRamCartridgeStatus.Text = Cartridge.Prettify(this.scsiInfo.DvdRamCartridgeStatus);
- }
-
- if(this.scsiInfo.DvdRamSpareArea != null)
- {
- grpDvdRamSpareAreaInformation.Visible = true;
- btnSaveDvdRamSpareAreaInformation.Visible = true;
- txtDvdRamSpareAreaInformation.Text = Spare.Prettify(this.scsiInfo.DvdRamSpareArea);
- }
-
- btnSaveDvdRamDds.Visible = this.scsiInfo.DvdRamDds != null;
- btnSaveDvdRamCartridgeStatus.Visible = this.scsiInfo.DvdRamCartridgeStatus != null;
- btnSaveDvdRamSpareAreaInformation.Visible = this.scsiInfo.DvdRamSpareArea != null;
- btnSaveLastBorderOutRmd.Visible = this.scsiInfo.LastBorderOutRmd != null;
- btnSaveDvdPreRecordedInfo.Visible = this.scsiInfo.DvdPreRecordedInfo != null;
- btnSaveDvdrMediaIdentifier.Visible = this.scsiInfo.DvdrMediaIdentifier != null;
- btnSaveDvdrPhysicalInformation.Visible = this.scsiInfo.DvdrPhysicalInformation != null;
- btnSaveHddvdrMediumStatus.Visible = this.scsiInfo.HddvdrMediumStatus != null;
- btnSaveHddvdrLastRmd.Visible = this.scsiInfo.HddvdrLastRmd != null;
- btnSaveDvdrLayerCapacity.Visible = this.scsiInfo.DvdrLayerCapacity != null;
- btnSaveDvdrDlMiddleZoneStart.Visible = this.scsiInfo.DvdrDlMiddleZoneStart != null;
- btnSaveDvdrDlJumpIntervalSize.Visible = this.scsiInfo.DvdrDlJumpIntervalSize != null;
- btnSaveDvdrDlManualLayerJumpStartLba.Visible = this.scsiInfo.DvdrDlManualLayerJumpStartLba != null;
- btnSaveDvdrDlRemapAnchorPoint.Visible = this.scsiInfo.DvdrDlRemapAnchorPoint != null;
- btnSaveDvdPlusAdip.Visible = this.scsiInfo.DvdPlusAdip != null;
- btnSaveDvdPlusDcb.Visible = this.scsiInfo.DvdPlusDcb != null;
-
- tabDvdr.Visible = grpDvdRamDds.Visible || grpDvdRamCartridgeStatus.Visible ||
- grpDvdRamSpareAreaInformation.Visible || btnSaveDvdRamDds.Visible ||
- btnSaveDvdRamCartridgeStatus.Visible || btnSaveDvdRamSpareAreaInformation.Visible ||
- btnSaveLastBorderOutRmd.Visible || btnSaveDvdPreRecordedInfo.Visible ||
- btnSaveDvdrMediaIdentifier.Visible || btnSaveDvdrPhysicalInformation.Visible ||
- btnSaveHddvdrMediumStatus.Visible || btnSaveHddvdrLastRmd.Visible ||
- btnSaveDvdrLayerCapacity.Visible || btnSaveDvdrDlMiddleZoneStart.Visible ||
- btnSaveDvdrDlJumpIntervalSize.Visible || btnSaveDvdrDlManualLayerJumpStartLba.Visible ||
- btnSaveDvdrDlRemapAnchorPoint.Visible || btnSaveDvdPlusAdip.Visible ||
- btnSaveDvdPlusDcb.Visible;
+ tabDvdWritableInfo tabDvdWritableInfo = new tabDvdWritableInfo();
+ tabDvdWritableInfo.LoadData(scsiInfo.MediaType, scsiInfo.DvdRamDds, scsiInfo.DvdRamCartridgeStatus,
+ scsiInfo.DvdRamSpareArea, scsiInfo.LastBorderOutRmd,
+ scsiInfo.DvdPreRecordedInfo, scsiInfo.DvdrMediaIdentifier,
+ scsiInfo.DvdrPhysicalInformation, scsiInfo.HddvdrMediumStatus,
+ scsiInfo.HddvdrLastRmd, scsiInfo.DvdrLayerCapacity,
+ scsiInfo.DvdrDlMiddleZoneStart, scsiInfo.DvdrDlJumpIntervalSize,
+ scsiInfo.DvdrDlManualLayerJumpStartLba, scsiInfo.DvdrDlRemapAnchorPoint,
+ scsiInfo.DvdPlusAdip, scsiInfo.DvdPlusDcb);
+ tabInfos.Pages.Add(tabDvdWritableInfo);
if(this.scsiInfo.BlurayDiscInformation != null)
{
@@ -285,23 +197,21 @@ namespace DiscImageChef.Gui.Panels
{
grpBlurayDds.Visible = true;
btnSaveBlurayDds.Visible = true;
- txtBlurayDds.Text = Decoders.Bluray.DDS.Prettify(this.scsiInfo.BlurayDds);
+ txtBlurayDds.Text = DDS.Prettify(this.scsiInfo.BlurayDds);
}
if(this.scsiInfo.BlurayCartridgeStatus != null)
{
grpBlurayCartridgeStatus.Visible = true;
btnSaveBlurayCartridgeStatus.Visible = true;
- txtBlurayCartridgeStatus.Text =
- Decoders.Bluray.Cartridge.Prettify(this.scsiInfo.BlurayCartridgeStatus);
+ txtBlurayCartridgeStatus.Text = Cartridge.Prettify(this.scsiInfo.BlurayCartridgeStatus);
}
if(this.scsiInfo.BluraySpareAreaInformation != null)
{
grpBluraySpareAreaInformation.Visible = true;
btnSaveBluraySpareAreaInformation.Visible = true;
- txtBluraySpareAreaInformation.Text =
- Decoders.Bluray.Spare.Prettify(this.scsiInfo.BluraySpareAreaInformation);
+ txtBluraySpareAreaInformation.Text = Spare.Prettify(this.scsiInfo.BluraySpareAreaInformation);
}
if(this.scsiInfo.BlurayPowResources != null)
@@ -384,156 +294,11 @@ namespace DiscImageChef.Gui.Panels
SaveElement(scsiInfo.MediaTypeSupport);
}
- protected void OnBtnCdInformationClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.CompactDiscInformation);
- }
-
- protected void OnBtnCdTocClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.Toc);
- }
-
- protected void OnBtnCdFullTocClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.RawToc);
- }
-
- protected void OnBtnCdSessionClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.Session);
- }
-
- protected void OnBtnCdTextClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.CdTextLeadIn);
- }
-
- protected void OnBtnCdAtipClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.Atip);
- }
-
- protected void OnBtnCdPmaClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.Pma);
- }
-
- protected void OnBtnSaveDvdPfiClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdPfi);
- }
-
- protected void OnBtnSaveDvdDmiClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdDmi);
- }
-
- protected void OnBtnSaveDvdCmiClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdCmi);
- }
-
- protected void OnBtnSaveHdDvdCmiClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.HddvdCopyrightInformation);
- }
-
- protected void OnBtnSaveDvdBcaClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdBca);
- }
-
- protected void OnBtnSaveDvdAacsClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdAacs);
- }
-
protected void OnBtnSaveXboxSsClick(object sender, EventArgs e)
{
SaveElement(scsiInfo.XboxSecuritySector);
}
- protected void OnBtnSaveDvdRamDdsClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdRamDds);
- }
-
- protected void OnBtnSaveDvdRamCartridgeStatusClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdRamCartridgeStatus);
- }
-
- protected void OnBtnSaveDvdRamSpareAreaInformationClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdRamSpareArea);
- }
-
- protected void OnBtnSaveLastBorderOutRmdClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.LastBorderOutRmd);
- }
-
- protected void OnBtnSaveDvdPreRecordedInfoClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdPreRecordedInfo);
- }
-
- protected void OnBtnSaveDvdrMediaIdentifierClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdrMediaIdentifier);
- }
-
- protected void OnBtnSaveDvdrPhysicalInformationClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdrPhysicalInformation);
- }
-
- protected void OnBtnSaveHddvdrMediumStatusClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.HddvdrMediumStatus);
- }
-
- protected void OnBtnSaveHddvdrLastRmdClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.HddvdrLastRmd);
- }
-
- protected void OnBtnSaveDvdrLayerCapacityClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdrLayerCapacity);
- }
-
- protected void OnBtnSaveDvdrDlMiddleZoneStartClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdrDlMiddleZoneStart);
- }
-
- protected void OnBtnSaveDvdrDlJumpIntervalSizeClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdrDlJumpIntervalSize);
- }
-
- protected void OnBtnSaveDvdrDlManualLayerJumpStartLbaClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdrDlManualLayerJumpStartLba);
- }
-
- protected void OnBtnSaveDvdrDlRemapAnchorPointClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdrDlRemapAnchorPoint);
- }
-
- protected void OnBtnSaveDvdPlusAdipClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdPlusAdip);
- }
-
- protected void OnBtnSaveDvdPlusDcbClick(object sender, EventArgs e)
- {
- SaveElement(scsiInfo.DvdPlusDcb);
- }
-
protected void OnBtnSaveBlurayDiscInformationClick(object sender, EventArgs e)
{
SaveElement(scsiInfo.BlurayDiscInformation);
diff --git a/DiscImageChef.Gui/Tabs/tabDvdWritableInfo.xeto b/DiscImageChef.Gui/Tabs/tabDvdWritableInfo.xeto
new file mode 100644
index 000000000..47e661af0
--- /dev/null
+++ b/DiscImageChef.Gui/Tabs/tabDvdWritableInfo.xeto
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DiscImageChef.Gui/Tabs/tabDvdWritableInfo.xeto.cs b/DiscImageChef.Gui/Tabs/tabDvdWritableInfo.xeto.cs
new file mode 100644
index 000000000..9df003c34
--- /dev/null
+++ b/DiscImageChef.Gui/Tabs/tabDvdWritableInfo.xeto.cs
@@ -0,0 +1,309 @@
+// /***************************************************************************
+// The Disc Image Chef
+// ----------------------------------------------------------------------------
+//
+// Filename : pnlxeto.cs
+// Author(s) : Natalia Portillo
+//
+// Component : SCSI media information panel.
+//
+// --[ Description ] ----------------------------------------------------------
+//
+// Implements the SCSI media information panel.
+//
+// --[ 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 © 2011-2018 Natalia Portillo
+// ****************************************************************************/
+
+using System;
+using System.IO;
+using DiscImageChef.CommonTypes;
+using DiscImageChef.Decoders.DVD;
+using Eto.Forms;
+using Eto.Serialization.Xaml;
+
+namespace DiscImageChef.Gui.Tabs
+{
+ public class tabDvdWritableInfo : TabPage
+ {
+ byte[] dvdLastBorderOutRmd;
+ byte[] dvdPlusAdip;
+ byte[] dvdPlusDcb;
+ byte[] dvdPreRecordedInfo;
+ byte[] dvdRamCartridgeStatus;
+ byte[] dvdRamDds;
+ byte[] dvdRamSpareArea;
+ byte[] dvdrDlJumpIntervalSize;
+ byte[] dvdrDlManualLayerJumpStartLba;
+ byte[] dvdrDlMiddleZoneStart;
+ byte[] dvdrDlRemapAnchorPoint;
+ byte[] dvdrLayerCapacity;
+ byte[] dvdrMediaIdentifier;
+ byte[] dvdrPhysicalInformation;
+ byte[] hddvdrLastRmd;
+ byte[] hddvdrMediumStatus;
+
+ public tabDvdWritableInfo()
+ {
+ XamlReader.Load(this);
+ }
+
+ internal void LoadData(MediaType mediaType, byte[] dds, byte[] cartridgeStatus,
+ byte[] spareArea,
+ byte[] lastBorderOutRmd, byte[] preRecordedInfo, byte[] mediaIdentifier,
+ byte[] physicalInformation, byte[] mediumStatus, byte[] hdLastRmd,
+ byte[] layerCapacity,
+ byte[] middleZoneStart, byte[] jumpIntervalSize, byte[] manualLayerJumpStartLba,
+ byte[] remapAnchorPoint, byte[] adip, byte[] dcb)
+ {
+ dvdRamDds = dds;
+ dvdRamCartridgeStatus = cartridgeStatus;
+ dvdRamSpareArea = spareArea;
+ dvdLastBorderOutRmd = lastBorderOutRmd;
+ dvdPreRecordedInfo = preRecordedInfo;
+ dvdrMediaIdentifier = mediaIdentifier;
+ dvdrPhysicalInformation = physicalInformation;
+ hddvdrMediumStatus = mediumStatus;
+ hddvdrLastRmd = hdLastRmd;
+ dvdrLayerCapacity = layerCapacity;
+ dvdrDlMiddleZoneStart = middleZoneStart;
+ dvdrDlJumpIntervalSize = jumpIntervalSize;
+ dvdrDlManualLayerJumpStartLba = manualLayerJumpStartLba;
+ dvdrDlRemapAnchorPoint = remapAnchorPoint;
+ dvdPlusAdip = adip;
+ dvdPlusDcb = dcb;
+ switch(mediaType)
+ {
+ case MediaType.DVDR:
+ Text = "DVD-R";
+ break;
+ case MediaType.DVDRW:
+ Text = "DVD-RW";
+ break;
+ case MediaType.DVDPR:
+ Text = "DVD+R";
+ break;
+ case MediaType.DVDPRW:
+ Text = "DVD+RW";
+ break;
+ case MediaType.DVDPRWDL:
+ Text = "DVD+RW DL";
+ break;
+ case MediaType.DVDRDL:
+ Text = "DVD-R DL";
+ break;
+ case MediaType.DVDPRDL:
+ Text = "DVD+R DL";
+ break;
+ case MediaType.DVDRAM:
+ Text = "DVD-RAM";
+ break;
+ case MediaType.DVDRWDL:
+ Text = "DVD-RW DL";
+ break;
+ case MediaType.HDDVDRAM:
+ Text = "HD DVD-RAM";
+ break;
+ case MediaType.HDDVDR:
+ Text = "HD DVD-R";
+ break;
+ case MediaType.HDDVDRW:
+ Text = "HD DVD-RW";
+ break;
+ case MediaType.HDDVDRDL:
+ Text = "HD DVD-R DL";
+ break;
+ case MediaType.HDDVDRWDL:
+ Text = "HD DVD-RW DL";
+ break;
+ }
+
+ if(dds != null)
+ {
+ grpDvdRamDds.Visible = true;
+ btnSaveDvdRamDds.Visible = true;
+ txtDvdRamDds.Text = DDS.Prettify(dds);
+ }
+
+ if(cartridgeStatus != null)
+ {
+ grpDvdRamCartridgeStatus.Visible = true;
+ btnSaveDvdRamCartridgeStatus.Visible = true;
+ txtDvdRamCartridgeStatus.Text = Cartridge.Prettify(cartridgeStatus);
+ }
+
+ if(spareArea != null)
+ {
+ grpDvdRamSpareAreaInformation.Visible = true;
+ btnSaveDvdRamSpareAreaInformation.Visible = true;
+ txtDvdRamSpareAreaInformation.Text = Spare.Prettify(spareArea);
+ }
+
+ btnSaveDvdRamDds.Visible = dds != null;
+ btnSaveDvdRamCartridgeStatus.Visible = cartridgeStatus != null;
+ btnSaveDvdRamSpareAreaInformation.Visible = spareArea != null;
+ btnSaveLastBorderOutRmd.Visible = lastBorderOutRmd != null;
+ btnSaveDvdPreRecordedInfo.Visible = preRecordedInfo != null;
+ btnSaveDvdrMediaIdentifier.Visible = mediaIdentifier != null;
+ btnSaveDvdrPhysicalInformation.Visible = physicalInformation != null;
+ btnSaveHddvdrMediumStatus.Visible = mediumStatus != null;
+ btnSaveHddvdrLastRmd.Visible = hdLastRmd != null;
+ btnSaveDvdrLayerCapacity.Visible = layerCapacity != null;
+ btnSaveDvdrDlMiddleZoneStart.Visible = middleZoneStart != null;
+ btnSaveDvdrDlJumpIntervalSize.Visible = jumpIntervalSize != null;
+ btnSaveDvdrDlManualLayerJumpStartLba.Visible = manualLayerJumpStartLba != null;
+ btnSaveDvdrDlRemapAnchorPoint.Visible = remapAnchorPoint != null;
+ btnSaveDvdPlusAdip.Visible = adip != null;
+ btnSaveDvdPlusDcb.Visible = dcb != null;
+
+ Visible = grpDvdRamDds.Visible || grpDvdRamCartridgeStatus.Visible ||
+ grpDvdRamSpareAreaInformation.Visible || btnSaveDvdRamDds.Visible ||
+ btnSaveDvdRamCartridgeStatus.Visible || btnSaveDvdRamSpareAreaInformation.Visible ||
+ btnSaveLastBorderOutRmd.Visible || btnSaveDvdPreRecordedInfo.Visible ||
+ btnSaveDvdrMediaIdentifier.Visible || btnSaveDvdrPhysicalInformation.Visible ||
+ btnSaveHddvdrMediumStatus.Visible || btnSaveHddvdrLastRmd.Visible ||
+ btnSaveDvdrLayerCapacity.Visible || btnSaveDvdrDlMiddleZoneStart.Visible ||
+ btnSaveDvdrDlJumpIntervalSize.Visible || btnSaveDvdrDlManualLayerJumpStartLba.Visible ||
+ btnSaveDvdrDlRemapAnchorPoint.Visible || btnSaveDvdPlusAdip.Visible ||
+ btnSaveDvdPlusDcb.Visible;
+ }
+
+ void SaveElement(byte[] data)
+ {
+ SaveFileDialog dlgSaveBinary = new SaveFileDialog();
+ dlgSaveBinary.Filters.Add(new FileFilter {Extensions = new[] {"*.bin"}, Name = "Binary"});
+ DialogResult result = dlgSaveBinary.ShowDialog(this);
+
+ if(result != DialogResult.Ok) return;
+
+ FileStream saveFs = new FileStream(dlgSaveBinary.FileName, FileMode.Create);
+ saveFs.Write(data, 0, data.Length);
+
+ saveFs.Close();
+ }
+
+ protected void OnBtnSaveDvdRamDdsClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdRamDds);
+ }
+
+ protected void OnBtnSaveDvdRamCartridgeStatusClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdRamCartridgeStatus);
+ }
+
+ protected void OnBtnSaveDvdRamSpareAreaInformationClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdRamSpareArea);
+ }
+
+ protected void OnBtnSaveLastBorderOutRmdClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdLastBorderOutRmd);
+ }
+
+ protected void OnBtnSaveDvdPreRecordedInfoClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdPreRecordedInfo);
+ }
+
+ protected void OnBtnSaveDvdrMediaIdentifierClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdrMediaIdentifier);
+ }
+
+ protected void OnBtnSaveDvdrPhysicalInformationClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdrPhysicalInformation);
+ }
+
+ protected void OnBtnSaveHddvdrMediumStatusClick(object sender, EventArgs e)
+ {
+ SaveElement(hddvdrMediumStatus);
+ }
+
+ protected void OnBtnSaveHddvdrLastRmdClick(object sender, EventArgs e)
+ {
+ SaveElement(hddvdrLastRmd);
+ }
+
+ protected void OnBtnSaveDvdrLayerCapacityClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdrLayerCapacity);
+ }
+
+ protected void OnBtnSaveDvdrDlMiddleZoneStartClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdrDlMiddleZoneStart);
+ }
+
+ protected void OnBtnSaveDvdrDlJumpIntervalSizeClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdrDlJumpIntervalSize);
+ }
+
+ protected void OnBtnSaveDvdrDlManualLayerJumpStartLbaClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdrDlManualLayerJumpStartLba);
+ }
+
+ protected void OnBtnSaveDvdrDlRemapAnchorPointClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdrDlRemapAnchorPoint);
+ }
+
+ protected void OnBtnSaveDvdPlusAdipClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdPlusAdip);
+ }
+
+ protected void OnBtnSaveDvdPlusDcbClick(object sender, EventArgs e)
+ {
+ SaveElement(dvdPlusDcb);
+ }
+
+ #region XAML controls
+ #pragma warning disable 169
+ #pragma warning disable 649
+ GroupBox grpDvdRamDds;
+ TextArea txtDvdRamDds;
+ GroupBox grpDvdRamCartridgeStatus;
+ TextArea txtDvdRamCartridgeStatus;
+ GroupBox grpDvdRamSpareAreaInformation;
+ TextArea txtDvdRamSpareAreaInformation;
+ Button btnSaveDvdRamDds;
+ Button btnSaveDvdRamCartridgeStatus;
+ Button btnSaveDvdRamSpareAreaInformation;
+ Button btnSaveLastBorderOutRmd;
+ Button btnSaveDvdPreRecordedInfo;
+ Button btnSaveDvdrMediaIdentifier;
+ Button btnSaveDvdrPhysicalInformation;
+ Button btnSaveHddvdrMediumStatus;
+ Button btnSaveHddvdrLastRmd;
+ Button btnSaveDvdrLayerCapacity;
+ Button btnSaveDvdrDlMiddleZoneStart;
+ Button btnSaveDvdrDlJumpIntervalSize;
+ Button btnSaveDvdrDlManualLayerJumpStartLba;
+ Button btnSaveDvdrDlRemapAnchorPoint;
+ Button btnSaveDvdPlusAdip;
+ Button btnSaveDvdPlusDcb;
+ #pragma warning restore 169
+ #pragma warning restore 649
+ #endregion
+ }
+}
\ No newline at end of file