initial commit

This commit is contained in:
what 2021-07-26 13:04:16 -07:00
commit 1b60743303
274 changed files with 25866 additions and 0 deletions

294
Explorer/Forms/FormAbout.cs Normal file
View file

@ -0,0 +1,294 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormAbout
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.Properties;
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
internal class FormAbout : Form
{
private static readonly Logger.ILog logger = Logger.CreateLog();
private IContainer components;
private TableLayoutPanel tableLayoutPanel;
private PictureBox logoPictureBox;
private TextBox textBoxDescription;
private TableLayoutPanel tableLayoutPanelButton;
private Button okButton;
private PictureBox pictureBoxPaypal;
private Panel panel1;
private LinkLabel llblog;
public FormAbout()
{
this.InitializeComponent();
this.Text = string.Format("About {0}", (object) this.AssemblyTitle);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine(string.Format("{0}", (object) this.AssemblyProduct));
stringBuilder.AppendLine(string.Format("Version {0} build {1}", (object) this.AssemblyVersion, (object) this.AssemblyBuildSHA1));
stringBuilder.Append(string.Format("Created by {0} ({1})", (object) this.AssemblyCompany, (object) this.AssemblyCopyright));
this.textBoxDescription.Text = stringBuilder.ToString();
this.llblog.Text = GDRomExplorer.Resources.Strings.GoToBlogLinkTitle;
}
public string AssemblyTitle
{
get
{
object[] customAttributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof (AssemblyTitleAttribute), false);
if (customAttributes.Length > 0)
{
AssemblyTitleAttribute assemblyTitleAttribute = (AssemblyTitleAttribute) customAttributes[0];
if (!string.IsNullOrEmpty(assemblyTitleAttribute.Title))
return assemblyTitleAttribute.Title;
}
return Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
}
}
public string AssemblyVersion
{
get
{
Version version = Assembly.GetExecutingAssembly().GetName().Version;
return string.Format("{0}.{1}.{2}", (object) version.Major, (object) version.Minor, (object) version.Build);
}
}
public string AssemblyBuildSHA1
{
get
{
try
{
return typeof (AssemblyGitBuildSHA1).Assembly.GetCustomAttributes(typeof (AssemblyGitBuildSHA1), false).Cast<AssemblyGitBuildSHA1>().First<AssemblyGitBuildSHA1>().GitBuildSHA1;
}
catch (Exception ex)
{
logger.Error(ex);
return "unknown";
}
}
}
public string AssemblyBuildBranch
{
get
{
try
{
return typeof (AssemblyGitBuildBranch).Assembly.GetCustomAttributes(typeof (AssemblyGitBuildBranch), false).Cast<AssemblyGitBuildBranch>().First<AssemblyGitBuildBranch>().GitBuildBranch;
}
catch (Exception ex)
{
logger.Error(ex);
return "unknown";
}
}
}
public string AssemblyDescription
{
get
{
object[] customAttributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof (AssemblyDescriptionAttribute), false);
return customAttributes.Length == 0 ? "" : ((AssemblyDescriptionAttribute) customAttributes[0]).Description;
}
}
public string AssemblyProduct
{
get
{
object[] customAttributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof (AssemblyProductAttribute), false);
return customAttributes.Length == 0 ? "" : ((AssemblyProductAttribute) customAttributes[0]).Product;
}
}
public string AssemblyCopyright
{
get
{
object[] customAttributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof (AssemblyCopyrightAttribute), false);
return customAttributes.Length == 0 ? "" : ((AssemblyCopyrightAttribute) customAttributes[0]).Copyright;
}
}
public string AssemblyCompany
{
get
{
object[] customAttributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof (AssemblyCompanyAttribute), false);
return customAttributes.Length == 0 ? "" : ((AssemblyCompanyAttribute) customAttributes[0]).Company;
}
}
private void paypalDonatePictureBox_Click(object sender, EventArgs e)
{
try
{
Process.Start(Settings.Default.PayPalDonateUrl);
}
catch
{
}
}
private void llblog_LinkClicked(object sender, EventArgs e)
{
try
{
Process.Start(Settings.Default.BlogUrl);
}
catch
{
}
}
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormAbout));
this.tableLayoutPanel = new TableLayoutPanel();
this.logoPictureBox = new PictureBox();
this.textBoxDescription = new TextBox();
this.tableLayoutPanelButton = new TableLayoutPanel();
this.pictureBoxPaypal = new PictureBox();
this.panel1 = new Panel();
this.llblog = new LinkLabel();
this.okButton = new Button();
this.tableLayoutPanel.SuspendLayout();
((ISupportInitialize) this.logoPictureBox).BeginInit();
this.tableLayoutPanelButton.SuspendLayout();
((ISupportInitialize) this.pictureBoxPaypal).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
this.tableLayoutPanel.ColumnCount = 2;
this.tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33f));
this.tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 67f));
this.tableLayoutPanel.Controls.Add((Control) this.logoPictureBox, 0, 0);
this.tableLayoutPanel.Controls.Add((Control) this.textBoxDescription, 1, 0);
this.tableLayoutPanel.Controls.Add((Control) this.tableLayoutPanelButton, 1, 1);
this.tableLayoutPanel.Dock = DockStyle.Fill;
this.tableLayoutPanel.Location = new Point(9, 9);
this.tableLayoutPanel.Name = "tableLayoutPanel";
this.tableLayoutPanel.RowCount = 2;
this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 42.64706f));
this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 57.35294f));
this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20f));
this.tableLayoutPanel.Size = new Size(417, 136);
this.tableLayoutPanel.TabIndex = 0;
this.logoPictureBox.Dock = DockStyle.Fill;
this.logoPictureBox.Image = (Image) componentResourceManager.GetObject("logoPictureBox.Image");
this.logoPictureBox.Location = new Point(3, 3);
this.logoPictureBox.Name = "logoPictureBox";
this.tableLayoutPanel.SetRowSpan((Control) this.logoPictureBox, 2);
this.logoPictureBox.Size = new Size(131, 130);
this.logoPictureBox.TabIndex = 12;
this.logoPictureBox.TabStop = false;
this.textBoxDescription.BackColor = SystemColors.Window;
this.textBoxDescription.BorderStyle = BorderStyle.None;
this.textBoxDescription.Dock = DockStyle.Fill;
this.textBoxDescription.Location = new Point(143, 3);
this.textBoxDescription.Margin = new Padding(6, 3, 3, 3);
this.textBoxDescription.Multiline = true;
this.textBoxDescription.Name = "textBoxDescription";
this.textBoxDescription.ReadOnly = true;
this.textBoxDescription.Size = new Size(271, 52);
this.textBoxDescription.TabIndex = 23;
this.textBoxDescription.TabStop = false;
this.textBoxDescription.Text = "Description";
this.tableLayoutPanelButton.ColumnCount = 2;
this.tableLayoutPanelButton.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50f));
this.tableLayoutPanelButton.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50f));
this.tableLayoutPanelButton.Controls.Add((Control) this.pictureBoxPaypal, 1, 0);
this.tableLayoutPanelButton.Controls.Add((Control) this.panel1, 0, 0);
this.tableLayoutPanelButton.Controls.Add((Control) this.okButton, 1, 1);
this.tableLayoutPanelButton.Dock = DockStyle.Fill;
this.tableLayoutPanelButton.Location = new Point(140, 61);
this.tableLayoutPanelButton.Name = "tableLayoutPanelButton";
this.tableLayoutPanelButton.RowCount = 2;
this.tableLayoutPanelButton.RowStyles.Add(new RowStyle(SizeType.Percent, 100f));
this.tableLayoutPanelButton.RowStyles.Add(new RowStyle(SizeType.Absolute, 37f));
this.tableLayoutPanelButton.RowStyles.Add(new RowStyle(SizeType.Absolute, 20f));
this.tableLayoutPanelButton.Size = new Size(274, 72);
this.tableLayoutPanelButton.TabIndex = 27;
this.pictureBoxPaypal.Image = (Image) GDRomExplorer.Properties.Resources.paypal_donate;
this.pictureBoxPaypal.Location = new Point(140, 3);
this.pictureBoxPaypal.Name = "pictureBoxPaypal";
this.pictureBoxPaypal.Size = new Size(131, 29);
this.pictureBoxPaypal.SizeMode = PictureBoxSizeMode.CenterImage;
this.pictureBoxPaypal.TabIndex = 28;
this.pictureBoxPaypal.TabStop = false;
this.pictureBoxPaypal.Click += new EventHandler(this.paypalDonatePictureBox_Click);
this.panel1.Controls.Add((Control) this.llblog);
this.panel1.Dock = DockStyle.Fill;
this.panel1.Location = new Point(3, 3);
this.panel1.Name = "panel1";
this.panel1.Size = new Size(131, 29);
this.panel1.TabIndex = 33;
this.llblog.ActiveLinkColor = Color.FromArgb(248, 48, 0);
this.llblog.AutoSize = true;
this.llblog.LinkBehavior = LinkBehavior.HoverUnderline;
this.llblog.LinkColor = Color.FromArgb(248, 48, 0);
this.llblog.Location = new Point(25, 8);
this.llblog.Name = "llblog";
this.llblog.Size = new Size(40, 13);
this.llblog.TabIndex = 24;
this.llblog.TabStop = true;
this.llblog.Text = "blogUrl";
this.llblog.TextAlign = ContentAlignment.MiddleCenter;
this.llblog.Click += new EventHandler(this.llblog_LinkClicked);
this.okButton.Anchor = AnchorStyles.None;
this.okButton.DialogResult = DialogResult.OK;
this.okButton.FlatStyle = FlatStyle.Popup;
this.okButton.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.okButton.ForeColor = Color.FromArgb(248, 48, 0);
this.okButton.Location = new Point(151, 42);
this.okButton.Name = "okButton";
this.okButton.Size = new Size(108, 22);
this.okButton.TabIndex = 31;
this.okButton.Text = "&Ok";
this.okButton.UseVisualStyleBackColor = false;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.ClientSize = new Size(435, 154);
this.Controls.Add((Control) this.tableLayoutPanel);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormAbout);
this.Padding = new Padding(9);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "AboutBox";
this.tableLayoutPanel.ResumeLayout(false);
this.tableLayoutPanel.PerformLayout();
((ISupportInitialize) this.logoPictureBox).EndInit();
this.tableLayoutPanelButton.ResumeLayout(false);
((ISupportInitialize) this.pictureBoxPaypal).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
}
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,89 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormAudioConversionSettings
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using SEGATools.Audio;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormAudioConversionSettings : Form
{
private IContainer components;
private Button btOk;
private Button btCancel;
private AudioConversionSettingsViewer audioConversionSettingsViewer;
public AudioConversionSettings AudioConversionSettings => this.audioConversionSettingsViewer.AudioConversionSettings;
public FormAudioConversionSettings() => this.InitializeComponent();
private void btCancel_Click(object sender, EventArgs e) => this.Close();
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.btOk = new Button();
this.btCancel = new Button();
this.audioConversionSettingsViewer = new AudioConversionSettingsViewer();
this.SuspendLayout();
this.btOk.DialogResult = DialogResult.OK;
this.btOk.FlatStyle = FlatStyle.Popup;
this.btOk.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btOk.ForeColor = Color.FromArgb(248, 48, 0);
this.btOk.Location = new Point(195, 52);
this.btOk.Name = "btOk";
this.btOk.Size = new Size((int) sbyte.MaxValue, 22);
this.btOk.TabIndex = 1;
this.btOk.Text = "&OK";
this.btOk.UseVisualStyleBackColor = false;
this.btCancel.DialogResult = DialogResult.Cancel;
this.btCancel.FlatStyle = FlatStyle.Popup;
this.btCancel.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btCancel.ForeColor = Color.FromArgb(248, 48, 0);
this.btCancel.Location = new Point(12, 52);
this.btCancel.Name = "btCancel";
this.btCancel.Size = new Size((int) sbyte.MaxValue, 22);
this.btCancel.TabIndex = 2;
this.btCancel.Text = "&Cancel";
this.btCancel.UseVisualStyleBackColor = false;
this.btCancel.Click += new EventHandler(this.btCancel_Click);
this.audioConversionSettingsViewer.AutoSize = true;
this.audioConversionSettingsViewer.BackColor = Color.Transparent;
this.audioConversionSettingsViewer.Location = new Point(9, 12);
this.audioConversionSettingsViewer.Name = "audioConversionSettingsViewer";
this.audioConversionSettingsViewer.Size = new Size(325, 23);
this.audioConversionSettingsViewer.TabIndex = 3;
this.AcceptButton = (IButtonControl) this.btOk;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btCancel;
this.ClientSize = new Size(334, 86);
this.Controls.Add((Control) this.audioConversionSettingsViewer);
this.Controls.Add((Control) this.btCancel);
this.Controls.Add((Control) this.btOk);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormAudioConversionSettings);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Audio Conversion Options";
this.ResumeLayout(false);
this.PerformLayout();
}
}
}

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,130 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormGDEmuExportSettings
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.Resources;
using GDRomExplorer.UserControls;
using SEGATools.DiscFileSystem;
using SEGATools.GDEmu;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormGDEmuExportSettings : Form
{
private static readonly Logger.ILog logger = Logger.CreateLog();
private FormProcess formProcess;
private IContainer components;
private GDEmuExportSettings gdEmuExportSettings;
private Button btCancel;
private Button btOk;
private GDEmuConverter gdEmuConverter;
public IDiscFileSystem InputDiscImage => this.gdEmuExportSettings.InputDiscImage;
public FormGDEmuExportSettings() => this.InitializeComponent();
public FormGDEmuExportSettings(string InitialDirectory)
: this()
=> this.gdEmuExportSettings.InitialDirectory = InitialDirectory;
public FormGDEmuExportSettings(IDiscFileSystem DiscFileSystem)
: this()
=> this.SetLoadedDiscImage(DiscFileSystem);
private void SetLoadedDiscImage(IDiscFileSystem discFileSystem) => this.gdEmuExportSettings.SetLoadedDiscImage(discFileSystem);
private bool AreSettingsValid() => this.gdEmuExportSettings.InputDiscImage != null && !string.IsNullOrEmpty(this.gdEmuExportSettings.ExportOptions.OutputPath);
private void ShowIncompleteMessagBox()
{
string text = this.gdEmuExportSettings.InputDiscImage != null ? Strings.MsgBoxGDEmuSettingsOutputPathMissing : Strings.MsgBoxGDEmuSettingsImageMissing;
FormGDEmuExportSettings.logger.WarnFormat("Cannot start the conversion: {0}", (object) text);
int num = (int) MessageBox.Show((IWin32Window) this, text, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
private void StartConversion()
{
Guid TaskId = Guid.NewGuid();
this.formProcess = FormProcess.createForGDEmuConverter(this.gdEmuConverter, TaskId);
this.gdEmuConverter.ConvertAsync(this.gdEmuExportSettings.InputDiscImage, this.gdEmuExportSettings.ExportOptions, (object) TaskId);
}
private void btOk_Click(object sender, EventArgs e)
{
if (this.AreSettingsValid())
this.StartConversion();
else
this.ShowIncompleteMessagBox();
}
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.components = (IContainer) new Container();
ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormGDEmuExportSettings));
this.btCancel = new Button();
this.btOk = new Button();
this.gdEmuExportSettings = new GDEmuExportSettings();
this.gdEmuConverter = new GDEmuConverter(this.components);
this.SuspendLayout();
this.btCancel.DialogResult = DialogResult.Cancel;
this.btCancel.FlatStyle = FlatStyle.Popup;
this.btCancel.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btCancel.ForeColor = Color.FromArgb(248, 48, 0);
this.btCancel.Location = new Point(12, 174);
this.btCancel.Name = "btCancel";
this.btCancel.Size = new Size((int) sbyte.MaxValue, 22);
this.btCancel.TabIndex = 2;
this.btCancel.Text = "&Close";
this.btCancel.UseVisualStyleBackColor = false;
this.btOk.CausesValidation = false;
this.btOk.FlatStyle = FlatStyle.Popup;
this.btOk.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btOk.ForeColor = Color.FromArgb(248, 48, 0);
this.btOk.Location = new Point(340, 174);
this.btOk.Name = "btOk";
this.btOk.Size = new Size((int) sbyte.MaxValue, 22);
this.btOk.TabIndex = 1;
this.btOk.Text = "&OK";
this.btOk.UseVisualStyleBackColor = false;
this.btOk.Click += new EventHandler(this.btOk_Click);
this.gdEmuExportSettings.AutoSize = true;
this.gdEmuExportSettings.BackColor = SystemColors.Window;
this.gdEmuExportSettings.InitialDirectory = "";
this.gdEmuExportSettings.Location = new Point(0, 0);
this.gdEmuExportSettings.Name = "gdEmuExportSettings";
this.gdEmuExportSettings.Size = new Size(480, 157);
this.gdEmuExportSettings.TabIndex = 0;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btCancel;
this.CausesValidation = false;
this.ClientSize = new Size(479, 208);
this.Controls.Add((Control) this.btCancel);
this.Controls.Add((Control) this.btOk);
this.Controls.Add((Control) this.gdEmuExportSettings);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon");
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormGDEmuExportSettings);
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Export GDI for GDEMU";
this.ResumeLayout(false);
this.PerformLayout();
}
}
}

File diff suppressed because one or more lines are too long

270
Explorer/Forms/FormGdda.cs Normal file
View file

@ -0,0 +1,270 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormGdda
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using SEGATools.Audio;
using SEGATools.DiscFileSystem;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormGdda : Form
{
private static readonly Logger.ILog logger = Logger.CreateLog();
private IDiscSession discSession;
private List<IDiscTrack> selectedDiscTracks;
private IContainer components;
private Button btConvertSelection;
private GroupBox groupBox;
private Button btUnselectAll;
private Button btInverseSelection;
private Button btSelectAll;
private ListView listViewTracks;
private ColumnHeader columnHeader1;
private ColumnHeader columnHeader2;
private Button btClose;
private FolderBrowserDialog folderBrowserDialogForAudio;
private SaveFileDialog saveFileDialogForAudio;
private AudioConversionSettingsViewer audioConversionSettingsViewer;
public List<IDiscTrack> SelectedDiscTracks => this.selectedDiscTracks.ToList<IDiscTrack>();
public AudioConversionSettings AudioConversionSettings => this.audioConversionSettingsViewer.AudioConversionSettings;
public FormGdda(IDiscSession discSession)
{
this.InitializeComponent();
this.discSession = discSession;
this.selectedDiscTracks = new List<IDiscTrack>();
}
private void frmGdda_Load(object sender, EventArgs e)
{
this.LoadTracks();
this.UpdateConvertButton();
this.listViewTracks.ItemCheck += new ItemCheckEventHandler(this.listViewTracks_ItemCheck);
this.listViewTracks.ItemChecked += new ItemCheckedEventHandler(this.listViewTracks_ItemChecked);
this.listViewTracks.ItemSelectionChanged += new ListViewItemSelectionChangedEventHandler(this.listViewTracks_ItemSelectionChanged);
}
private void listViewTracks_ItemCheck(object sender, ItemCheckEventArgs e) => this.UpdateConvertButton();
private void listViewTracks_ItemChecked(object sender, ItemCheckedEventArgs e) => this.UpdateConvertButton();
private void listViewTracks_ItemSelectionChanged(
object sender,
ListViewItemSelectionChangedEventArgs e)
{
this.UpdateConvertButton();
}
private void UpdateConvertButton() => this.btConvertSelection.Enabled = this.listViewTracks.CheckedItems.Count > 0;
private void LoadTracks()
{
this.listViewTracks.BeginUpdate();
this.listViewTracks.Items.Clear();
foreach (IDiscTrack audioTrack in this.discSession.AudioTracks)
this.listViewTracks.Items.Add(new ListViewItem()
{
SubItems = {
audioTrack.ToString()
},
Tag = (object) audioTrack,
Checked = true,
ToolTipText = audioTrack.FileName
});
this.listViewTracks.EndUpdate();
}
private void EnableAll(bool isEnabled)
{
foreach (ListViewItem listViewItem in this.listViewTracks.Items)
listViewItem.Checked = isEnabled;
}
private void InverseSelection()
{
foreach (ListViewItem listViewItem in this.listViewTracks.Items)
listViewItem.Checked = !listViewItem.Checked;
}
private void btSelectAll_Click(object sender, EventArgs e)
{
this.EnableAll(true);
this.UpdateConvertButton();
}
private void btUnselectAll_Click(object sender, EventArgs e)
{
this.EnableAll(false);
this.UpdateConvertButton();
}
private void btInverseSelection_Click(object sender, EventArgs e)
{
this.InverseSelection();
this.UpdateConvertButton();
}
private void btConvertSelection_Click(object sender, EventArgs e)
{
this.selectedDiscTracks.Clear();
foreach (ListViewItem listViewItem in this.listViewTracks.Items)
{
if (listViewItem.Checked)
this.selectedDiscTracks.Add(listViewItem.Tag as IDiscTrack);
}
if (this.selectedDiscTracks.Count > 0)
this.DialogResult = DialogResult.OK;
else
this.DialogResult = DialogResult.None;
}
private void btClose_Click(object sender, EventArgs e) => this.DialogResult = DialogResult.Cancel;
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormGdda));
this.btConvertSelection = new Button();
this.groupBox = new GroupBox();
this.listViewTracks = new ListView();
this.columnHeader1 = new ColumnHeader();
this.columnHeader2 = new ColumnHeader();
this.btUnselectAll = new Button();
this.btInverseSelection = new Button();
this.btSelectAll = new Button();
this.btClose = new Button();
this.folderBrowserDialogForAudio = new FolderBrowserDialog();
this.saveFileDialogForAudio = new SaveFileDialog();
this.audioConversionSettingsViewer = new AudioConversionSettingsViewer();
this.groupBox.SuspendLayout();
this.SuspendLayout();
this.btConvertSelection.FlatStyle = FlatStyle.Popup;
this.btConvertSelection.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btConvertSelection.ForeColor = Color.FromArgb(248, 48, 0);
this.btConvertSelection.Location = new Point(248, 225);
this.btConvertSelection.Name = "btConvertSelection";
this.btConvertSelection.Size = new Size(108, 22);
this.btConvertSelection.TabIndex = 5;
this.btConvertSelection.Text = "Convert to CDDA";
this.btConvertSelection.UseVisualStyleBackColor = false;
this.btConvertSelection.Click += new EventHandler(this.btConvertSelection_Click);
this.groupBox.Controls.Add((Control) this.listViewTracks);
this.groupBox.Controls.Add((Control) this.btUnselectAll);
this.groupBox.Controls.Add((Control) this.btInverseSelection);
this.groupBox.Controls.Add((Control) this.btSelectAll);
this.groupBox.Location = new Point(12, 12);
this.groupBox.Name = "groupBox";
this.groupBox.Size = new Size(344, 183);
this.groupBox.TabIndex = 6;
this.groupBox.TabStop = false;
this.groupBox.Text = "Select GD-DA tracks to convert:";
this.listViewTracks.CheckBoxes = true;
this.listViewTracks.Columns.AddRange(new ColumnHeader[2]
{
this.columnHeader1,
this.columnHeader2
});
this.listViewTracks.FullRowSelect = true;
this.listViewTracks.HeaderStyle = ColumnHeaderStyle.None;
this.listViewTracks.HideSelection = false;
this.listViewTracks.Location = new Point(6, 47);
this.listViewTracks.MultiSelect = false;
this.listViewTracks.Name = "listViewTracks";
this.listViewTracks.ShowItemToolTips = true;
this.listViewTracks.Size = new Size(332, 130);
this.listViewTracks.TabIndex = 3;
this.listViewTracks.UseCompatibleStateImageBehavior = false;
this.listViewTracks.View = View.Details;
this.columnHeader1.Text = "";
this.columnHeader1.Width = 20;
this.columnHeader2.Text = "Track name";
this.columnHeader2.Width = 280;
this.btUnselectAll.FlatStyle = FlatStyle.Popup;
this.btUnselectAll.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btUnselectAll.ForeColor = Color.FromArgb(248, 48, 0);
this.btUnselectAll.Location = new Point(118, 19);
this.btUnselectAll.Name = "btUnselectAll";
this.btUnselectAll.Size = new Size(106, 22);
this.btUnselectAll.TabIndex = 1;
this.btUnselectAll.Text = "Unselect all";
this.btUnselectAll.UseVisualStyleBackColor = false;
this.btUnselectAll.Click += new EventHandler(this.btUnselectAll_Click);
this.btInverseSelection.FlatStyle = FlatStyle.Popup;
this.btInverseSelection.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btInverseSelection.ForeColor = Color.FromArgb(248, 48, 0);
this.btInverseSelection.Location = new Point(230, 19);
this.btInverseSelection.Name = "btInverseSelection";
this.btInverseSelection.Size = new Size(106, 22);
this.btInverseSelection.TabIndex = 2;
this.btInverseSelection.Text = "Inverse selection";
this.btInverseSelection.UseVisualStyleBackColor = false;
this.btInverseSelection.Click += new EventHandler(this.btInverseSelection_Click);
this.btSelectAll.FlatStyle = FlatStyle.Popup;
this.btSelectAll.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btSelectAll.ForeColor = Color.FromArgb(248, 48, 0);
this.btSelectAll.Location = new Point(6, 19);
this.btSelectAll.Name = "btSelectAll";
this.btSelectAll.Size = new Size(106, 22);
this.btSelectAll.TabIndex = 0;
this.btSelectAll.Text = "Select all";
this.btSelectAll.UseVisualStyleBackColor = false;
this.btSelectAll.Click += new EventHandler(this.btSelectAll_Click);
this.btClose.DialogResult = DialogResult.Cancel;
this.btClose.FlatStyle = FlatStyle.Popup;
this.btClose.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btClose.ForeColor = Color.FromArgb(248, 48, 0);
this.btClose.Location = new Point(12, 225);
this.btClose.Name = "btClose";
this.btClose.Size = new Size(108, 22);
this.btClose.TabIndex = 4;
this.btClose.Text = "Close";
this.btClose.UseVisualStyleBackColor = false;
this.btClose.Click += new EventHandler(this.btClose_Click);
this.audioConversionSettingsViewer.AutoSize = true;
this.audioConversionSettingsViewer.BackColor = Color.Transparent;
this.audioConversionSettingsViewer.Location = new Point(13, 201);
this.audioConversionSettingsViewer.Name = "audioConversionSettingsViewer";
this.audioConversionSettingsViewer.Size = new Size(343, 23);
this.audioConversionSettingsViewer.TabIndex = 7;
this.AcceptButton = (IButtonControl) this.btConvertSelection;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btClose;
this.ClientSize = new Size(368, 259);
this.Controls.Add((Control) this.audioConversionSettingsViewer);
this.Controls.Add((Control) this.btClose);
this.Controls.Add((Control) this.groupBox);
this.Controls.Add((Control) this.btConvertSelection);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon");
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormGdda);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Convert GD-DA to CD-DA";
this.Load += new EventHandler(this.frmGdda_Load);
this.groupBox.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,185 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormGetDESKey
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.Resources;
using SEGATools.Encrypt;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormGetDESKey : Form
{
private IContainer components;
private TextBox tbDESKey;
private Label lbDESKey;
private Button btProceed;
private Button btCancel;
public DESKey DESKey { get; private set; }
public static FormGetDESKey aGetDESKeyFormWithDecryptLabel() => new FormGetDESKey(FormGetDESKey.ButtonLabel.DecryptOnly, (DESKey) null);
public static FormGetDESKey aGetDESKeyFormWithEncryptLabel() => new FormGetDESKey(FormGetDESKey.ButtonLabel.EncryptOnly, (DESKey) null);
public static FormGetDESKey aGetDESKeyFormWithExtractAndDecryptLabel(
DESKey inputDESKey)
{
return new FormGetDESKey(FormGetDESKey.ButtonLabel.ExtractAndDecrypt, inputDESKey);
}
private FormGetDESKey()
: this(FormGetDESKey.ButtonLabel.ExtractAndDecrypt, (DESKey) null)
{
}
private FormGetDESKey(FormGetDESKey.ButtonLabel buttonLabel, DESKey suggestedDESKey)
{
string extractButtonLabel;
switch (buttonLabel)
{
case FormGetDESKey.ButtonLabel.ExtractAndDecrypt:
extractButtonLabel = Strings.DESKeyFormButtonLabelExtractAndDecrypt;
break;
case FormGetDESKey.ButtonLabel.EncryptOnly:
extractButtonLabel = Strings.DESKeyFormButtonLabelEncrypt;
break;
case FormGetDESKey.ButtonLabel.DecryptOnly:
extractButtonLabel = Strings.DESKeyFormButtonLabelDecrypt;
break;
default:
extractButtonLabel = Strings.DESKeyFormButtonLabelDecrypt;
break;
}
this.DESKey = suggestedDESKey;
this.Initialize(extractButtonLabel);
}
private void Initialize(string extractButtonLabel)
{
this.InitializeComponent();
this.Activated += new EventHandler(this.FormGetDESKey_Activated);
this.btProceed.Text = extractButtonLabel;
this.tbDESKey.CharacterCasing = CharacterCasing.Upper;
this.tbDESKey.TextChanged += new EventHandler(this.tbDESKey_TextChanged);
}
private void ValidateDESKey(string key)
{
string key1 = key.Trim();
if (DESKey.TryParse(key1))
{
this.DESKey = DESKey.Parse(key1);
this.btProceed.Enabled = true;
}
else
{
this.DESKey = (DESKey) null;
this.btProceed.Enabled = false;
}
}
private void FormGetDESKey_Load(object sender, EventArgs e)
{
this.btProceed.Enabled = false;
this.tbDESKey.Text = this.DESKey != null ? this.DESKey.KeyString : string.Empty;
this.tbDESKey.Focus();
}
private void FormGetDESKey_Activated(object sender, EventArgs e)
{
if (!Clipboard.ContainsText() || !DESKey.TryParse(Clipboard.GetText().Trim()))
return;
this.tbDESKey.Text = Clipboard.GetText().Trim();
}
private void tbDESKey_TextChanged(object sender, EventArgs e) => this.ValidateDESKey(this.tbDESKey.Text);
private void btProceed_Click(object sender, EventArgs e) => this.ValidateDESKey(this.tbDESKey.Text);
private void btCancel_Click(object sender, EventArgs e) => this.Close();
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.tbDESKey = new TextBox();
this.lbDESKey = new Label();
this.btProceed = new Button();
this.btCancel = new Button();
this.SuspendLayout();
this.tbDESKey.Location = new Point(71, 6);
this.tbDESKey.MaxLength = 16;
this.tbDESKey.Name = "tbDESKey";
this.tbDESKey.Size = new Size(210, 20);
this.tbDESKey.TabIndex = 0;
this.tbDESKey.TextAlign = HorizontalAlignment.Center;
this.lbDESKey.AutoSize = true;
this.lbDESKey.Location = new Point(12, 9);
this.lbDESKey.Name = "lbDESKey";
this.lbDESKey.Size = new Size(53, 13);
this.lbDESKey.TabIndex = 2;
this.lbDESKey.Text = "DES Key:";
this.btProceed.DialogResult = DialogResult.OK;
this.btProceed.FlatStyle = FlatStyle.Popup;
this.btProceed.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btProceed.ForeColor = Color.FromArgb(248, 48, 0);
this.btProceed.Location = new Point(154, 32);
this.btProceed.Name = "btProceed";
this.btProceed.Size = new Size((int) sbyte.MaxValue, 22);
this.btProceed.TabIndex = 1;
this.btProceed.Text = "&OK";
this.btProceed.UseVisualStyleBackColor = false;
this.btProceed.Click += new EventHandler(this.btProceed_Click);
this.btCancel.DialogResult = DialogResult.Cancel;
this.btCancel.FlatStyle = FlatStyle.Popup;
this.btCancel.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btCancel.ForeColor = Color.FromArgb(248, 48, 0);
this.btCancel.Location = new Point(15, 32);
this.btCancel.Name = "btCancel";
this.btCancel.Size = new Size((int) sbyte.MaxValue, 22);
this.btCancel.TabIndex = 2;
this.btCancel.Text = "&Cancel";
this.btCancel.UseVisualStyleBackColor = false;
this.btCancel.Click += new EventHandler(this.btCancel_Click);
this.AcceptButton = (IButtonControl) this.btProceed;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btCancel;
this.ClientSize = new Size(295, 65);
this.Controls.Add((Control) this.btCancel);
this.Controls.Add((Control) this.btProceed);
this.Controls.Add((Control) this.tbDESKey);
this.Controls.Add((Control) this.lbDESKey);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormGetDESKey);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Enter the Naomi DES key";
this.Load += new EventHandler(this.FormGetDESKey_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
private enum ButtonLabel : short
{
ExtractAndDecrypt,
EncryptOnly,
DecryptOnly,
}
}
}

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,203 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormInitialProgram
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using SEGATools.Security;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormInitialProgram : Form
{
private InitialProgramExtended ip;
private string basePath;
private IContainer components;
private Button btClose;
private TabControl tcInitialProgram;
private TabPage tpGeneralSettings;
private InitialProgramGeneralSettingsViewer ipGeneralSettingsViewer;
private TabPage tpPeripheralSettings;
private InitialProgramPeripheralsViewer ipPeriperalsViewer;
private TabPage tpMRImages;
private InitialProgramImagesViewer ipImagesViewer;
private TabPage tpLibraryReferences;
private TabPage tpTrackList;
private InitialProgramLibraryReferences ipLibraryReferences;
private InitialProgramTocViewer ipTocViewer;
public FormInitialProgram(InitialProgramExtended ip, string basePath)
{
this.InitializeComponent();
this.StartPosition = FormStartPosition.CenterParent;
this.ip = ip;
this.basePath = basePath;
}
private void FormIp_Load(object sender, EventArgs e)
{
this.Text = "Initial Program Viewer: " + this.ip.FileName;
this.ipGeneralSettingsViewer.LoadInitialProgram(this.ip);
this.ipPeriperalsViewer.LoadInitialProgram(this.ip);
this.ipImagesViewer.LoadInitialProgram(this.ip, this.basePath);
this.ipLibraryReferences.LoadInitialProgram(this.ip);
this.ipTocViewer.LoadInitialProgram(this.ip);
}
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.btClose = new Button();
this.tcInitialProgram = new TabControl();
this.tpGeneralSettings = new TabPage();
this.ipGeneralSettingsViewer = new InitialProgramGeneralSettingsViewer();
this.tpPeripheralSettings = new TabPage();
this.ipPeriperalsViewer = new InitialProgramPeripheralsViewer();
this.tpMRImages = new TabPage();
this.ipImagesViewer = new InitialProgramImagesViewer();
this.tpLibraryReferences = new TabPage();
this.ipLibraryReferences = new InitialProgramLibraryReferences();
this.tpTrackList = new TabPage();
this.ipTocViewer = new InitialProgramTocViewer();
this.tcInitialProgram.SuspendLayout();
this.tpGeneralSettings.SuspendLayout();
this.tpPeripheralSettings.SuspendLayout();
this.tpMRImages.SuspendLayout();
this.tpLibraryReferences.SuspendLayout();
this.tpTrackList.SuspendLayout();
this.SuspendLayout();
this.btClose.DialogResult = DialogResult.Cancel;
this.btClose.FlatStyle = FlatStyle.Popup;
this.btClose.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btClose.ForeColor = Color.FromArgb(248, 48, 0);
this.btClose.Location = new Point(378, 292);
this.btClose.Name = "btClose";
this.btClose.Size = new Size(108, 22);
this.btClose.TabIndex = 0;
this.btClose.Text = "Close";
this.btClose.UseVisualStyleBackColor = false;
this.tcInitialProgram.Controls.Add((Control) this.tpGeneralSettings);
this.tcInitialProgram.Controls.Add((Control) this.tpPeripheralSettings);
this.tcInitialProgram.Controls.Add((Control) this.tpMRImages);
this.tcInitialProgram.Controls.Add((Control) this.tpLibraryReferences);
this.tcInitialProgram.Controls.Add((Control) this.tpTrackList);
this.tcInitialProgram.Location = new Point(12, 12);
this.tcInitialProgram.Name = "tcInitialProgram";
this.tcInitialProgram.SelectedIndex = 0;
this.tcInitialProgram.Size = new Size(474, 274);
this.tcInitialProgram.TabIndex = 0;
this.tpGeneralSettings.BackColor = Color.Transparent;
this.tpGeneralSettings.Controls.Add((Control) this.ipGeneralSettingsViewer);
this.tpGeneralSettings.Cursor = Cursors.Default;
this.tpGeneralSettings.Location = new Point(4, 22);
this.tpGeneralSettings.Name = "tpGeneralSettings";
this.tpGeneralSettings.Padding = new Padding(3);
this.tpGeneralSettings.Size = new Size(466, 248);
this.tpGeneralSettings.TabIndex = 0;
this.tpGeneralSettings.Text = "General Settings";
this.tpGeneralSettings.UseVisualStyleBackColor = true;
this.ipGeneralSettingsViewer.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
this.ipGeneralSettingsViewer.AutoSize = true;
this.ipGeneralSettingsViewer.BackColor = Color.Transparent;
this.ipGeneralSettingsViewer.Location = new Point(3, 3);
this.ipGeneralSettingsViewer.Name = "ipGeneralSettingsViewer";
this.ipGeneralSettingsViewer.Size = new Size(460, 243);
this.ipGeneralSettingsViewer.TabIndex = 12;
this.tpPeripheralSettings.BackColor = Color.Transparent;
this.tpPeripheralSettings.Controls.Add((Control) this.ipPeriperalsViewer);
this.tpPeripheralSettings.Location = new Point(4, 22);
this.tpPeripheralSettings.Name = "tpPeripheralSettings";
this.tpPeripheralSettings.Padding = new Padding(3);
this.tpPeripheralSettings.Size = new Size(466, 248);
this.tpPeripheralSettings.TabIndex = 1;
this.tpPeripheralSettings.Text = "Peripheral Settings";
this.tpPeripheralSettings.UseVisualStyleBackColor = true;
this.ipPeriperalsViewer.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
this.ipPeriperalsViewer.AutoSize = true;
this.ipPeriperalsViewer.BackColor = Color.Transparent;
this.ipPeriperalsViewer.Location = new Point(3, 3);
this.ipPeriperalsViewer.Name = "ipPeriperalsViewer";
this.ipPeriperalsViewer.Size = new Size(463, 242);
this.ipPeriperalsViewer.TabIndex = 13;
this.tpMRImages.BackColor = Color.Transparent;
this.tpMRImages.Controls.Add((Control) this.ipImagesViewer);
this.tpMRImages.Location = new Point(4, 22);
this.tpMRImages.Name = "tpMRImages";
this.tpMRImages.Padding = new Padding(3);
this.tpMRImages.Size = new Size(466, 248);
this.tpMRImages.TabIndex = 2;
this.tpMRImages.Text = "MR Images";
this.tpMRImages.UseVisualStyleBackColor = true;
this.ipImagesViewer.BackColor = Color.Transparent;
this.ipImagesViewer.Location = new Point(0, 6);
this.ipImagesViewer.Name = "ipImagesViewer";
this.ipImagesViewer.Size = new Size(463, 239);
this.ipImagesViewer.TabIndex = 0;
this.tpLibraryReferences.BackColor = Color.Transparent;
this.tpLibraryReferences.Controls.Add((Control) this.ipLibraryReferences);
this.tpLibraryReferences.Location = new Point(4, 22);
this.tpLibraryReferences.Name = "tpLibraryReferences";
this.tpLibraryReferences.Padding = new Padding(3);
this.tpLibraryReferences.Size = new Size(466, 248);
this.tpLibraryReferences.TabIndex = 3;
this.tpLibraryReferences.Text = "Library References";
this.tpLibraryReferences.UseVisualStyleBackColor = true;
this.ipLibraryReferences.BackColor = Color.Transparent;
this.ipLibraryReferences.Dock = DockStyle.Fill;
this.ipLibraryReferences.Location = new Point(3, 3);
this.ipLibraryReferences.Name = "ipLibraryReferences";
this.ipLibraryReferences.Size = new Size(460, 242);
this.ipLibraryReferences.TabIndex = 0;
this.tpTrackList.Controls.Add((Control) this.ipTocViewer);
this.tpTrackList.Location = new Point(4, 22);
this.tpTrackList.Name = "tpTrackList";
this.tpTrackList.Padding = new Padding(3);
this.tpTrackList.Size = new Size(466, 248);
this.tpTrackList.TabIndex = 4;
this.tpTrackList.Text = "Track List";
this.tpTrackList.UseVisualStyleBackColor = true;
this.ipTocViewer.BackColor = Color.Transparent;
this.ipTocViewer.Dock = DockStyle.Fill;
this.ipTocViewer.Location = new Point(3, 3);
this.ipTocViewer.Name = "ipTocViewer";
this.ipTocViewer.Size = new Size(460, 242);
this.ipTocViewer.TabIndex = 0;
this.AcceptButton = (IButtonControl) this.btClose;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btClose;
this.ClientSize = new Size(497, 321);
this.Controls.Add((Control) this.tcInitialProgram);
this.Controls.Add((Control) this.btClose);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormInitialProgram);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "IP Viewer";
this.Load += new EventHandler(this.FormIp_Load);
this.tcInitialProgram.ResumeLayout(false);
this.tpGeneralSettings.ResumeLayout(false);
this.tpGeneralSettings.PerformLayout();
this.tpPeripheralSettings.ResumeLayout(false);
this.tpPeripheralSettings.PerformLayout();
this.tpMRImages.ResumeLayout(false);
this.tpLibraryReferences.ResumeLayout(false);
this.tpTrackList.ResumeLayout(false);
this.ResumeLayout(false);
}
}
}

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,70 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormLoading
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormLoading : Form
{
private IContainer components;
private Label lbLoadingMessage;
private ProgressBar progressBar;
public FormLoading(string Title, string Message)
{
this.InitializeComponent();
this.Text = Title;
this.lbLoadingMessage.Text = Message;
}
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.lbLoadingMessage = new Label();
this.progressBar = new ProgressBar();
this.SuspendLayout();
this.lbLoadingMessage.Anchor = AnchorStyles.None;
this.lbLoadingMessage.ImageAlign = ContentAlignment.TopCenter;
this.lbLoadingMessage.Location = new Point(12, 9);
this.lbLoadingMessage.Name = "lbLoadingMessage";
this.lbLoadingMessage.Size = new Size(320, 20);
this.lbLoadingMessage.TabIndex = 5;
this.lbLoadingMessage.Text = "Message";
this.lbLoadingMessage.TextAlign = ContentAlignment.MiddleLeft;
this.progressBar.Location = new Point(12, 32);
this.progressBar.MarqueeAnimationSpeed = 30;
this.progressBar.Name = "progressBar";
this.progressBar.Size = new Size(320, 23);
this.progressBar.Style = ProgressBarStyle.Marquee;
this.progressBar.TabIndex = 6;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.ClientSize = new Size(344, 62);
this.ControlBox = false;
this.Controls.Add((Control) this.progressBar);
this.Controls.Add((Control) this.lbLoadingMessage);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormLoading);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Title";
this.ResumeLayout(false);
}
}
}

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,81 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormPrimaryVolumeDescriptor
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.UserControls;
using ImageReader.ISO9660.VolumeDescriptors;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormPrimaryVolumeDescriptor : Form
{
private PrimaryVolumeDescriptor PrimaryVolumeDescriptor;
private IContainer components;
private Button btClose;
private PrimaryVolumeDescriptorViewer primaryVolumeDescriptorViewer;
public FormPrimaryVolumeDescriptor(PrimaryVolumeDescriptor PrimaryVolumeDescriptor)
{
this.InitializeComponent();
this.PrimaryVolumeDescriptor = PrimaryVolumeDescriptor;
}
private void FormInfo_Load(object sender, EventArgs e) => this.primaryVolumeDescriptorViewer.LoadPrimaryVolumeDescriptor(this.PrimaryVolumeDescriptor);
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormPrimaryVolumeDescriptor));
this.btClose = new Button();
this.primaryVolumeDescriptorViewer = new PrimaryVolumeDescriptorViewer();
this.SuspendLayout();
this.btClose.DialogResult = DialogResult.Cancel;
this.btClose.FlatStyle = FlatStyle.Popup;
this.btClose.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btClose.ForeColor = Color.FromArgb(248, 48, 0);
this.btClose.Location = new Point(466, 198);
this.btClose.Name = "btClose";
this.btClose.Size = new Size(108, 22);
this.btClose.TabIndex = 1;
this.btClose.Text = "Close";
this.btClose.UseVisualStyleBackColor = false;
this.primaryVolumeDescriptorViewer.AutoSize = true;
this.primaryVolumeDescriptorViewer.Location = new Point(5, 8);
this.primaryVolumeDescriptorViewer.Margin = new Padding(1);
this.primaryVolumeDescriptorViewer.Name = "primaryVolumeDescriptorViewer";
this.primaryVolumeDescriptorViewer.Size = new Size(571, 181);
this.primaryVolumeDescriptorViewer.TabIndex = 2;
this.AcceptButton = (IButtonControl) this.btClose;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btClose;
this.ClientSize = new Size(584, 226);
this.Controls.Add((Control) this.primaryVolumeDescriptorViewer);
this.Controls.Add((Control) this.btClose);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon");
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormPrimaryVolumeDescriptor);
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Primary Volume Descriptor Viewer";
this.Load += new EventHandler(this.FormInfo_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,423 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormProcess
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.Others;
using GDRomExplorer.Resources;
using SEGATools.Audio;
using SEGATools.Disc;
using SEGATools.Encrypt;
using SEGATools.GDEmu;
using SEGATools.Scanner;
using SEGATools.UserProcess;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormProcess : Form
{
private static readonly Logger.ILog logger = Logger.CreateLog();
private UserProcessBase process;
private FormProcess.ProcessInfo processInfo;
private Guid currentConversionTaskId;
private ProgressBar progressBarUnique;
private Label progressBarLabelUnique;
private Point progressBarLabelUniqueInitialLocation;
private Size progressBarLabelUniqueInitialSize;
private bool NotifyAppStatusEvent;
private IContainer components;
private GroupBox groupBoxProgress;
private ProgressBar progressBarTotal;
private ProgressBar progressBarCurrent;
private Label lbOutputTitle;
private Label lbInputTitle;
private Button btCancel;
private Label lbOutput;
private Label lbInput;
private Label lbTotalPercentage;
private Label lbCurrentPercentage;
public static FormProcess createForDiscExtractor(
DiscExtractor discExtractor,
Guid TaskId)
{
FormProcess.ProcessInfo forDiscExtractor = FormProcess.ProcessInfo.GetProcessInfoForDiscExtractor();
return new FormProcess((UserProcessBase) discExtractor, forDiscExtractor, TaskId, true);
}
public static FormProcess createForRawToWavConverter(
Raw2WavConverter raw2WavConverter,
Guid TaskId)
{
FormProcess.ProcessInfo rawToWavConverter = FormProcess.ProcessInfo.GetProcessInfoForRawToWavConverter();
return new FormProcess((UserProcessBase) raw2WavConverter, rawToWavConverter, TaskId, true);
}
public static FormProcess createForDesEncryptor(
DesEncryptDecryptTool desDecryptor,
Guid TaskId)
{
FormProcess.ProcessInfo infoForDesEncryptor = FormProcess.ProcessInfo.GetProcessInfoForDesEncryptor();
return new FormProcess((UserProcessBase) desDecryptor, infoForDesEncryptor, TaskId, true);
}
public static FormProcess createForDesDecryptor(
DesEncryptDecryptTool desDecryptor,
Guid TaskId)
{
FormProcess.ProcessInfo infoForDesDecryptor = FormProcess.ProcessInfo.GetProcessInfoForDesDecryptor();
return new FormProcess((UserProcessBase) desDecryptor, infoForDesDecryptor, TaskId, true);
}
public static FormProcess createForFileScanner(FileScanner fileScanner, Guid TaskId)
{
FormProcess.ProcessInfo infoForFileScanner = FormProcess.ProcessInfo.GetProcessInfoForFileScanner();
return new FormProcess((UserProcessBase) fileScanner, infoForFileScanner, TaskId, true);
}
public static FormProcess createForGDEmuConverter(
GDEmuConverter gdEmuConverter,
Guid TaskId)
{
FormProcess.ProcessInfo forGdEmuConverter = FormProcess.ProcessInfo.GetProcessInfoForGDEmuConverter();
return new FormProcess((UserProcessBase) gdEmuConverter, forGdEmuConverter, TaskId, false);
}
private FormProcess(
UserProcessBase Process,
FormProcess.ProcessInfo ProcessInfo,
Guid TaskId,
bool NotifyAppStatusEvent)
{
this.InitializeComponent();
this.process = Process;
this.processInfo = ProcessInfo;
this.Text = this.processInfo.ProcessTitle;
this.groupBoxProgress.Text = this.processInfo.ProcessSubTitle + ":";
this.currentConversionTaskId = TaskId;
this.progressBarUnique = this.progressBarCurrent;
this.progressBarLabelUnique = this.lbCurrentPercentage;
this.progressBarLabelUniqueInitialLocation = this.progressBarLabelUnique.Location;
this.progressBarLabelUniqueInitialSize = this.progressBarUnique.Size;
this.NotifyAppStatusEvent = NotifyAppStatusEvent;
this.AddEventListeners();
}
private void AddEventListeners()
{
this.process.AsyncOperationProgressChanged += new AsyncOperationProgressChangedEventHandler(this.ProgressChanged);
this.process.AsyncOperationCompleted += new AsyncOperationCompletedEventHandler(this.ProcessCompleted);
this.process.AsyncOperationWaitForUserConsent += new AsyncOperationProgressWaitingForUserConsentEventHandler(this.ProcessWaitForUserConsent);
this.process.AsyncOperationUpdateUIView += new AsyncOperationProgressUpdateUIEventHandler(this.ProcessUpdateUIView);
}
private void RemoveEventListeners()
{
this.process.AsyncOperationProgressChanged -= new AsyncOperationProgressChangedEventHandler(this.ProgressChanged);
this.process.AsyncOperationCompleted -= new AsyncOperationCompletedEventHandler(this.ProcessCompleted);
this.process.AsyncOperationWaitForUserConsent -= new AsyncOperationProgressWaitingForUserConsentEventHandler(this.ProcessWaitForUserConsent);
this.process.AsyncOperationUpdateUIView -= new AsyncOperationProgressUpdateUIEventHandler(this.ProcessUpdateUIView);
}
private void UpdateProgressBar(
ProgressBar ProgressBar,
Label ProgressPercentage,
int Percentage)
{
if (Percentage == ProgressBar.Value)
return;
ProgressBar.Value = Percentage >= 100 ? 100 : Percentage;
ProgressPercentage.Text = ProgressBar.Value.ToString() + "%";
}
private void NotifyNewAppStatus(string message)
{
if (!this.NotifyAppStatusEvent)
return;
AppStatus.NotifyNewAppStatus(message);
}
private void UpdateProgressBarsWithInitialValues()
{
this.progressBarUnique.Size = this.progressBarLabelUniqueInitialSize;
this.progressBarLabelUnique.Location = this.progressBarLabelUniqueInitialLocation;
}
private void ResizeForOneProgressBarWithPercentage()
{
this.progressBarUnique.Height = this.progressBarTotal.Location.Y + this.progressBarTotal.Height - this.progressBarCurrent.Location.Y;
this.progressBarLabelUnique.Location = new Point(this.lbCurrentPercentage.Location.X, this.progressBarCurrent.Location.Y + (this.progressBarCurrent.Height - this.lbCurrentPercentage.Height) / 2);
}
private void ResizeForOneProgressBarWithoutPercentage()
{
this.ResizeForOneProgressBarWithPercentage();
this.progressBarUnique.Width = this.lbTotalPercentage.Location.X + this.lbTotalPercentage.Width - this.progressBarTotal.Location.X;
}
private void UpdateInputTitleAndText(string newTitle, bool showText)
{
this.lbInputTitle.Text = newTitle;
this.lbInput.Visible = showText;
}
private void ProgressChanged(UserProcessProgressChangedEventArgs e)
{
if (!this.Visible)
{
int num = (int) this.ShowDialog();
}
this.UpdateProgressBar(this.progressBarCurrent, this.lbCurrentPercentage, e.ProgressPercentage);
this.UpdateProgressBar(this.progressBarTotal, this.lbTotalPercentage, e.TotalProgressPercentage);
this.lbInput.Text = e.Input;
this.lbOutput.Text = e.Output;
this.Update();
}
private void ProcessCompleted(object sender, UserProcessCompletedEventArgs e)
{
if (e.Error != null)
{
string str = string.Format("{0} error with \"{1}\":\n{2}", (object) this.processInfo.ProcessTypeName, (object) e.ResourceName, (object) e.Error.Message);
FormProcess.logger.Error((object) str);
int num = (int) MessageBox.Show((IWin32Window) this, str, this.processInfo.ProcessTitle, MessageBoxButtons.OK, MessageBoxIcon.Hand);
this.NotifyNewAppStatus(str);
}
else if (e.Cancelled)
{
string message = string.Format("{0} canceled!", (object) this.processInfo.ProcessTypeName);
FormProcess.logger.Info((object) message);
this.NotifyNewAppStatus(message);
}
else
{
this.UpdateProgressBar(this.progressBarCurrent, this.lbCurrentPercentage, 100);
this.UpdateProgressBar(this.progressBarTotal, this.lbTotalPercentage, 100);
string message = string.Format("{0} successfully completed!", (object) this.processInfo.ProcessTypeName);
FormProcess.logger.Info((object) message);
this.NotifyNewAppStatus(message);
}
this.RemoveEventListeners();
this.Close();
}
private void ProcessWaitForUserConsent(UserProcessWaitingForUserConsentEventArgs e)
{
string caption = Strings.ResourceManager.GetString(e.QuestionTitleResourceName);
if (MessageBox.Show((IWin32Window) this, UserProcessEventArgsConverter.ToFormatedString(e, Strings.ResourceManager), caption, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) != DialogResult.Yes)
this.process.CancelAsync((object) this.currentConversionTaskId);
e.ResetEvent.Set();
}
private void ProcessUpdateUIView(UserProcessUpdateUIViewEventArgs e)
{
this.UpdateProgressBarsWithInitialValues();
switch (e.UIStyle)
{
case UserProcessUpdateUIViewEventArgs.UserProgressUIStyle.OneProgressBarWithPercentage:
this.progressBarTotal.Visible = false;
this.lbTotalPercentage.Visible = false;
this.progressBarCurrent.Visible = true;
this.lbCurrentPercentage.Visible = true;
this.progressBarCurrent.Style = ProgressBarStyle.Continuous;
this.ResizeForOneProgressBarWithPercentage();
break;
case UserProcessUpdateUIViewEventArgs.UserProgressUIStyle.OneProgressBarWithoutPercentage:
this.progressBarTotal.Visible = false;
this.lbTotalPercentage.Visible = false;
this.progressBarCurrent.Visible = true;
this.lbCurrentPercentage.Visible = false;
this.progressBarCurrent.Style = ProgressBarStyle.Marquee;
this.ResizeForOneProgressBarWithoutPercentage();
break;
case UserProcessUpdateUIViewEventArgs.UserProgressUIStyle.TwoProgressBarsWithPercentage:
this.progressBarTotal.Visible = true;
this.lbTotalPercentage.Visible = true;
this.progressBarCurrent.Visible = true;
this.lbCurrentPercentage.Visible = true;
this.progressBarTotal.Style = ProgressBarStyle.Continuous;
this.progressBarCurrent.Style = ProgressBarStyle.Continuous;
break;
}
if (!e.UpdateInputTitle)
return;
this.UpdateInputTitleAndText(Strings.ResourceManager.GetString(e.InputTitleResourceName), e.ShowInputText);
}
private void btCancel_Click(object sender, EventArgs e) => this.process.CancelAsync((object) this.currentConversionTaskId);
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormProcess));
this.groupBoxProgress = new GroupBox();
this.lbCurrentPercentage = new Label();
this.lbTotalPercentage = new Label();
this.lbOutput = new Label();
this.lbInput = new Label();
this.btCancel = new Button();
this.progressBarTotal = new ProgressBar();
this.progressBarCurrent = new ProgressBar();
this.lbOutputTitle = new Label();
this.lbInputTitle = new Label();
this.groupBoxProgress.SuspendLayout();
this.SuspendLayout();
this.groupBoxProgress.Controls.Add((Control) this.lbOutputTitle);
this.groupBoxProgress.Controls.Add((Control) this.lbInputTitle);
this.groupBoxProgress.Controls.Add((Control) this.lbCurrentPercentage);
this.groupBoxProgress.Controls.Add((Control) this.lbTotalPercentage);
this.groupBoxProgress.Controls.Add((Control) this.lbOutput);
this.groupBoxProgress.Controls.Add((Control) this.lbInput);
this.groupBoxProgress.Controls.Add((Control) this.btCancel);
this.groupBoxProgress.Controls.Add((Control) this.progressBarTotal);
this.groupBoxProgress.Controls.Add((Control) this.progressBarCurrent);
this.groupBoxProgress.Location = new Point(12, 12);
this.groupBoxProgress.Name = "groupBoxProgress";
this.groupBoxProgress.Size = new Size(421, 137);
this.groupBoxProgress.TabIndex = 9;
this.groupBoxProgress.TabStop = false;
this.groupBoxProgress.Text = "ProgressSubTitle";
this.lbCurrentPercentage.AutoSize = true;
this.lbCurrentPercentage.BackColor = Color.Transparent;
this.lbCurrentPercentage.Font = new Font("Microsoft Sans Serif", 9.75f, FontStyle.Bold, GraphicsUnit.Point, (byte) 0);
this.lbCurrentPercentage.ImageAlign = ContentAlignment.MiddleRight;
this.lbCurrentPercentage.Location = new Point(370, 66);
this.lbCurrentPercentage.Name = "lbCurrentPercentage";
this.lbCurrentPercentage.Size = new Size(45, 16);
this.lbCurrentPercentage.TabIndex = 9;
this.lbCurrentPercentage.Text = "100%";
this.lbCurrentPercentage.TextAlign = ContentAlignment.MiddleRight;
this.lbTotalPercentage.AutoSize = true;
this.lbTotalPercentage.BackColor = Color.Transparent;
this.lbTotalPercentage.Font = new Font("Microsoft Sans Serif", 9.75f, FontStyle.Bold, GraphicsUnit.Point, (byte) 0);
this.lbTotalPercentage.ImageAlign = ContentAlignment.MiddleRight;
this.lbTotalPercentage.Location = new Point(370, 87);
this.lbTotalPercentage.Name = "lbTotalPercentage";
this.lbTotalPercentage.Size = new Size(45, 16);
this.lbTotalPercentage.TabIndex = 10;
this.lbTotalPercentage.Text = "100%";
this.lbTotalPercentage.TextAlign = ContentAlignment.MiddleRight;
this.lbOutput.AutoEllipsis = true;
this.lbOutput.Location = new Point(51, 43);
this.lbOutput.Name = "lbOutput";
this.lbOutput.Size = new Size(358, 14);
this.lbOutput.TabIndex = 8;
this.lbInput.AutoEllipsis = true;
this.lbInput.Location = new Point(51, 20);
this.lbInput.Name = "lbInput";
this.lbInput.Size = new Size(358, 14);
this.lbInput.TabIndex = 7;
this.btCancel.DialogResult = DialogResult.Cancel;
this.btCancel.FlatStyle = FlatStyle.Popup;
this.btCancel.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btCancel.ForeColor = Color.FromArgb(248, 48, 0);
this.btCancel.Location = new Point(156, 108);
this.btCancel.Name = "btCancel";
this.btCancel.Size = new Size(108, 22);
this.btCancel.TabIndex = 6;
this.btCancel.Text = "Cancel";
this.btCancel.UseVisualStyleBackColor = false;
this.btCancel.Click += new EventHandler(this.btCancel_Click);
this.progressBarTotal.Location = new Point(8, 87);
this.progressBarTotal.Name = "progressBarTotal";
this.progressBarTotal.Size = new Size(356, 15);
this.progressBarTotal.TabIndex = 4;
this.progressBarCurrent.Location = new Point(8, 66);
this.progressBarCurrent.Name = "progressBarCurrent";
this.progressBarCurrent.Size = new Size(356, 15);
this.progressBarCurrent.TabIndex = 3;
this.lbOutputTitle.AutoSize = true;
this.lbOutputTitle.Location = new Point(6, 43);
this.lbOutputTitle.Name = "lbOutputTitle";
this.lbOutputTitle.Size = new Size(42, 13);
this.lbOutputTitle.TabIndex = 1;
this.lbOutputTitle.Text = "Output:";
this.lbInputTitle.AutoSize = true;
this.lbInputTitle.Location = new Point(6, 20);
this.lbInputTitle.Name = "lbInputTitle";
this.lbInputTitle.Size = new Size(34, 13);
this.lbInputTitle.TabIndex = 0;
this.lbInputTitle.Text = "Input:";
this.lbInputTitle.TextAlign = ContentAlignment.MiddleLeft;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btCancel;
this.ClientSize = new Size(445, 161);
this.ControlBox = false;
this.Controls.Add((Control) this.groupBoxProgress);
this.DoubleBuffered = true;
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon");
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormProcess);
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "ProcessTitle";
this.groupBoxProgress.ResumeLayout(false);
this.groupBoxProgress.PerformLayout();
this.ResumeLayout(false);
}
internal class ProcessInfo
{
internal string ProcessTitle;
internal string ProcessSubTitle;
internal string ProcessTypeName;
internal static FormProcess.ProcessInfo GetProcessInfoForDesEncryptor() => new FormProcess.ProcessInfo()
{
ProcessTitle = Strings.DESEncryptorTitle,
ProcessSubTitle = Strings.DESEncryptorSubTitle,
ProcessTypeName = Strings.DESEncryptorTypeName
};
internal static FormProcess.ProcessInfo GetProcessInfoForDesDecryptor() => new FormProcess.ProcessInfo()
{
ProcessTitle = Strings.DESDecryptorTitle,
ProcessSubTitle = Strings.DESDecryptorSubTitle,
ProcessTypeName = Strings.DESDescriptorTypeName
};
internal static FormProcess.ProcessInfo GetProcessInfoForFileScanner() => new FormProcess.ProcessInfo()
{
ProcessTitle = Strings.FileScannerTitle,
ProcessSubTitle = Strings.FileScannerSubTitle,
ProcessTypeName = Strings.FileScannerTypeName
};
internal static FormProcess.ProcessInfo GetProcessInfoForDiscExtractor() => new FormProcess.ProcessInfo()
{
ProcessTitle = Strings.FileExtractorTitle,
ProcessSubTitle = Strings.FileExtractorSubTitle,
ProcessTypeName = Strings.FileExtractorTypeName
};
internal static FormProcess.ProcessInfo GetProcessInfoForRawToWavConverter() => new FormProcess.ProcessInfo()
{
ProcessTitle = Strings.Raw2WavConverterTitle,
ProcessSubTitle = Strings.Raw2WavConverterSubTitle,
ProcessTypeName = Strings.Raw2WavConverterTypeName
};
internal static FormProcess.ProcessInfo GetProcessInfoForGDEmuConverter() => new FormProcess.ProcessInfo()
{
ProcessTitle = Strings.GDEmuExporterTitle,
ProcessSubTitle = Strings.GDEmuExporterSubTitle,
ProcessTypeName = Strings.GDEmuExporterTypeName
};
}
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,363 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormSettings
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.Properties;
using GDRomExplorer.Resources;
using SEGATools.Disc;
using SEGATools.FileFormat;
using SEGATools.Registry;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormSettings : Form
{
private static readonly Logger.ILog logger = Logger.CreateLog();
private readonly List<FormSettings.CheckedListBoxItem> initialFileExtensions;
private IContainer components;
private TableLayoutPanel tableLayoutPanel;
private Button btSaveClose;
private Button btCancel;
private TabControl tabControl;
private TabPage tpAppSettings;
private TabPage tpImageReaderSettings;
private DiscFormatProvider discFormatProvider;
private GroupBox gbFileExtensions;
private CheckedListBox checkedListBox;
private FlowLayoutPanel flowLayoutPanel;
private LinkLabel lbCheckAll;
private LinkLabel lbSelectNone;
private TableLayoutPanel tableLayoutPanelImageReading;
private GroupBox gbImageReaderOptions;
private CheckBox cbComputePathTable;
private Label lbInfoPathTable;
public FormSettings()
{
this.InitializeComponent();
this.initialFileExtensions = new List<FormSettings.CheckedListBoxItem>();
this.FillFileAssociationList();
this.cbComputePathTable.Checked = Settings.Default.ImageReaderComputePathTable;
this.lbInfoPathTable.Text = Strings.SettingsInfoPathTable;
}
private string GetFileAssociationInfoName(string FileExtension) => "GDRomExplorer" + FileExtension;
private void FillFileAssociationList()
{
this.checkedListBox.Items.Clear();
foreach (IImageFileFormat ImageFileFormat in this.discFormatProvider.SupportedFileFormat)
{
for (int index = 0; index < ImageFileFormat.FileExtentions.Length; ++index)
{
string fileExtention = ImageFileFormat.FileExtentions[index];
string extentionDescription = ImageFileFormat.FileExtentionDescriptions[index];
bool application = this.IsExtensionAssociatedToApplication(fileExtention);
FormSettings.CheckedListBoxItem checkedListBoxItem = new FormSettings.CheckedListBoxItem(fileExtention, extentionDescription, ImageFileFormat);
if (application)
this.initialFileExtensions.Add(checkedListBoxItem);
this.checkedListBox.Items.Add((object) checkedListBoxItem, application);
}
}
}
private bool IsExtensionAssociatedToApplication(string fileExtension)
{
FileAssociationInfo fileAssociationInfo = new FileAssociationInfo(fileExtension);
return fileAssociationInfo.Exists && fileAssociationInfo.ProgID.Equals(this.GetFileAssociationInfoName(fileExtension));
}
private void AddFileAssociation(FormSettings.CheckedListBoxItem item)
{
FileAssociationInfo fileAssociationInfo = new FileAssociationInfo(item.FileExtension);
fileAssociationInfo.Create(this.GetFileAssociationInfoName(item.FileExtension));
string fullPath = Path.GetFullPath(Environment.GetCommandLineArgs()[0]);
ProgramAssociationInfo programAssociationInfo = new ProgramAssociationInfo(fileAssociationInfo.ProgID);
programAssociationInfo.Create(item.FileDescription, new ProgramVerb("Open", fullPath + " \"%1\""));
string path = fullPath;
programAssociationInfo.DefaultIcon = new ProgramIcon(path, 1);
}
private void RemoveFileAssociation(string fileExtension)
{
FileAssociationInfo fileAssociationInfo = new FileAssociationInfo(fileExtension);
if (!this.IsExtensionAssociatedToApplication(fileExtension))
return;
ProgramAssociationInfo programAssociationInfo = new ProgramAssociationInfo(fileAssociationInfo.ProgID);
if (programAssociationInfo.Exists)
programAssociationInfo.Delete();
fileAssociationInfo.Delete();
}
private void UpdateFileExtensions()
{
FormSettings.logger.Info((object) "Updating file extensions");
foreach (FormSettings.CheckedListBoxItem checkedListBoxItem in (ListBox.ObjectCollection) this.checkedListBox.Items)
{
bool flag1 = this.initialFileExtensions.Contains(checkedListBoxItem);
bool flag2 = this.checkedListBox.CheckedItems.Contains((object) checkedListBoxItem);
if (!flag1 && flag2)
this.AddFileAssociation(checkedListBoxItem);
if (flag1 && !flag2)
this.RemoveFileAssociation(checkedListBoxItem.FileExtension);
}
}
private void UpdateImageReaderSettings()
{
FormSettings.logger.Info((object) "Updating image reader settings");
Settings.Default.ImageReaderComputePathTable = this.cbComputePathTable.Checked;
}
private void btSaveClose_Click(object sender, EventArgs e)
{
this.UpdateFileExtensions();
this.UpdateImageReaderSettings();
AppStatus.NotifyNewAppStatus(Strings.SettingsSaved);
}
private void lbSelectNone_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
for (int index = 0; index < this.checkedListBox.Items.Count; ++index)
this.checkedListBox.SetItemChecked(index, false);
}
private void lbCheckAll_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
for (int index = 0; index < this.checkedListBox.Items.Count; ++index)
this.checkedListBox.SetItemChecked(index, true);
}
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.tableLayoutPanel = new TableLayoutPanel();
this.btCancel = new Button();
this.btSaveClose = new Button();
this.tabControl = new TabControl();
this.tpAppSettings = new TabPage();
this.gbFileExtensions = new GroupBox();
this.flowLayoutPanel = new FlowLayoutPanel();
this.lbCheckAll = new LinkLabel();
this.lbSelectNone = new LinkLabel();
this.checkedListBox = new CheckedListBox();
this.tpImageReaderSettings = new TabPage();
this.tableLayoutPanelImageReading = new TableLayoutPanel();
this.gbImageReaderOptions = new GroupBox();
this.lbInfoPathTable = new Label();
this.cbComputePathTable = new CheckBox();
this.discFormatProvider = new DiscFormatProvider();
this.tableLayoutPanel.SuspendLayout();
this.tabControl.SuspendLayout();
this.tpAppSettings.SuspendLayout();
this.gbFileExtensions.SuspendLayout();
this.flowLayoutPanel.SuspendLayout();
this.tpImageReaderSettings.SuspendLayout();
this.tableLayoutPanelImageReading.SuspendLayout();
this.gbImageReaderOptions.SuspendLayout();
this.SuspendLayout();
this.tableLayoutPanel.ColumnCount = 2;
this.tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50f));
this.tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50f));
this.tableLayoutPanel.Controls.Add((Control) this.btCancel, 0, 1);
this.tableLayoutPanel.Controls.Add((Control) this.btSaveClose, 1, 1);
this.tableLayoutPanel.Controls.Add((Control) this.tabControl, 0, 0);
this.tableLayoutPanel.Dock = DockStyle.Fill;
this.tableLayoutPanel.Location = new Point(0, 0);
this.tableLayoutPanel.Name = "tableLayoutPanel";
this.tableLayoutPanel.RowCount = 2;
this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 89.3617f));
this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 10.6383f));
this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20f));
this.tableLayoutPanel.Size = new Size(271, 235);
this.tableLayoutPanel.TabIndex = 0;
this.btCancel.DialogResult = DialogResult.Cancel;
this.btCancel.Dock = DockStyle.Fill;
this.btCancel.FlatStyle = FlatStyle.Popup;
this.btCancel.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btCancel.ForeColor = Color.FromArgb(248, 48, 0);
this.btCancel.Location = new Point(3, 212);
this.btCancel.Name = "btCancel";
this.btCancel.Size = new Size(129, 20);
this.btCancel.TabIndex = 11;
this.btCancel.Text = "&Cancel";
this.btCancel.UseVisualStyleBackColor = false;
this.btSaveClose.DialogResult = DialogResult.Cancel;
this.btSaveClose.Dock = DockStyle.Fill;
this.btSaveClose.FlatStyle = FlatStyle.Popup;
this.btSaveClose.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btSaveClose.ForeColor = Color.FromArgb(248, 48, 0);
this.btSaveClose.Location = new Point(138, 212);
this.btSaveClose.Name = "btSaveClose";
this.btSaveClose.Size = new Size(130, 20);
this.btSaveClose.TabIndex = 10;
this.btSaveClose.Text = "&OK";
this.btSaveClose.UseVisualStyleBackColor = false;
this.btSaveClose.Click += new EventHandler(this.btSaveClose_Click);
this.tableLayoutPanel.SetColumnSpan((Control) this.tabControl, 2);
this.tabControl.Controls.Add((Control) this.tpAppSettings);
this.tabControl.Controls.Add((Control) this.tpImageReaderSettings);
this.tabControl.Dock = DockStyle.Fill;
this.tabControl.Location = new Point(3, 3);
this.tabControl.Name = "tabControl";
this.tabControl.SelectedIndex = 0;
this.tabControl.Size = new Size(265, 203);
this.tabControl.TabIndex = 12;
this.tpAppSettings.BackColor = SystemColors.Window;
this.tpAppSettings.Controls.Add((Control) this.gbFileExtensions);
this.tpAppSettings.Location = new Point(4, 22);
this.tpAppSettings.Name = "tpAppSettings";
this.tpAppSettings.Padding = new Padding(3);
this.tpAppSettings.Size = new Size(257, 177);
this.tpAppSettings.TabIndex = 0;
this.tpAppSettings.Text = "General";
this.gbFileExtensions.BackColor = SystemColors.Window;
this.gbFileExtensions.Controls.Add((Control) this.flowLayoutPanel);
this.gbFileExtensions.Controls.Add((Control) this.checkedListBox);
this.gbFileExtensions.Dock = DockStyle.Top;
this.gbFileExtensions.Location = new Point(3, 3);
this.gbFileExtensions.Name = "gbFileExtensions";
this.gbFileExtensions.Size = new Size(251, 167);
this.gbFileExtensions.TabIndex = 1;
this.gbFileExtensions.TabStop = false;
this.gbFileExtensions.Text = "File Extensions:";
this.flowLayoutPanel.Controls.Add((Control) this.lbCheckAll);
this.flowLayoutPanel.Controls.Add((Control) this.lbSelectNone);
this.flowLayoutPanel.Dock = DockStyle.Bottom;
this.flowLayoutPanel.Location = new Point(3, 147);
this.flowLayoutPanel.Name = "flowLayoutPanel";
this.flowLayoutPanel.Size = new Size(245, 17);
this.flowLayoutPanel.TabIndex = 3;
this.lbCheckAll.AutoSize = true;
this.lbCheckAll.Dock = DockStyle.Bottom;
this.lbCheckAll.Location = new Point(3, 0);
this.lbCheckAll.Name = "lbCheckAll";
this.lbCheckAll.Size = new Size(48, 13);
this.lbCheckAll.TabIndex = 6;
this.lbCheckAll.TabStop = true;
this.lbCheckAll.Text = "select all";
this.lbCheckAll.LinkClicked += new LinkLabelLinkClickedEventHandler(this.lbCheckAll_LinkClicked);
this.lbSelectNone.AutoSize = true;
this.lbSelectNone.Dock = DockStyle.Bottom;
this.lbSelectNone.Location = new Point(57, 0);
this.lbSelectNone.Name = "lbSelectNone";
this.lbSelectNone.Size = new Size(62, 13);
this.lbSelectNone.TabIndex = 7;
this.lbSelectNone.TabStop = true;
this.lbSelectNone.Text = "select none";
this.lbSelectNone.LinkClicked += new LinkLabelLinkClickedEventHandler(this.lbSelectNone_LinkClicked);
this.checkedListBox.CheckOnClick = true;
this.checkedListBox.Dock = DockStyle.Top;
this.checkedListBox.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.checkedListBox.FormattingEnabled = true;
this.checkedListBox.Location = new Point(3, 16);
this.checkedListBox.Name = "checkedListBox";
this.checkedListBox.Size = new Size(245, 124);
this.checkedListBox.Sorted = true;
this.checkedListBox.TabIndex = 1;
this.tpImageReaderSettings.BackColor = SystemColors.Window;
this.tpImageReaderSettings.Controls.Add((Control) this.tableLayoutPanelImageReading);
this.tpImageReaderSettings.Location = new Point(4, 22);
this.tpImageReaderSettings.Name = "tpImageReaderSettings";
this.tpImageReaderSettings.Padding = new Padding(3);
this.tpImageReaderSettings.Size = new Size(257, 177);
this.tpImageReaderSettings.TabIndex = 1;
this.tpImageReaderSettings.Text = "Image Reading";
this.tableLayoutPanelImageReading.BackColor = Color.Transparent;
this.tableLayoutPanelImageReading.ColumnCount = 1;
this.tableLayoutPanelImageReading.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50f));
this.tableLayoutPanelImageReading.Controls.Add((Control) this.gbImageReaderOptions, 0, 0);
this.tableLayoutPanelImageReading.Dock = DockStyle.Fill;
this.tableLayoutPanelImageReading.Location = new Point(3, 3);
this.tableLayoutPanelImageReading.Name = "tableLayoutPanelImageReading";
this.tableLayoutPanelImageReading.RowCount = 1;
this.tableLayoutPanelImageReading.RowStyles.Add(new RowStyle(SizeType.Percent, 50f));
this.tableLayoutPanelImageReading.Size = new Size(251, 171);
this.tableLayoutPanelImageReading.TabIndex = 0;
this.gbImageReaderOptions.Controls.Add((Control) this.lbInfoPathTable);
this.gbImageReaderOptions.Controls.Add((Control) this.cbComputePathTable);
this.gbImageReaderOptions.Dock = DockStyle.Top;
this.gbImageReaderOptions.Location = new Point(3, 3);
this.gbImageReaderOptions.Name = "gbImageReaderOptions";
this.gbImageReaderOptions.Size = new Size(245, 90);
this.gbImageReaderOptions.TabIndex = 0;
this.gbImageReaderOptions.TabStop = false;
this.gbImageReaderOptions.Text = "ISO9660 File System:";
this.lbInfoPathTable.Dock = DockStyle.Bottom;
this.lbInfoPathTable.Location = new Point(3, 40);
this.lbInfoPathTable.Name = "lbInfoPathTable";
this.lbInfoPathTable.Size = new Size(239, 47);
this.lbInfoPathTable.TabIndex = 1;
this.lbInfoPathTable.Text = "Info path table";
this.cbComputePathTable.AutoSize = true;
this.cbComputePathTable.Location = new Point(7, 20);
this.cbComputePathTable.Name = "cbComputePathTable";
this.cbComputePathTable.Size = new Size(118, 17);
this.cbComputePathTable.TabIndex = 0;
this.cbComputePathTable.Text = "Compute path table";
this.cbComputePathTable.UseVisualStyleBackColor = true;
this.AcceptButton = (IButtonControl) this.btSaveClose;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btCancel;
this.ClientSize = new Size(271, 235);
this.Controls.Add((Control) this.tableLayoutPanel);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormSettings);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Settings";
this.tableLayoutPanel.ResumeLayout(false);
this.tabControl.ResumeLayout(false);
this.tpAppSettings.ResumeLayout(false);
this.gbFileExtensions.ResumeLayout(false);
this.flowLayoutPanel.ResumeLayout(false);
this.flowLayoutPanel.PerformLayout();
this.tpImageReaderSettings.ResumeLayout(false);
this.tableLayoutPanelImageReading.ResumeLayout(false);
this.gbImageReaderOptions.ResumeLayout(false);
this.gbImageReaderOptions.PerformLayout();
this.ResumeLayout(false);
}
private class CheckedListBoxItem
{
public string FileExtension { get; private set; }
public string FileDescription { get; private set; }
public IImageFileFormat ImageFileFormat { get; private set; }
internal CheckedListBoxItem(
string FileExtension,
string FileDescription,
IImageFileFormat ImageFileFormat)
{
this.FileExtension = FileExtension;
this.FileDescription = FileDescription;
this.ImageFileFormat = ImageFileFormat;
}
public override string ToString() => string.Format("*{0} - {1}", (object) this.FileExtension.ToUpper(CultureInfo.InvariantCulture), (object) this.FileDescription);
}
}
}

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,158 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormSortFileOptions
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.Resources;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormSortFileOptions : Form
{
protected static string DEFAULT_PREFIX = "data\\";
protected static int DEFAULT_LOWEST_FILE_WEIGHT = 0;
private IContainer components;
private TextBox tbPathPrefix;
private Label lbDESKey;
private Button btGenerateSortFile;
private Button btCancel;
private Label lbLowestFileWeight;
private Label lbInfoSortFile;
private NumericUpDown nudFileWeight;
public string PathPrefix { get; private set; }
public int LowestFileWeight { get; private set; }
public FormSortFileOptions()
{
this.InitializeComponent();
this.PathPrefix = FormSortFileOptions.DEFAULT_PREFIX;
this.LowestFileWeight = FormSortFileOptions.DEFAULT_LOWEST_FILE_WEIGHT;
}
private void btCancel_Click(object sender, EventArgs e) => this.Close();
private void FormGetSortTxtPrefix_Load(object sender, EventArgs e)
{
this.lbInfoSortFile.Text = Strings.SortFileOptionsHint;
this.nudFileWeight.Value = (Decimal) this.LowestFileWeight;
this.tbPathPrefix.Text = this.PathPrefix;
this.tbPathPrefix.Focus();
}
private void btGenerateSortFile_Click(object sender, EventArgs e)
{
this.PathPrefix = this.tbPathPrefix.Text;
this.LowestFileWeight = Convert.ToInt32(this.nudFileWeight.Value);
}
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.tbPathPrefix = new TextBox();
this.lbDESKey = new Label();
this.btGenerateSortFile = new Button();
this.btCancel = new Button();
this.lbLowestFileWeight = new Label();
this.lbInfoSortFile = new Label();
this.nudFileWeight = new NumericUpDown();
this.nudFileWeight.BeginInit();
this.SuspendLayout();
this.tbPathPrefix.Location = new Point(78, 6);
this.tbPathPrefix.MaxLength = 0;
this.tbPathPrefix.Name = "tbPathPrefix";
this.tbPathPrefix.Size = new Size(130, 20);
this.tbPathPrefix.TabIndex = 0;
this.tbPathPrefix.Text = "data\\";
this.lbDESKey.AutoSize = true;
this.lbDESKey.Location = new Point(12, 9);
this.lbDESKey.Name = "lbDESKey";
this.lbDESKey.Size = new Size(60, 13);
this.lbDESKey.TabIndex = 2;
this.lbDESKey.Text = "Path prefix:";
this.btGenerateSortFile.DialogResult = DialogResult.OK;
this.btGenerateSortFile.FlatStyle = FlatStyle.Popup;
this.btGenerateSortFile.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btGenerateSortFile.ForeColor = Color.FromArgb(248, 48, 0);
this.btGenerateSortFile.Location = new Point(250, 102);
this.btGenerateSortFile.Name = "btGenerateSortFile";
this.btGenerateSortFile.Size = new Size((int) sbyte.MaxValue, 22);
this.btGenerateSortFile.TabIndex = 1;
this.btGenerateSortFile.Text = "&Generate sort file";
this.btGenerateSortFile.UseVisualStyleBackColor = false;
this.btGenerateSortFile.Click += new EventHandler(this.btGenerateSortFile_Click);
this.btCancel.DialogResult = DialogResult.Cancel;
this.btCancel.FlatStyle = FlatStyle.Popup;
this.btCancel.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btCancel.ForeColor = Color.FromArgb(248, 48, 0);
this.btCancel.Location = new Point(15, 102);
this.btCancel.Name = "btCancel";
this.btCancel.Size = new Size((int) sbyte.MaxValue, 22);
this.btCancel.TabIndex = 2;
this.btCancel.Text = "&Cancel";
this.btCancel.UseVisualStyleBackColor = false;
this.btCancel.Click += new EventHandler(this.btCancel_Click);
this.lbLowestFileWeight.AutoSize = true;
this.lbLowestFileWeight.Location = new Point(214, 9);
this.lbLowestFileWeight.Name = "lbLowestFileWeight";
this.lbLowestFileWeight.Size = new Size(94, 13);
this.lbLowestFileWeight.TabIndex = 3;
this.lbLowestFileWeight.Text = "Lowest file weight:";
this.lbInfoSortFile.Location = new Point(12, 35);
this.lbInfoSortFile.Name = "lbInfoSortFile";
this.lbInfoSortFile.Size = new Size(364, 64);
this.lbInfoSortFile.TabIndex = 0;
this.lbInfoSortFile.Text = "Info sort file";
this.nudFileWeight.Location = new Point(316, 7);
this.nudFileWeight.Maximum = new Decimal(new int[4]
{
int.MaxValue,
0,
0,
0
});
this.nudFileWeight.Name = "nudFileWeight";
this.nudFileWeight.Size = new Size(60, 20);
this.nudFileWeight.TabIndex = 1;
this.nudFileWeight.TextAlign = HorizontalAlignment.Center;
this.nudFileWeight.ThousandsSeparator = true;
this.AcceptButton = (IButtonControl) this.btGenerateSortFile;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btCancel;
this.ClientSize = new Size(389, 136);
this.Controls.Add((Control) this.nudFileWeight);
this.Controls.Add((Control) this.lbInfoSortFile);
this.Controls.Add((Control) this.lbLowestFileWeight);
this.Controls.Add((Control) this.btCancel);
this.Controls.Add((Control) this.btGenerateSortFile);
this.Controls.Add((Control) this.tbPathPrefix);
this.Controls.Add((Control) this.lbDESKey);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormSortFileOptions);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Sort file options:";
this.Load += new EventHandler(this.FormGetSortTxtPrefix_Load);
this.nudFileWeight.EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
}
}

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,446 @@
// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.GDRomExplorerForm
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.DiscView;
using GDRomExplorer.Events;
using GDRomExplorer.Resources;
using GDRomExplorer.UserControls;
using SEGATools.Audio;
using SEGATools.Disc;
using SEGATools.DiscFileSystem;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using System.Windows.Forms.Layout;
namespace GDRomExplorer.Forms
{
public class GDRomExplorerForm : Form
{
private static readonly Logger.ILog logger = Logger.CreateLog();
private IDiscFileSystem discFileSystem;
private DiscViewExplorer.ActionsForEditMenuItem editMenuActions;
private string initialDirectory;
private IContainer components;
private StatusStrip statusStrip;
private DiscViewOpener discViewOpener;
private ToolStripStatusLabel toolStripStatusLabel;
private DiscViewExplorer discView;
private ToolStripMenuItem fileToolStripMenuItem;
private ToolStripMenuItem openToolStripMenuItem;
private ToolStripMenuItem closeToolStripMenuItem;
private ToolStripMenuItem exitToolStripMenuItem;
private ToolStripMenuItem toolsToolStripMenuItem;
private ToolStripMenuItem ConvertToolStripMenuItem;
private ToolStripMenuItem naomiBinarydecryptionToolStripMenuItem;
private ToolStripSeparator toolStripSeparator;
private ToolStripMenuItem aboutToolStripMenuItem;
private ToolStripMenuItem aboutGDRomExplorerToolStripMenuItem;
private MenuStrip menuStrip;
private DiscFormatProvider discFormatProvider;
private ToolStripMenuItem settingsToolStripMenuItem;
private ToolStripMenuItem ipViewerToolStripMenuItem;
private InitialProgramOpener ipOpener;
private ToolStripMenuItem encryptANaomiBinaryToolStripMenuItem;
private NaomiEncryptDecryptTool naomiEncryptDecryptTool;
private ToolStripMenuItem convertGDIForGDEMUToolStripMenuItem;
private ToolStripSeparator toolStripSeparator1;
private ToolStripMenuItem editToolStripMenuItem;
private GDDAConverterTool gddaConverterTool;
public GDRomExplorerForm()
{
this.InitializeComponent();
this.Text = Assembly.GetExecutingAssembly().GetName().Name;
}
private void GDRomExplorerForm_Load(object sender, EventArgs e)
{
this.RemoveImageMargin(this.menuStrip);
this.MenuClose();
this.DragDrop += new DragEventHandler(this.GDRomExplorerForm_DragDrop);
this.DragEnter += new DragEventHandler(this.GDRomExplorerForm_DragEnter);
this.discViewOpener.ImageLoaded += new EventHandler<EventArgs<IDiscFileSystem>>(this.discViewOpener_ImageLoaded);
this.discViewOpener.ImageNotLoaded += new EventHandler(this.discViewOpener_ImageNotLoaded);
this.discView.SelectionChanged += new EventHandler<EventArgs<DiscViewExplorer.ActionsForEditMenuItem>>(this.discView_SelectionChanged);
AppStatus.OnAppStatusUpdate += new AppStatus.AppStatusUpdateEventHandler(this.AppStatus_OnAppStatusUpdate);
string progamArgument = Program.GetProgamArgument();
if (!string.IsNullOrEmpty(progamArgument))
this.UpdateDialogInitialDirectory(progamArgument);
else
this.UpdateDialogInitialDirectory(Assembly.GetExecutingAssembly().GetName().CodeBase);
if (string.IsNullOrEmpty(progamArgument))
return;
this.discViewOpener.Open(progamArgument);
}
private void AppStatus_OnAppStatusUpdate(string message)
{
string str = char.ToUpper(message[0]).ToString() + message.Substring(1);
this.toolStripStatusLabel.Text = str;
this.toolStripStatusLabel.ToolTipText = str;
}
private void GDRomExplorerForm_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.All;
else
e.Effect = DragDropEffects.None;
}
private void GDRomExplorerForm_DragDrop(object sender, DragEventArgs e)
{
string[] data = (string[]) e.Data.GetData(DataFormats.FileDrop, false);
if (data.Length == 1)
this.discViewOpener.Open(Path.GetFullPath(data[0]));
else
GDRomExplorerForm.logger.Error((object) "Unhandled data for the drag & drop operation!");
}
private void discViewOpener_ImageLoaded(object sender, EventArgs<IDiscFileSystem> e)
{
this.discFileSystem = e.Value;
this.MenuOpen();
this.UpdateDialogInitialDirectory(this.discFileSystem.FileName);
this.discView.LoadDisc(this.discFileSystem);
}
private void discViewOpener_ImageNotLoaded(object sender, EventArgs e)
{
this.discFileSystem = (IDiscFileSystem) null;
this.MenuClose();
}
private void discView_SelectionChanged(
object sender,
EventArgs<DiscViewExplorer.ActionsForEditMenuItem> e)
{
this.editMenuActions = e.Value;
if (!this.editMenuActions.AnyAvailable)
this.editToolStripMenuItem.Enabled = false;
else
this.editToolStripMenuItem.Enabled = true;
}
private void MenuClose()
{
this.toolStripStatusLabel.Text = Strings.StatusLabelImageNotLoaded;
this.closeToolStripMenuItem.Enabled = false;
this.editToolStripMenuItem.Enabled = false;
this.discView.CloseDisc();
}
private void MenuOpen()
{
this.closeToolStripMenuItem.Enabled = true;
this.editToolStripMenuItem.Enabled = true;
}
private void UpdateDialogInitialDirectory(string initialPath)
{
this.initialDirectory = Path.GetDirectoryName(initialPath);
this.gddaConverterTool.InitialDirectory = this.initialDirectory;
this.naomiEncryptDecryptTool.InitialDirectory = this.initialDirectory;
}
private void RemoveImageMargin(MenuStrip Menu)
{
foreach (ToolStripItem toolStripItem in (ArrangedElementCollection) Menu.Items)
this.RemoveItemImageMargin(toolStripItem);
}
private void RemoveItemImageMargin(ToolStripItem Item)
{
if (!(Item is ToolStripMenuItem))
return;
ToolStripMenuItem toolStripMenuItem = Item as ToolStripMenuItem;
(toolStripMenuItem.DropDown as ToolStripDropDownMenu).ShowImageMargin = false;
foreach (object dropDownItem in (ArrangedElementCollection) toolStripMenuItem.DropDownItems)
{
if (dropDownItem is ToolStripItem)
this.RemoveItemImageMargin(dropDownItem as ToolStripItem);
}
}
private void ToolStripMenuItemExit_Click(object sender, EventArgs e)
{
this.discViewOpener.Close();
this.discView.CloseDisc();
this.discFileSystem = (IDiscFileSystem) null;
Application.Exit();
}
private void ToolStripMenuItemClose_Click(object sender, EventArgs e) => this.discViewOpener.Close();
private void ToolStripMenuItemOpenImageFile_Click(object sender, EventArgs e) => this.discViewOpener.Open();
private void ToolStripMenuItemShowGDDAConverter_Click(object sender, EventArgs e) => this.gddaConverterTool.OpenAndConvertGDDAFiles((IWin32Window) this, AudioConversionSettings.defaultAudioConvOptions());
private void ToolStripMenuItemAboutGDRomExplorer_Click(object sender, EventArgs e)
{
using (FormAbout formAbout = new FormAbout())
{
int num = (int) formAbout.ShowDialog((IWin32Window) this);
}
}
private void ToolStripMenuItemExportGDIForGDEMU_Click(object sender, EventArgs e)
{
using (FormGDEmuExportSettings emuExportSettings = new FormGDEmuExportSettings(this.initialDirectory))
{
int num = (int) emuExportSettings.ShowDialog((IWin32Window) this);
}
}
private void ToolStripMenuItemEncryptNaomiBinary_Click(object sender, EventArgs e) => this.naomiEncryptDecryptTool.OpenAndEncryptNaomiBinary((IWin32Window) this);
private void ToolStripMenuItemDecryptNaomiBinary_Click(object sender, EventArgs e) => this.naomiEncryptDecryptTool.OpenAndDecryptNaomiBinary((IWin32Window) this);
private void ToolStripMenuItemSettings_Click(object sender, EventArgs e)
{
using (FormSettings formSettings = new FormSettings())
{
int num = (int) formSettings.ShowDialog((IWin32Window) this);
}
}
private void ToolStripMenuItemIPViewer_Click(object sender, EventArgs e) => this.ipOpener.OpenAndViewInitialProgram((IWin32Window) this);
private void ToolStripMenuItemEdit_DropDownOpening(object sender, EventArgs e)
{
this.editToolStripMenuItem.DropDownItems.Clear();
this.editToolStripMenuItem.DropDownItems.AddRange(MenuItemFactory.CreateEditMenuItems(this.editMenuActions.DiscMenuItems, this.editMenuActions.SelectionMenuItems));
this.RemoveItemImageMargin((ToolStripItem) this.editToolStripMenuItem);
}
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.components = (IContainer) new Container();
ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (GDRomExplorerForm));
this.statusStrip = new StatusStrip();
this.toolStripStatusLabel = new ToolStripStatusLabel();
this.fileToolStripMenuItem = new ToolStripMenuItem();
this.openToolStripMenuItem = new ToolStripMenuItem();
this.closeToolStripMenuItem = new ToolStripMenuItem();
this.exitToolStripMenuItem = new ToolStripMenuItem();
this.toolsToolStripMenuItem = new ToolStripMenuItem();
this.ipViewerToolStripMenuItem = new ToolStripMenuItem();
this.ConvertToolStripMenuItem = new ToolStripMenuItem();
this.convertGDIForGDEMUToolStripMenuItem = new ToolStripMenuItem();
this.toolStripSeparator1 = new ToolStripSeparator();
this.encryptANaomiBinaryToolStripMenuItem = new ToolStripMenuItem();
this.naomiBinarydecryptionToolStripMenuItem = new ToolStripMenuItem();
this.toolStripSeparator = new ToolStripSeparator();
this.settingsToolStripMenuItem = new ToolStripMenuItem();
this.aboutToolStripMenuItem = new ToolStripMenuItem();
this.aboutGDRomExplorerToolStripMenuItem = new ToolStripMenuItem();
this.menuStrip = new MenuStrip();
this.editToolStripMenuItem = new ToolStripMenuItem();
this.discFormatProvider = new DiscFormatProvider(this.components);
this.discView = new DiscViewExplorer();
this.discViewOpener = new DiscViewOpener();
this.ipOpener = new InitialProgramOpener();
this.naomiEncryptDecryptTool = new NaomiEncryptDecryptTool(this.components);
this.gddaConverterTool = new GDDAConverterTool(this.components);
this.statusStrip.SuspendLayout();
this.menuStrip.SuspendLayout();
this.SuspendLayout();
this.statusStrip.BackColor = Color.Transparent;
this.statusStrip.Items.AddRange(new ToolStripItem[1]
{
(ToolStripItem) this.toolStripStatusLabel
});
this.statusStrip.Location = new Point(0, 540);
this.statusStrip.Name = "statusStrip";
this.statusStrip.ShowItemToolTips = true;
this.statusStrip.Size = new Size(784, 22);
this.statusStrip.TabIndex = 27;
this.statusStrip.Text = "statusStrip";
this.toolStripStatusLabel.AutoToolTip = true;
this.toolStripStatusLabel.DisplayStyle = ToolStripItemDisplayStyle.Text;
this.toolStripStatusLabel.Margin = new Padding(3, 3, 0, 2);
this.toolStripStatusLabel.Name = "toolStripStatusLabel";
this.toolStripStatusLabel.Size = new Size(766, 17);
this.toolStripStatusLabel.Spring = true;
this.toolStripStatusLabel.Text = "AppStatus";
this.toolStripStatusLabel.TextAlign = ContentAlignment.MiddleLeft;
this.fileToolStripMenuItem.DisplayStyle = ToolStripItemDisplayStyle.Text;
this.fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[3]
{
(ToolStripItem) this.openToolStripMenuItem,
(ToolStripItem) this.closeToolStripMenuItem,
(ToolStripItem) this.exitToolStripMenuItem
});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new Size(37, 20);
this.fileToolStripMenuItem.Text = "&File";
this.openToolStripMenuItem.BackColor = SystemColors.Window;
this.openToolStripMenuItem.BackgroundImageLayout = ImageLayout.None;
this.openToolStripMenuItem.DisplayStyle = ToolStripItemDisplayStyle.Text;
this.openToolStripMenuItem.Name = "openToolStripMenuItem";
this.openToolStripMenuItem.ShortcutKeys = Keys.O | Keys.Control;
this.openToolStripMenuItem.Size = new Size(155, 22);
this.openToolStripMenuItem.Text = "&Open...";
this.openToolStripMenuItem.TextImageRelation = TextImageRelation.TextAboveImage;
this.openToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemOpenImageFile_Click);
this.closeToolStripMenuItem.BackColor = SystemColors.Window;
this.closeToolStripMenuItem.Name = "closeToolStripMenuItem";
this.closeToolStripMenuItem.Size = new Size(155, 22);
this.closeToolStripMenuItem.Text = "Close";
this.closeToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemClose_Click);
this.exitToolStripMenuItem.BackColor = SystemColors.Window;
this.exitToolStripMenuItem.DisplayStyle = ToolStripItemDisplayStyle.Text;
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.ShortcutKeys = Keys.F4 | Keys.Alt;
this.exitToolStripMenuItem.Size = new Size(155, 22);
this.exitToolStripMenuItem.Text = "Exit";
this.exitToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemExit_Click);
this.toolsToolStripMenuItem.DisplayStyle = ToolStripItemDisplayStyle.Text;
this.toolsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[8]
{
(ToolStripItem) this.ipViewerToolStripMenuItem,
(ToolStripItem) this.ConvertToolStripMenuItem,
(ToolStripItem) this.convertGDIForGDEMUToolStripMenuItem,
(ToolStripItem) this.toolStripSeparator1,
(ToolStripItem) this.encryptANaomiBinaryToolStripMenuItem,
(ToolStripItem) this.naomiBinarydecryptionToolStripMenuItem,
(ToolStripItem) this.toolStripSeparator,
(ToolStripItem) this.settingsToolStripMenuItem
});
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
this.toolsToolStripMenuItem.Size = new Size(48, 20);
this.toolsToolStripMenuItem.Text = "&Tools";
this.ipViewerToolStripMenuItem.Name = "ipViewerToolStripMenuItem";
this.ipViewerToolStripMenuItem.ShortcutKeys = Keys.I | Keys.Control;
this.ipViewerToolStripMenuItem.Size = new Size(242, 22);
this.ipViewerToolStripMenuItem.Text = "IP.BIN Viewer";
this.ipViewerToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemIPViewer_Click);
this.ConvertToolStripMenuItem.BackColor = SystemColors.Window;
this.ConvertToolStripMenuItem.Name = "ConvertToolStripMenuItem";
this.ConvertToolStripMenuItem.ShortcutKeys = Keys.T | Keys.Control;
this.ConvertToolStripMenuItem.Size = new Size(242, 22);
this.ConvertToolStripMenuItem.Text = "Convert audio tracks";
this.ConvertToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemShowGDDAConverter_Click);
this.convertGDIForGDEMUToolStripMenuItem.Name = "convertGDIForGDEMUToolStripMenuItem";
this.convertGDIForGDEMUToolStripMenuItem.ShortcutKeys = Keys.G | Keys.Control;
this.convertGDIForGDEMUToolStripMenuItem.Size = new Size(242, 22);
this.convertGDIForGDEMUToolStripMenuItem.Text = "Convert GDI for GDEMU";
this.convertGDIForGDEMUToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemExportGDIForGDEMU_Click);
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new Size(239, 6);
this.encryptANaomiBinaryToolStripMenuItem.Name = "encryptANaomiBinaryToolStripMenuItem";
this.encryptANaomiBinaryToolStripMenuItem.ShortcutKeys = Keys.E | Keys.Control;
this.encryptANaomiBinaryToolStripMenuItem.Size = new Size(242, 22);
this.encryptANaomiBinaryToolStripMenuItem.Text = "&Encrypt a Naomi binary";
this.encryptANaomiBinaryToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemEncryptNaomiBinary_Click);
this.naomiBinarydecryptionToolStripMenuItem.BackColor = SystemColors.Window;
this.naomiBinarydecryptionToolStripMenuItem.Name = "naomiBinarydecryptionToolStripMenuItem";
this.naomiBinarydecryptionToolStripMenuItem.ShortcutKeys = Keys.D | Keys.Control;
this.naomiBinarydecryptionToolStripMenuItem.Size = new Size(242, 22);
this.naomiBinarydecryptionToolStripMenuItem.Text = "&Decrypt a Naomi binary";
this.naomiBinarydecryptionToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemDecryptNaomiBinary_Click);
this.toolStripSeparator.BackColor = SystemColors.Window;
this.toolStripSeparator.ForeColor = SystemColors.ControlText;
this.toolStripSeparator.Name = "toolStripSeparator";
this.toolStripSeparator.Size = new Size(239, 6);
this.settingsToolStripMenuItem.BackColor = SystemColors.Window;
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.Size = new Size(242, 22);
this.settingsToolStripMenuItem.Text = "Settings";
this.settingsToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemSettings_Click);
this.aboutToolStripMenuItem.BackColor = SystemColors.Window;
this.aboutToolStripMenuItem.DisplayStyle = ToolStripItemDisplayStyle.Text;
this.aboutToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[1]
{
(ToolStripItem) this.aboutGDRomExplorerToolStripMenuItem
});
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
this.aboutToolStripMenuItem.Size = new Size(24, 20);
this.aboutToolStripMenuItem.Text = "?";
this.aboutGDRomExplorerToolStripMenuItem.BackColor = SystemColors.Window;
this.aboutGDRomExplorerToolStripMenuItem.Name = "aboutGDRomExplorerToolStripMenuItem";
this.aboutGDRomExplorerToolStripMenuItem.Size = new Size(107, 22);
this.aboutGDRomExplorerToolStripMenuItem.Text = "About";
this.aboutGDRomExplorerToolStripMenuItem.Click += new EventHandler(this.ToolStripMenuItemAboutGDRomExplorer_Click);
this.menuStrip.BackColor = SystemColors.Window;
this.menuStrip.Items.AddRange(new ToolStripItem[4]
{
(ToolStripItem) this.fileToolStripMenuItem,
(ToolStripItem) this.editToolStripMenuItem,
(ToolStripItem) this.toolsToolStripMenuItem,
(ToolStripItem) this.aboutToolStripMenuItem
});
this.menuStrip.Location = new Point(0, 0);
this.menuStrip.Name = "menuStrip";
this.menuStrip.ShowItemToolTips = true;
this.menuStrip.Size = new Size(784, 24);
this.menuStrip.TabIndex = 25;
this.menuStrip.Text = "menuStrip";
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
this.editToolStripMenuItem.Size = new Size(39, 20);
this.editToolStripMenuItem.Text = "&Edit";
this.editToolStripMenuItem.DropDownOpening += new EventHandler(this.ToolStripMenuItemEdit_DropDownOpening);
this.discView.AutoSize = true;
this.discView.BackColor = SystemColors.Window;
this.discView.Dock = DockStyle.Fill;
this.discView.Location = new Point(0, 82);
this.discView.Name = "discView";
this.discView.Padding = new Padding(4);
this.discView.Size = new Size(784, 458);
this.discView.TabIndex = 31;
this.discViewOpener.AutoSize = true;
this.discViewOpener.ButtonText = "&Open";
this.discViewOpener.Dock = DockStyle.Top;
this.discViewOpener.FileDialogFilters = (List<string>) null;
this.discViewOpener.InitialDirectory = "";
this.discViewOpener.Location = new Point(0, 24);
this.discViewOpener.MinimumSize = new Size(0, 58);
this.discViewOpener.Name = "discViewOpener";
this.discViewOpener.NotifyStatusEvents = true;
this.discViewOpener.Padding = new Padding(4);
this.discViewOpener.Size = new Size(784, 58);
this.discViewOpener.TabIndex = 28;
this.AllowDrop = true;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.AutoScroll = true;
this.AutoSize = true;
this.BackColor = SystemColors.Window;
this.BackgroundImageLayout = ImageLayout.None;
this.ClientSize = new Size(784, 562);
this.Controls.Add((Control) this.discView);
this.Controls.Add((Control) this.discViewOpener);
this.Controls.Add((Control) this.statusStrip);
this.Controls.Add((Control) this.menuStrip);
this.DoubleBuffered = true;
this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon");
this.MainMenuStrip = this.menuStrip;
this.MinimumSize = new Size(800, 600);
this.Name = nameof (GDRomExplorerForm);
this.StartPosition = FormStartPosition.CenterScreen;
this.Text = "GD-ROM Explorer";
this.Load += new EventHandler(this.GDRomExplorerForm_Load);
this.statusStrip.ResumeLayout(false);
this.statusStrip.PerformLayout();
this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
}
}

File diff suppressed because one or more lines are too long