Button to edit encoder advanced settings in CUERipper

This commit is contained in:
Grigory Chudov
2013-04-08 22:26:42 -04:00
parent 373097661f
commit d1e70fc7f3
5 changed files with 122 additions and 47 deletions

View File

@@ -14,9 +14,9 @@ namespace CUERipper
{
public partial class Options : Form
{
private CUEConfig config;
private object config;
public Options(CUEConfig config)
public Options(object config)
{
this.config = config;
this.InitializeComponent();
@@ -24,7 +24,7 @@ namespace CUERipper
private void Options_Load(object sender, EventArgs e)
{
this.propertyGrid1.SelectedObject = new CUERipperSettings(this.config);
this.propertyGrid1.SelectedObject = this.config;
}
}

View File

@@ -56,6 +56,7 @@ namespace CUERipper
this.numericWriteOffset = new System.Windows.Forms.NumericUpDown();
this.lblWriteOffset = new System.Windows.Forms.Label();
this.groupBoxSettings = new System.Windows.Forms.GroupBox();
this.buttonEncoderSettings = new System.Windows.Forms.Button();
this.checkBoxTestAndCopy = new System.Windows.Forms.CheckBox();
this.bnComboBoxLosslessOrNot = new CUEControls.ImgComboBox();
this.losslessOrNotBindingSource = new System.Windows.Forms.BindingSource(this.components);
@@ -283,6 +284,7 @@ namespace CUERipper
//
// groupBoxSettings
//
this.groupBoxSettings.Controls.Add(this.buttonEncoderSettings);
this.groupBoxSettings.Controls.Add(this.checkBoxTestAndCopy);
this.groupBoxSettings.Controls.Add(this.bnComboBoxLosslessOrNot);
this.groupBoxSettings.Controls.Add(this.bnComboBoxEncoder);
@@ -300,6 +302,14 @@ namespace CUERipper
this.groupBoxSettings.Name = "groupBoxSettings";
this.groupBoxSettings.TabStop = false;
//
// buttonEncoderSettings
//
this.buttonEncoderSettings.BackgroundImage = global::CUERipper.Properties.Resources.cog;
resources.ApplyResources(this.buttonEncoderSettings, "buttonEncoderSettings");
this.buttonEncoderSettings.Name = "buttonEncoderSettings";
this.buttonEncoderSettings.UseVisualStyleBackColor = true;
this.buttonEncoderSettings.Click += new System.EventHandler(this.buttonEncoderSettings_Click);
//
// checkBoxTestAndCopy
//
resources.ApplyResources(this.checkBoxTestAndCopy, "checkBoxTestAndCopy");
@@ -887,6 +897,7 @@ namespace CUERipper
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.Panel panel6;
private System.Windows.Forms.Panel panel7;
private System.Windows.Forms.Button buttonEncoderSettings;
}
}

View File

@@ -994,6 +994,35 @@ namespace CUERipper
}
}
private void resetEncoderModes(CUEToolsUDC encoder)
{
if (encoder.settings != null)
{
encoder.settings.PCM = AudioPCMConfig.RedBook;
buttonEncoderSettings.Enabled = encoder.settings.HasBrowsableAttributes();
}
string[] modes = encoder.SupportedModes;
if (modes == null || modes.Length < 2)
{
trackBarEncoderMode.Visible = false;
labelEncoderMode.Visible = false;
labelEncoderMinMode.Visible = false;
labelEncoderMaxMode.Visible = false;
}
else
{
trackBarEncoderMode.Maximum = modes.Length - 1;
trackBarEncoderMode.Value = encoder.DefaultModeIndex == -1 ? modes.Length - 1 : encoder.DefaultModeIndex;
labelEncoderMode.Text = encoder.EncoderMode;
labelEncoderMinMode.Text = modes[0];
labelEncoderMaxMode.Text = modes[modes.Length - 1];
trackBarEncoderMode.Visible = true;
labelEncoderMode.Visible = true;
labelEncoderMinMode.Visible = true;
labelEncoderMaxMode.Visible = true;
}
}
private void bnComboBoxEncoder_SelectedValueChanged(object sender, EventArgs e)
{
if (SelectedOutputAudioFormat == null)
@@ -1005,27 +1034,7 @@ namespace CUERipper
SelectedOutputAudioFmt.encoderLossless = encoder;
else
SelectedOutputAudioFmt.encoderLossy = encoder;
if (encoder.settings != null) encoder.settings.PCM = AudioPCMConfig.RedBook;
string[] modes = encoder.SupportedModes;
if (modes == null || modes.Length < 2)
{
trackBarEncoderMode.Visible = false;
labelEncoderMode.Visible = false;
labelEncoderMinMode.Visible = false;
labelEncoderMaxMode.Visible = false;
}
else
{
trackBarEncoderMode.Maximum = modes.Length - 1;
trackBarEncoderMode.Value = encoder.DefaultModeIndex == -1 ? modes.Length - 1 : encoder.DefaultModeIndex;
labelEncoderMode.Text = encoder.EncoderMode;
labelEncoderMinMode.Text = modes[0];
labelEncoderMaxMode.Text = modes[modes.Length - 1];
trackBarEncoderMode.Visible = true;
labelEncoderMode.Visible = true;
labelEncoderMinMode.Visible = true;
labelEncoderMaxMode.Visible = true;
}
resetEncoderModes(encoder);
}
private void trackBarEncoderMode_Scroll(object sender, EventArgs e)
@@ -1552,7 +1561,7 @@ namespace CUERipper
private void buttonSettings_Click(object sender, EventArgs e)
{
var form = new Options(this._config);
var form = new Options(new CUERipperSettings(this._config));
form.ShowDialog(this);
}
@@ -1574,6 +1583,18 @@ namespace CUERipper
cueRipperConfig.DriveOffsets[selectedDriveInfo.drive.ARName] = (int)numericWriteOffset.Value;
}
}
private void buttonEncoderSettings_Click(object sender, EventArgs e)
{
CUEToolsUDC encoder = bnComboBoxEncoder.SelectedItem as CUEToolsUDC;
if (encoder == null)
return;
if (encoder.settings == null)
return;
var form = new Options(encoder.settings);
form.ShowDialog(this);
resetEncoderModes(encoder);
}
}
internal class BackgroundWorkerArtworkArgs

View File

@@ -383,7 +383,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;numericWriteOffset.ZOrder" xml:space="preserve">
<value>12</value>
<value>13</value>
</data>
<data name="lblWriteOffset.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@@ -413,13 +413,40 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;lblWriteOffset.ZOrder" xml:space="preserve">
<value>11</value>
<value>12</value>
</data>
<data name="buttonEncoderSettings.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Stretch</value>
</data>
<data name="buttonEncoderSettings.Location" type="System.Drawing.Point, System.Drawing">
<value>83, 46</value>
</data>
<data name="buttonEncoderSettings.Size" type="System.Drawing.Size, System.Drawing">
<value>21, 21</value>
</data>
<data name="buttonEncoderSettings.TabIndex" type="System.Int32, mscorlib">
<value>35</value>
</data>
<data name="buttonEncoderSettings.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;buttonEncoderSettings.Name" xml:space="preserve">
<value>buttonEncoderSettings</value>
</data>
<data name="&gt;&gt;buttonEncoderSettings.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonEncoderSettings.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;buttonEncoderSettings.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="checkBoxTestAndCopy.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="checkBoxTestAndCopy.Location" type="System.Drawing.Point, System.Drawing">
<value>206, 48</value>
<value>212, 48</value>
</data>
<data name="checkBoxTestAndCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
@@ -440,7 +467,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;checkBoxTestAndCopy.ZOrder" xml:space="preserve">
<value>0</value>
<value>1</value>
</data>
<metadata name="losslessOrNotBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 95</value>
@@ -455,7 +482,7 @@
<value>40, 0</value>
</data>
<data name="bnComboBoxLosslessOrNot.Size" type="System.Drawing.Size, System.Drawing">
<value>82, 21</value>
<value>70, 21</value>
</data>
<data name="bnComboBoxLosslessOrNot.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@@ -473,19 +500,19 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;bnComboBoxLosslessOrNot.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<metadata name="encodersBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1217, 56</value>
</metadata>
<data name="bnComboBoxEncoder.Location" type="System.Drawing.Point, System.Drawing">
<value>94, 46</value>
<value>105, 46</value>
</data>
<data name="bnComboBoxEncoder.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>40, 0</value>
</data>
<data name="bnComboBoxEncoder.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 21</value>
<value>90, 21</value>
</data>
<data name="bnComboBoxEncoder.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@@ -503,7 +530,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;bnComboBoxEncoder.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="labelSecureMode.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
@@ -530,16 +557,16 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;labelSecureMode.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<metadata name="formatsBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1045, 56</value>
</metadata>
<data name="bnComboBoxFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>94, 19</value>
<value>83, 19</value>
</data>
<data name="bnComboBoxFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 21</value>
<value>112, 21</value>
</data>
<data name="bnComboBoxFormat.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@@ -557,7 +584,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;bnComboBoxFormat.ZOrder" xml:space="preserve">
<value>4</value>
<value>5</value>
</data>
<data name="labelEncoderMinMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@@ -596,7 +623,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;labelEncoderMinMode.ZOrder" xml:space="preserve">
<value>5</value>
<value>6</value>
</data>
<metadata name="cUEStylesBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>526, 56</value>
@@ -608,7 +635,7 @@
<value>40, 0</value>
</data>
<data name="bnComboBoxImage.Size" type="System.Drawing.Size, System.Drawing">
<value>82, 21</value>
<value>70, 21</value>
</data>
<data name="bnComboBoxImage.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -626,7 +653,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;bnComboBoxImage.ZOrder" xml:space="preserve">
<value>6</value>
<value>7</value>
</data>
<data name="labelEncoderMaxMode.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
@@ -665,7 +692,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;labelEncoderMaxMode.ZOrder" xml:space="preserve">
<value>7</value>
<value>8</value>
</data>
<data name="labelEncoderMode.Font" type="System.Drawing.Font, System.Drawing">
<value>Tahoma, 8.25pt</value>
@@ -701,7 +728,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;labelEncoderMode.ZOrder" xml:space="preserve">
<value>8</value>
<value>9</value>
</data>
<data name="trackBarEncoderMode.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
@@ -728,7 +755,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;trackBarEncoderMode.ZOrder" xml:space="preserve">
<value>9</value>
<value>10</value>
</data>
<data name="trackBarSecureMode.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
@@ -752,7 +779,7 @@
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;trackBarSecureMode.ZOrder" xml:space="preserve">
<value>10</value>
<value>11</value>
</data>
<data name="groupBoxSettings.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Left</value>
@@ -789,7 +816,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy
CQAAAk1TRnQBSQFMAgEBBAEAAdwBAQHcAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CQAAAk1TRnQBSQFMAgEBBAEAAQwBAgEMAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -939,7 +966,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAY
EgAAAk1TRnQBSQFMAgEBCwEAAdwBAQHcAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
EgAAAk1TRnQBSQFMAgEBCwEAAQwBAgEMAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -51,6 +51,22 @@ namespace CUETools.Codecs
return this.MemberwiseClone() as AudioEncoderSettings;
}
public bool HasBrowsableAttributes()
{
bool hasBrowsable = false;
foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(this))
{
bool isBrowsable = true;
foreach (var attribute in property.Attributes)
{
var browsable = attribute as BrowsableAttribute;
isBrowsable &= browsable == null || browsable.Browsable;
}
hasBrowsable |= isBrowsable;
}
return hasBrowsable;
}
[Browsable(false)]
[XmlIgnore]
public AudioPCMConfig PCM