diff --git a/.idea/.idea.DiscImageChef/.idea/contentModel.xml b/.idea/.idea.DiscImageChef/.idea/contentModel.xml
index 1787ded17..316dd605a 100644
--- a/.idea/.idea.DiscImageChef/.idea/contentModel.xml
+++ b/.idea/.idea.DiscImageChef/.idea/contentModel.xml
@@ -1626,6 +1626,8 @@
+
+
diff --git a/DiscImageChef.Gui/Panels/pnlDeviceInfo.xeto.cs b/DiscImageChef.Gui/Panels/pnlDeviceInfo.xeto.cs
index deb987292..3badc9984 100644
--- a/DiscImageChef.Gui/Panels/pnlDeviceInfo.xeto.cs
+++ b/DiscImageChef.Gui/Panels/pnlDeviceInfo.xeto.cs
@@ -32,15 +32,12 @@
using System;
using System.IO;
-using DiscImageChef.Console;
-using DiscImageChef.Decoders.PCMCIA;
using DiscImageChef.Decoders.SCSI.SSC;
using DiscImageChef.Devices;
using DiscImageChef.Gui.Tabs;
using Eto.Forms;
using Eto.Serialization.Xaml;
using DeviceInfo = DiscImageChef.Core.Devices.Info.DeviceInfo;
-using Tuple = DiscImageChef.Decoders.PCMCIA.Tuple;
namespace DiscImageChef.Gui.Panels
{
@@ -231,7 +228,7 @@ namespace DiscImageChef.Gui.Panels
}
}
- if(devInfo.ScsiInquiry.Value.KreonPresent)
+ if(devInfo.ScsiInquiry?.KreonPresent == true)
{
tabKreon.Visible = true;
chkKreonChallengeResponse.Checked = devInfo.KreonFeatures.HasFlag(KreonFeatures.ChallengeResponse);
@@ -301,70 +298,11 @@ namespace DiscImageChef.Gui.Panels
}
}
- switch(devInfo.Type)
- {
- case DeviceType.MMC:
- {
- tabSecureDigital.Text = "MultiMediaCard";
- if(devInfo.CID != null)
- {
- tabCid.Visible = true;
- txtCid.Text = Decoders.MMC.Decoders.PrettifyCID(devInfo.CID);
- }
+ tabSdMmcInfo tabSdMmcInfo = new tabSdMmcInfo();
+ tabSdMmcInfo.LoadData(devInfo.Type, devInfo.CID, devInfo.CSD, devInfo.OCR, devInfo.ExtendedCSD,
+ devInfo.SCR);
- if(devInfo.CSD != null)
- {
- tabCsd.Visible = true;
- txtCid.Text = Decoders.MMC.Decoders.PrettifyCSD(devInfo.CSD);
- }
-
- if(devInfo.OCR != null)
- {
- tabOcr.Visible = true;
- txtCid.Text = Decoders.MMC.Decoders.PrettifyOCR(devInfo.OCR);
- }
-
- if(devInfo.ExtendedCSD != null)
- {
- tabExtendedCsd.Visible = true;
- txtCid.Text = Decoders.MMC.Decoders.PrettifyExtendedCSD(devInfo.ExtendedCSD);
- }
- }
- break;
- case DeviceType.SecureDigital:
- {
- tabSecureDigital.Text = "SecureDigital";
- if(devInfo.CID != null)
- {
- tabCid.Visible = true;
-
- txtCid.Text = Decoders.SecureDigital.Decoders.PrettifyCID(devInfo.CID);
- }
-
- if(devInfo.CSD != null)
- {
- tabCsd.Visible = true;
-
- txtCid.Text = Decoders.SecureDigital.Decoders.PrettifyCSD(devInfo.CSD);
- }
-
- if(devInfo.OCR != null)
- {
- tabOcr.Visible = true;
- txtCid.Text = Decoders.SecureDigital.Decoders.PrettifyOCR(devInfo.OCR);
- }
-
- if(devInfo.SCR != null)
- {
- tabScr.Visible = true;
- txtCid.Text = Decoders.SecureDigital.Decoders.PrettifySCR(devInfo.SCR);
- }
- }
- break;
- }
-
- tabSecureDigital.Visible = tabCid.Visible || tabCsd.Visible || tabOcr.Visible || tabExtendedCsd.Visible ||
- tabScr.Visible;
+ tabInfos.Pages.Add(tabSdMmcInfo);
}
protected void OnBtnSaveUsbDescriptors(object sender, EventArgs e)
@@ -381,160 +319,124 @@ namespace DiscImageChef.Gui.Panels
saveFs.Close();
}
- protected void OnTreePcmciaSelectedItemChanged(object sender, EventArgs e)
- {
- if(!(treePcmcia.SelectedItem is TreeGridItem item)) return;
-
- txtPcmciaCis.Text = item.Values[1] as string;
- }
-
- protected void OnBtnSavePcmciaCis(object sender, EventArgs e)
- {
- 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(devInfo.Cis, 0, devInfo.Cis.Length);
-
- saveFs.Close();
- }
-
#region XAML controls
#pragma warning disable 169
#pragma warning disable 649
- Label lblDeviceInfo;
- TabControl tabInfos;
- TabPage tabGeneral;
- Label lblType;
- TextBox txtType;
- Label lblManufacturer;
- TextBox txtManufacturer;
- Label lblModel;
- TextBox txtModel;
- Label lblRevision;
- TextBox txtRevision;
- Label lblSerial;
- TextBox txtSerial;
- Label lblScsiType;
- TextBox txtScsiType;
- CheckBox chkRemovable;
- CheckBox chkUsb;
- TabPage tabKreon;
- CheckBox chkKreonChallengeResponse;
- CheckBox chkKreonDecryptSs;
- CheckBox chkKreonXtremeUnlock;
- CheckBox chkKreonWxripperUnlock;
- CheckBox chkKreonChallengeResponse360;
- CheckBox chkKreonDecryptSs360;
- CheckBox chkKreonXtremeUnlock360;
- CheckBox chkKreonWxripperUnlock360;
- CheckBox chkKreonLock;
- CheckBox chkKreonErrorSkipping;
- TabPage tabPlextor;
- StackLayout stkPlextorEeprom;
- Label lblPlextorDiscs;
- TextBox txtPlextorDiscs;
- Label lblPlextorCdReadTime;
- TextBox txtPlextorCdReadTime;
- Label lblPlextorCdWriteTime;
- TextBox txtPlextorCdWriteTime;
- StackLayout stkPlextorDvdTimes;
- Label lblPlextorDvdReadTime;
- TextBox txtPlextorDvdReadTime;
- Label lblPlextorDvdWriteTime;
- TextBox txtPlextorDvdWriteTime;
- CheckBox chkPlextorPoweRec;
- CheckBox chkPlextorPoweRecEnabled;
- StackLayout stkPlextorPoweRecEnabled;
- StackLayout stkPlextorPoweRecRecommended;
- Label lblPlextorPoweRecRecommended;
- TextBox txtPlextorPoweRecRecommended;
- StackLayout stkPlextorPoweRecSelected;
- Label lblPlextorPoweRecSelected;
- TextBox txtPlextorPoweRecSelected;
- StackLayout stkPlextorPoweRecMax;
- Label lblPlextorPoweRecMax;
- TextBox txtPlextorPoweRecMax;
- StackLayout stkPlextorPoweRecLast;
- Label lblPlextorPoweRecLast;
- TextBox txtPlextorPoweRecLast;
- CheckBox chkPlextorSilentMode;
- CheckBox chkPlextorSilentModeEnabled;
- StackLayout stkPlextorSilentModeEnabled;
- Label lblPlextorSilentModeAccessTime;
- Label lblPlextorSilentModeCdReadSpeedLimit;
- TextBox txtPlextorSilentModeCdReadSpeedLimit;
- StackLayout stkPlextorSilentModeDvdReadSpeedLimit;
- Label lblPlextorSilentModeDvdReadSpeedLimit;
- TextBox txtPlextorSilentModeDvdReadSpeedLimit;
- Label lblPlextorSilentModeCdWriteSpeedLimit;
- TextBox txtPlextorSilentModeCdWriteSpeedLimit;
- CheckBox chkPlextorGigaRec;
- CheckBox chkPlextorSecuRec;
- CheckBox chkPlextorSpeedRead;
- CheckBox chkPlextorSpeedEnabled;
- CheckBox chkPlextorHiding;
- StackLayout stkPlextorHiding;
- CheckBox chkPlextorHidesRecordables;
- CheckBox chkPlextorHidesSessions;
- CheckBox chkPlextorVariRec;
- StackLayout stkPlextorDvd;
- CheckBox chkPlextorVariRecDvd;
- CheckBox chkPlextorBitSetting;
- CheckBox chkPlextorBitSettingDl;
- CheckBox chkPlextorDvdPlusWriteTest;
- TabPage tabSsc;
- Label lblMinBlockSize;
- Label lblMaxBlockSize;
- Label lblBlockSizeGranularity;
- StackLayout stkDensities;
- Label lblDensities;
- TextArea txtDensities;
- StackLayout stkMediaTypes;
- Label lblMediumTypes;
- TextArea txtMediumTypes;
- TextArea txtMediumDensity;
- TabPage tabSecureDigital;
- TabPage tabCid;
- TextArea txtCid;
- TabPage tabCsd;
- TextArea txtCsd;
- TabPage tabOcr;
- TextArea txtOcr;
- TabPage tabExtendedCsd;
- TextArea txtExtendedCsd;
- TabPage tabScr;
- TextArea txtScr;
- TabPage tabUsb;
- Label lblUsbVendorId;
- TextBox txtUsbVendorId;
- Label lblUsbProductId;
- TextBox txtUsbProductId;
- Label lblUsbManufacturer;
- TextBox txtUsbManufacturer;
- Label lblUsbProduct;
- TextBox txtUsbProduct;
- Label lblUsbSerial;
- TextBox txtUsbSerial;
- Button btnSaveUsbDescriptors;
- TabPage tabFirewire;
- Label lblFirewireVendorId;
- TextBox txtFirewireVendorId;
- Label lblFirewireModelId;
- TextBox txtFirewireModelId;
- Label lblFirewireManufacturer;
- TextBox txtFirewireManufacturer;
- Label lblFirewireModel;
- TextBox txtFirewireModel;
- Label lblFirewireGuid;
- TextBox txtFirewireGuid;
- TabPage tabPcmcia;
- TreeGridView treePcmcia;
- TextArea txtPcmciaCis;
- Button btnSavePcmciaCis;
+ Label lblDeviceInfo;
+ TabControl tabInfos;
+ TabPage tabGeneral;
+ Label lblType;
+ TextBox txtType;
+ Label lblManufacturer;
+ TextBox txtManufacturer;
+ Label lblModel;
+ TextBox txtModel;
+ Label lblRevision;
+ TextBox txtRevision;
+ Label lblSerial;
+ TextBox txtSerial;
+ Label lblScsiType;
+ TextBox txtScsiType;
+ CheckBox chkRemovable;
+ CheckBox chkUsb;
+ TabPage tabKreon;
+ CheckBox chkKreonChallengeResponse;
+ CheckBox chkKreonDecryptSs;
+ CheckBox chkKreonXtremeUnlock;
+ CheckBox chkKreonWxripperUnlock;
+ CheckBox chkKreonChallengeResponse360;
+ CheckBox chkKreonDecryptSs360;
+ CheckBox chkKreonXtremeUnlock360;
+ CheckBox chkKreonWxripperUnlock360;
+ CheckBox chkKreonLock;
+ CheckBox chkKreonErrorSkipping;
+ TabPage tabPlextor;
+ StackLayout stkPlextorEeprom;
+ Label lblPlextorDiscs;
+ TextBox txtPlextorDiscs;
+ Label lblPlextorCdReadTime;
+ TextBox txtPlextorCdReadTime;
+ Label lblPlextorCdWriteTime;
+ TextBox txtPlextorCdWriteTime;
+ StackLayout stkPlextorDvdTimes;
+ Label lblPlextorDvdReadTime;
+ TextBox txtPlextorDvdReadTime;
+ Label lblPlextorDvdWriteTime;
+ TextBox txtPlextorDvdWriteTime;
+ CheckBox chkPlextorPoweRec;
+ CheckBox chkPlextorPoweRecEnabled;
+ StackLayout stkPlextorPoweRecEnabled;
+ StackLayout stkPlextorPoweRecRecommended;
+ Label lblPlextorPoweRecRecommended;
+ TextBox txtPlextorPoweRecRecommended;
+ StackLayout stkPlextorPoweRecSelected;
+ Label lblPlextorPoweRecSelected;
+ TextBox txtPlextorPoweRecSelected;
+ StackLayout stkPlextorPoweRecMax;
+ Label lblPlextorPoweRecMax;
+ TextBox txtPlextorPoweRecMax;
+ StackLayout stkPlextorPoweRecLast;
+ Label lblPlextorPoweRecLast;
+ TextBox txtPlextorPoweRecLast;
+ CheckBox chkPlextorSilentMode;
+ CheckBox chkPlextorSilentModeEnabled;
+ StackLayout stkPlextorSilentModeEnabled;
+ Label lblPlextorSilentModeAccessTime;
+ Label lblPlextorSilentModeCdReadSpeedLimit;
+ TextBox txtPlextorSilentModeCdReadSpeedLimit;
+ StackLayout stkPlextorSilentModeDvdReadSpeedLimit;
+ Label lblPlextorSilentModeDvdReadSpeedLimit;
+ TextBox txtPlextorSilentModeDvdReadSpeedLimit;
+ Label lblPlextorSilentModeCdWriteSpeedLimit;
+ TextBox txtPlextorSilentModeCdWriteSpeedLimit;
+ CheckBox chkPlextorGigaRec;
+ CheckBox chkPlextorSecuRec;
+ CheckBox chkPlextorSpeedRead;
+ CheckBox chkPlextorSpeedEnabled;
+ CheckBox chkPlextorHiding;
+ StackLayout stkPlextorHiding;
+ CheckBox chkPlextorHidesRecordables;
+ CheckBox chkPlextorHidesSessions;
+ CheckBox chkPlextorVariRec;
+ StackLayout stkPlextorDvd;
+ CheckBox chkPlextorVariRecDvd;
+ CheckBox chkPlextorBitSetting;
+ CheckBox chkPlextorBitSettingDl;
+ CheckBox chkPlextorDvdPlusWriteTest;
+ TabPage tabSsc;
+ Label lblMinBlockSize;
+ Label lblMaxBlockSize;
+ Label lblBlockSizeGranularity;
+ StackLayout stkDensities;
+ Label lblDensities;
+ TextArea txtDensities;
+ StackLayout stkMediaTypes;
+ Label lblMediumTypes;
+ TextArea txtMediumTypes;
+ TextArea txtMediumDensity;
+ TabPage tabUsb;
+ Label lblUsbVendorId;
+ TextBox txtUsbVendorId;
+ Label lblUsbProductId;
+ TextBox txtUsbProductId;
+ Label lblUsbManufacturer;
+ TextBox txtUsbManufacturer;
+ Label lblUsbProduct;
+ TextBox txtUsbProduct;
+ Label lblUsbSerial;
+ TextBox txtUsbSerial;
+ Button btnSaveUsbDescriptors;
+ TabPage tabFirewire;
+ Label lblFirewireVendorId;
+ TextBox txtFirewireVendorId;
+ Label lblFirewireModelId;
+ TextBox txtFirewireModelId;
+ Label lblFirewireManufacturer;
+ TextBox txtFirewireManufacturer;
+ Label lblFirewireModel;
+ TextBox txtFirewireModel;
+ Label lblFirewireGuid;
+ TextBox txtFirewireGuid;
#pragma warning restore 169
#pragma warning restore 649
#endregion
diff --git a/DiscImageChef.Gui/Panels/pnlImageInfo.xeto.cs b/DiscImageChef.Gui/Panels/pnlImageInfo.xeto.cs
index 34bc1d825..4a08b152a 100644
--- a/DiscImageChef.Gui/Panels/pnlImageInfo.xeto.cs
+++ b/DiscImageChef.Gui/Panels/pnlImageInfo.xeto.cs
@@ -39,6 +39,7 @@ using DiscImageChef.Decoders.CD;
using DiscImageChef.Decoders.DVD;
using DiscImageChef.Decoders.SCSI;
using DiscImageChef.Decoders.Xbox;
+using DiscImageChef.Devices;
using DiscImageChef.Gui.Tabs;
using Eto.Forms;
using Eto.Serialization.Xaml;
@@ -573,6 +574,73 @@ namespace DiscImageChef.Gui.Panels
tabPcmciaInfo tabPcmciaInfo = new tabPcmciaInfo();
tabPcmciaInfo.LoadData(pcmciaCis);
tabInfos.Pages.Add(tabPcmciaInfo);
+
+ DeviceType deviceType = DeviceType.Unknown;
+ byte[] cid = null;
+ byte[] csd = null;
+ byte[] ocr = null;
+ byte[] extendedCsd = null;
+ byte[] scr = null;
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.SD_CID))
+ {
+ cid = imageFormat.ReadDiskTag(MediaTagType.SD_CID);
+ deviceType = DeviceType.SecureDigital;
+ }
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.SD_CSD))
+ {
+ csd = imageFormat.ReadDiskTag(MediaTagType.SD_CSD);
+ deviceType = DeviceType.SecureDigital;
+ }
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.SD_OCR))
+ {
+ ocr = imageFormat.ReadDiskTag(MediaTagType.SD_OCR);
+ deviceType = DeviceType.SecureDigital;
+ }
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.SD_SCR))
+ {
+ scr = imageFormat.ReadDiskTag(MediaTagType.SD_SCR);
+ deviceType = DeviceType.SecureDigital;
+ }
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.MMC_CID))
+ {
+ cid = imageFormat.ReadDiskTag(MediaTagType.MMC_CID);
+ deviceType = DeviceType.MMC;
+ }
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.MMC_CSD))
+ {
+ csd = imageFormat.ReadDiskTag(MediaTagType.MMC_CSD);
+ deviceType = DeviceType.MMC;
+ }
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.MMC_OCR))
+ {
+ ocr = imageFormat.ReadDiskTag(MediaTagType.MMC_OCR);
+ deviceType = DeviceType.MMC;
+ }
+
+ if(imageFormat.Info.ReadableMediaTags != null &&
+ imageFormat.Info.ReadableMediaTags.Contains(MediaTagType.MMC_ExtendedCSD))
+ {
+ extendedCsd = imageFormat.ReadDiskTag(MediaTagType.MMC_ExtendedCSD);
+ deviceType = DeviceType.MMC;
+ }
+
+ tabSdMmcInfo tabSdMmcInfo = new tabSdMmcInfo();
+ tabSdMmcInfo.LoadData(deviceType, cid, csd, ocr, extendedCsd, scr);
+ tabInfos.Pages.Add(tabSdMmcInfo);
}
#region XAML controls
diff --git a/DiscImageChef.Gui/Tabs/tabBlurayInfo.xeto.cs b/DiscImageChef.Gui/Tabs/tabBlurayInfo.xeto.cs
index c855f3140..d875a70ed 100644
--- a/DiscImageChef.Gui/Tabs/tabBlurayInfo.xeto.cs
+++ b/DiscImageChef.Gui/Tabs/tabBlurayInfo.xeto.cs
@@ -36,7 +36,7 @@ using DiscImageChef.Decoders.Bluray;
using Eto.Forms;
using Eto.Serialization.Xaml;
-namespace DiscImageChef.Gui.Panels
+namespace DiscImageChef.Gui.Tabs
{
public class tabBlurayInfo : TabPage
{
diff --git a/DiscImageChef.Gui/Tabs/tabPcmciaInfo.xeto.cs b/DiscImageChef.Gui/Tabs/tabPcmciaInfo.xeto.cs
index 287e1a0da..c577ebb7d 100644
--- a/DiscImageChef.Gui/Tabs/tabPcmciaInfo.xeto.cs
+++ b/DiscImageChef.Gui/Tabs/tabPcmciaInfo.xeto.cs
@@ -38,7 +38,7 @@ using Eto.Forms;
using Eto.Serialization.Xaml;
using Tuple = DiscImageChef.Decoders.PCMCIA.Tuple;
-namespace DiscImageChef.Gui.Panels
+namespace DiscImageChef.Gui.Tabs
{
public class tabPcmciaInfo : TabPage
{
diff --git a/DiscImageChef.Gui/Tabs/tabSdMmcInfo.xeto b/DiscImageChef.Gui/Tabs/tabSdMmcInfo.xeto
new file mode 100644
index 000000000..2afd235c3
--- /dev/null
+++ b/DiscImageChef.Gui/Tabs/tabSdMmcInfo.xeto
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DiscImageChef.Gui/Tabs/tabSdMmcInfo.xeto.cs b/DiscImageChef.Gui/Tabs/tabSdMmcInfo.xeto.cs
new file mode 100644
index 000000000..c857a7737
--- /dev/null
+++ b/DiscImageChef.Gui/Tabs/tabSdMmcInfo.xeto.cs
@@ -0,0 +1,131 @@
+// /***************************************************************************
+// The Disc Image Chef
+// ----------------------------------------------------------------------------
+//
+// Filename : pnlDeviceInfo.xeto.cs
+// Author(s) : Natalia Portillo
+//
+// Component : Device information.
+//
+// --[ Description ] ----------------------------------------------------------
+//
+// Implements the device 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 DiscImageChef.Devices;
+using Eto.Forms;
+using Eto.Serialization.Xaml;
+
+namespace DiscImageChef.Gui.Tabs
+{
+ public class tabSdMmcInfo : TabPage
+ {
+ public tabSdMmcInfo()
+ {
+ XamlReader.Load(this);
+ }
+
+ internal void LoadData(DeviceType deviceType, byte[] cid, byte[] csd, byte[] ocr, byte[] extendedCsd,
+ byte[] scr)
+ {
+ switch(deviceType)
+ {
+ case DeviceType.MMC:
+ {
+ Text = "MultiMediaCard";
+ if(cid != null)
+ {
+ tabCid.Visible = true;
+ txtCid.Text = Decoders.MMC.Decoders.PrettifyCID(cid);
+ }
+
+ if(csd != null)
+ {
+ tabCsd.Visible = true;
+ txtCid.Text = Decoders.MMC.Decoders.PrettifyCSD(csd);
+ }
+
+ if(ocr != null)
+ {
+ tabOcr.Visible = true;
+ txtCid.Text = Decoders.MMC.Decoders.PrettifyOCR(ocr);
+ }
+
+ if(extendedCsd != null)
+ {
+ tabExtendedCsd.Visible = true;
+ txtCid.Text = Decoders.MMC.Decoders.PrettifyExtendedCSD(extendedCsd);
+ }
+ }
+ break;
+ case DeviceType.SecureDigital:
+ {
+ Text = "SecureDigital";
+ if(cid != null)
+ {
+ tabCid.Visible = true;
+
+ txtCid.Text = Decoders.SecureDigital.Decoders.PrettifyCID(cid);
+ }
+
+ if(csd != null)
+ {
+ tabCsd.Visible = true;
+
+ txtCid.Text = Decoders.SecureDigital.Decoders.PrettifyCSD(csd);
+ }
+
+ if(ocr != null)
+ {
+ tabOcr.Visible = true;
+ txtCid.Text = Decoders.SecureDigital.Decoders.PrettifyOCR(ocr);
+ }
+
+ if(scr != null)
+ {
+ tabScr.Visible = true;
+ txtCid.Text = Decoders.SecureDigital.Decoders.PrettifySCR(scr);
+ }
+ }
+ break;
+ }
+
+ Visible = tabCid.Visible || tabCsd.Visible || tabOcr.Visible || tabExtendedCsd.Visible || tabScr.Visible;
+ }
+
+ #region XAML controls
+ #pragma warning disable 169
+ #pragma warning disable 649
+ TabPage tabCid;
+ TextArea txtCid;
+ TabPage tabCsd;
+ TextArea txtCsd;
+ TabPage tabOcr;
+ TextArea txtOcr;
+ TabPage tabExtendedCsd;
+ TextArea txtExtendedCsd;
+ TabPage tabScr;
+ TextArea txtScr;
+ #pragma warning restore 169
+ #pragma warning restore 649
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/DiscImageChef.Gui/Tabs/tabXboxInfo.xeto.cs b/DiscImageChef.Gui/Tabs/tabXboxInfo.xeto.cs
index 1cfc3fd40..3614226a4 100644
--- a/DiscImageChef.Gui/Tabs/tabXboxInfo.xeto.cs
+++ b/DiscImageChef.Gui/Tabs/tabXboxInfo.xeto.cs
@@ -37,7 +37,7 @@ using DiscImageChef.Decoders.Xbox;
using Eto.Forms;
using Eto.Serialization.Xaml;
-namespace DiscImageChef.Gui.Panels
+namespace DiscImageChef.Gui.Tabs
{
public class tabXboxInfo : TabPage
{