This commit is contained in:
chudov
2009-05-01 15:16:26 +00:00
parent 599c1b2766
commit ade94128bb
59 changed files with 8117 additions and 4534 deletions

View File

@@ -30,10 +30,11 @@ namespace ArCueDotNet
{
CUESheet cueSheet = new CUESheet(config);
cueSheet.Action = CUEAction.Verify;
//cueSheet.OutputStyle = CUEStyle.SingleFile;
cueSheet.Open(pathIn);
cueSheet.Lookup();
cueSheet.GenerateFilenames(OutputAudioFormat.NoAudio, false, pathIn);
cueSheet.WriteAudioFiles(Path.GetDirectoryName(pathIn), CUEStyle.SingleFile);
cueSheet.GenerateFilenames(AudioEncoderType.NoAudio, "dummy", pathIn);
cueSheet.Go();
cueSheet.GenerateAccurateRipLog(sw);
}
catch (Exception ex)

View File

@@ -116,6 +116,10 @@
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CUEControls\CUEControls.csproj">
<Project>{CA4D64E6-6544-4A29-8BA5-7DB08D50D072}</Project>
<Name>CUEControls</Name>
</ProjectReference>
<ProjectReference Include="..\CUETools.AccurateRip\CUETools.AccurateRip.csproj">
<Project>{5802C7E9-157E-4124-946D-70B5AE48A5A1}</Project>
<Name>CUETools.AccurateRip</Name>

View File

@@ -43,8 +43,7 @@ namespace CUERipper
this.Start = new System.Windows.Forms.ColumnHeader();
this.Length = new System.Windows.Forms.ColumnHeader();
this.buttonGo = new System.Windows.Forms.Button();
this.comboLossless = new System.Windows.Forms.ComboBox();
this.comboCodec = new System.Windows.Forms.ComboBox();
this.comboBoxAudioFormat = new System.Windows.Forms.ComboBox();
this.comboImage = new System.Windows.Forms.ComboBox();
this.buttonAbort = new System.Windows.Forms.Button();
this.buttonPause = new System.Windows.Forms.Button();
@@ -53,9 +52,19 @@ namespace CUERipper
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.releaseBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.numericWriteOffset = new System.Windows.Forms.NumericUpDown();
this.lblWriteOffset = new System.Windows.Forms.Label();
this.comboBoxEncoder = new System.Windows.Forms.ComboBox();
this.radioButtonAudioLossy = new System.Windows.Forms.RadioButton();
this.radioButtonAudioHybrid = new System.Windows.Forms.RadioButton();
this.radioButtonAudioLossless = new System.Windows.Forms.RadioButton();
this.checkBoxEACMode = new System.Windows.Forms.CheckBox();
this.groupBoxSettings = new System.Windows.Forms.GroupBox();
this.statusStrip1.SuspendLayout();
this.contextMenuStripRelease.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.releaseBindingSource)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).BeginInit();
this.groupBoxSettings.SuspendLayout();
this.SuspendLayout();
//
// comboDrives
@@ -157,29 +166,19 @@ namespace CUERipper
this.buttonGo.UseVisualStyleBackColor = true;
this.buttonGo.Click += new System.EventHandler(this.buttonGo_Click);
//
// comboLossless
// comboBoxAudioFormat
//
this.comboLossless.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboLossless.FormattingEnabled = true;
this.comboLossless.Items.AddRange(new object[] {
resources.GetString("comboLossless.Items"),
resources.GetString("comboLossless.Items1"),
resources.GetString("comboLossless.Items2")});
resources.ApplyResources(this.comboLossless, "comboLossless");
this.comboLossless.Name = "comboLossless";
//
// comboCodec
//
this.comboCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboCodec.FormattingEnabled = true;
this.comboCodec.Items.AddRange(new object[] {
resources.GetString("comboCodec.Items"),
resources.GetString("comboCodec.Items1"),
resources.GetString("comboCodec.Items2"),
resources.GetString("comboCodec.Items3"),
resources.GetString("comboCodec.Items4")});
resources.ApplyResources(this.comboCodec, "comboCodec");
this.comboCodec.Name = "comboCodec";
this.comboBoxAudioFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxAudioFormat.FormattingEnabled = true;
this.comboBoxAudioFormat.Items.AddRange(new object[] {
resources.GetString("comboBoxAudioFormat.Items"),
resources.GetString("comboBoxAudioFormat.Items1"),
resources.GetString("comboBoxAudioFormat.Items2"),
resources.GetString("comboBoxAudioFormat.Items3"),
resources.GetString("comboBoxAudioFormat.Items4")});
resources.ApplyResources(this.comboBoxAudioFormat, "comboBoxAudioFormat");
this.comboBoxAudioFormat.Name = "comboBoxAudioFormat";
this.comboBoxAudioFormat.SelectedIndexChanged += new System.EventHandler(this.comboBoxAudioFormat_SelectedIndexChanged);
//
// comboImage
//
@@ -241,18 +240,90 @@ namespace CUERipper
//
this.releaseBindingSource.DataSource = typeof(MusicBrainz.Release);
//
// numericWriteOffset
//
resources.ApplyResources(this.numericWriteOffset, "numericWriteOffset");
this.numericWriteOffset.Maximum = new decimal(new int[] {
99999,
0,
0,
0});
this.numericWriteOffset.Minimum = new decimal(new int[] {
99999,
0,
0,
-2147483648});
this.numericWriteOffset.Name = "numericWriteOffset";
//
// lblWriteOffset
//
resources.ApplyResources(this.lblWriteOffset, "lblWriteOffset");
this.lblWriteOffset.Name = "lblWriteOffset";
//
// comboBoxEncoder
//
this.comboBoxEncoder.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxEncoder.FormattingEnabled = true;
resources.ApplyResources(this.comboBoxEncoder, "comboBoxEncoder");
this.comboBoxEncoder.Name = "comboBoxEncoder";
this.comboBoxEncoder.SelectedIndexChanged += new System.EventHandler(this.comboBoxEncoder_SelectedIndexChanged);
//
// radioButtonAudioLossy
//
resources.ApplyResources(this.radioButtonAudioLossy, "radioButtonAudioLossy");
this.radioButtonAudioLossy.Name = "radioButtonAudioLossy";
this.radioButtonAudioLossy.TabStop = true;
this.radioButtonAudioLossy.UseVisualStyleBackColor = true;
this.radioButtonAudioLossy.CheckedChanged += new System.EventHandler(this.radioButtonAudioLossless_CheckedChanged);
//
// radioButtonAudioHybrid
//
resources.ApplyResources(this.radioButtonAudioHybrid, "radioButtonAudioHybrid");
this.radioButtonAudioHybrid.Name = "radioButtonAudioHybrid";
this.radioButtonAudioHybrid.TabStop = true;
this.radioButtonAudioHybrid.UseVisualStyleBackColor = true;
this.radioButtonAudioHybrid.CheckedChanged += new System.EventHandler(this.radioButtonAudioLossless_CheckedChanged);
//
// radioButtonAudioLossless
//
resources.ApplyResources(this.radioButtonAudioLossless, "radioButtonAudioLossless");
this.radioButtonAudioLossless.Name = "radioButtonAudioLossless";
this.radioButtonAudioLossless.TabStop = true;
this.radioButtonAudioLossless.UseVisualStyleBackColor = true;
this.radioButtonAudioLossless.CheckedChanged += new System.EventHandler(this.radioButtonAudioLossless_CheckedChanged);
//
// checkBoxEACMode
//
resources.ApplyResources(this.checkBoxEACMode, "checkBoxEACMode");
this.checkBoxEACMode.Name = "checkBoxEACMode";
this.checkBoxEACMode.UseVisualStyleBackColor = true;
this.checkBoxEACMode.CheckedChanged += new System.EventHandler(this.checkBoxEACMode_CheckedChanged);
//
// groupBoxSettings
//
this.groupBoxSettings.Controls.Add(this.radioButtonAudioLossless);
this.groupBoxSettings.Controls.Add(this.comboBoxAudioFormat);
this.groupBoxSettings.Controls.Add(this.checkBoxEACMode);
this.groupBoxSettings.Controls.Add(this.lblWriteOffset);
this.groupBoxSettings.Controls.Add(this.numericWriteOffset);
this.groupBoxSettings.Controls.Add(this.comboImage);
this.groupBoxSettings.Controls.Add(this.radioButtonAudioLossy);
this.groupBoxSettings.Controls.Add(this.comboBoxEncoder);
this.groupBoxSettings.Controls.Add(this.radioButtonAudioHybrid);
resources.ApplyResources(this.groupBoxSettings, "groupBoxSettings");
this.groupBoxSettings.Name = "groupBoxSettings";
this.groupBoxSettings.TabStop = false;
//
// frmCUERipper
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBoxSettings);
this.Controls.Add(this.comboRelease);
this.Controls.Add(this.buttonPause);
this.Controls.Add(this.buttonAbort);
this.Controls.Add(this.comboImage);
this.Controls.Add(this.comboCodec);
this.Controls.Add(this.comboLossless);
this.Controls.Add(this.buttonGo);
this.Controls.Add(this.listTracks);
this.Controls.Add(this.buttonAbort);
this.Controls.Add(this.buttonGo);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.comboDrives);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
@@ -265,6 +336,9 @@ namespace CUERipper
this.statusStrip1.PerformLayout();
this.contextMenuStripRelease.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.releaseBindingSource)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).EndInit();
this.groupBoxSettings.ResumeLayout(false);
this.groupBoxSettings.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@@ -283,8 +357,7 @@ namespace CUERipper
private System.Windows.Forms.ColumnHeader Start;
private System.Windows.Forms.ColumnHeader Length;
private System.Windows.Forms.Button buttonGo;
private System.Windows.Forms.ComboBox comboLossless;
private System.Windows.Forms.ComboBox comboCodec;
private System.Windows.Forms.ComboBox comboBoxAudioFormat;
private System.Windows.Forms.ComboBox comboImage;
private System.Windows.Forms.Button buttonAbort;
private System.Windows.Forms.Button buttonPause;
@@ -295,6 +368,14 @@ namespace CUERipper
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusAr;
private System.Windows.Forms.NumericUpDown numericWriteOffset;
private System.Windows.Forms.Label lblWriteOffset;
private System.Windows.Forms.ComboBox comboBoxEncoder;
private System.Windows.Forms.RadioButton radioButtonAudioLossy;
private System.Windows.Forms.RadioButton radioButtonAudioHybrid;
private System.Windows.Forms.RadioButton radioButtonAudioLossless;
private System.Windows.Forms.CheckBox checkBoxEACMode;
private System.Windows.Forms.GroupBox groupBoxSettings;
}
}

View File

@@ -25,17 +25,19 @@ namespace CUERipper
private CDDriveReader _reader = null;
private StartStop _startStop;
private CUEConfig _config;
private OutputAudioFormat _format;
private CUEStyle _style;
private string _format;
private CUESheet _cueSheet;
private string _pathOut;
private string _pathFormat;
string _defaultLosslessFormat, _defaultLossyFormat, _defaultHybridFormat;
private CUEControls.ShellIconMgr m_icon_mgr;
public frmCUERipper()
{
InitializeComponent();
_config = new CUEConfig();
_startStop = new StartStop();
m_icon_mgr = new CUEControls.ShellIconMgr();
}
//private byte toBCD(int val)
@@ -67,13 +69,17 @@ namespace CUERipper
//{
//}
SettingsReader sr = new SettingsReader("CUERipper", "settings.txt");
SettingsReader sr = new SettingsReader("CUERipper", "settings.txt", Application.ExecutablePath);
_defaultLosslessFormat = sr.Load("DefaultLosslessFormat") ?? "flac";
_defaultLossyFormat = sr.Load("DefaultLossyFormat") ?? "mp3";
_defaultHybridFormat = sr.Load("DefaultHybridFormat") ?? "lossy.flac";
_config.createEACLOG = sr.LoadBoolean("CreateEACLOG") ?? false;
_config.preserveHTOA = sr.LoadBoolean("PreserveHTOA") ?? false;
_config.createM3U = sr.LoadBoolean("CreateM3U") ?? true;
_pathFormat = sr.Load("PathFormat") ?? "%D\\%Y - %C\\%D - %C.cue";
comboLossless.SelectedIndex = sr.LoadInt32("ComboLossless", 0, comboLossless.Items.Count - 1) ?? 0;
comboCodec.SelectedIndex = sr.LoadInt32("ComboCodec", 0, comboCodec.Items.Count - 1) ?? 0;
_pathFormat = sr.Load("PathFormat") ?? "%music%\\%artist%\\%year% - %album%\\%artist% - %album%.cue";
checkBoxEACMode.Checked = _config.createEACLOG;
SelectedOutputAudioType = (AudioEncoderType?)sr.LoadInt32("OutputAudioType", null, null) ?? AudioEncoderType.Lossless;
comboBoxAudioFormat.SelectedIndex = sr.LoadInt32("ComboCodec", 0, comboBoxAudioFormat.Items.Count - 1) ?? 0;
comboImage.SelectedIndex = sr.LoadInt32("ComboImage", 0, comboImage.Items.Count - 1) ?? 0;
UpdateDrives();
}
@@ -153,9 +159,7 @@ namespace CUERipper
listTracks.Enabled =
comboDrives.Enabled =
comboRelease.Enabled =
comboCodec.Enabled =
comboImage.Enabled =
comboLossless.Enabled = !running;
groupBoxSettings.Enabled = !running;
buttonPause.Visible = buttonPause.Enabled = buttonAbort.Visible = buttonAbort.Enabled = running;
buttonGo.Visible = buttonGo.Enabled = !running;
toolStripStatusLabel1.Text = String.Empty;
@@ -209,11 +213,11 @@ namespace CUERipper
{
CDDriveReader audioSource = (CDDriveReader)o;
audioSource.ReadProgress += new EventHandler<ReadProgressArgs>(CDReadProgress);
audioSource.DriveOffset = (int)numericWriteOffset.Value;
try
{
string outDir = Path.GetDirectoryName(_pathOut);
_cueSheet.WriteAudioFiles(outDir == "" ? "." : outDir, _style);
_cueSheet.Go();
//CUESheet.WriteText(_pathOut, _cueSheet.CUESheetContents(_style));
//CUESheet.WriteText(Path.ChangeExtension(_pathOut, ".log"), _cueSheet.LOGContents());
}
@@ -243,12 +247,20 @@ namespace CUERipper
private string GenerateOutputPath()
{
List<string> find = new List<string>();
find.Add("%music%");
find.Add("%artist%");
find.Add("%D");
find.Add("%album%");
find.Add("%C");
find.Add("%year%");
find.Add("%Y");
List<string> replace = new List<string>();
replace.Add(m_icon_mgr.GetFolderPath(CUEControls.ExtraSpecialFolder.MyMusic));
replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Artist)));
replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Artist)));
replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Title)));
replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Title)));
replace.Add(_cueSheet.Year);
replace.Add(_cueSheet.Year);
return Path.ChangeExtension(General.ReplaceMultiple(_pathFormat, find, replace) ?? "image.cue", ".cue");
@@ -259,19 +271,13 @@ namespace CUERipper
if (_reader == null)
return;
_style = comboImage.SelectedIndex == 0 ? CUEStyle.SingleFileWithCUE :
_cueSheet.OutputStyle = comboImage.SelectedIndex == 0 ? CUEStyle.SingleFileWithCUE :
CUEStyle.GapsAppended;
_pathOut = GenerateOutputPath();
_config.lossyWAVHybrid = comboLossless.SelectedIndex == 1; // _cueSheet.Config?
if (_style == CUEStyle.SingleFileWithCUE)
if (_cueSheet.OutputStyle == CUEStyle.SingleFileWithCUE)
_cueSheet.SingleFilename = Path.GetFileName(_pathOut);
_format = (string)comboCodec.SelectedItem == "wav" ? OutputAudioFormat.WAV :
(string)comboCodec.SelectedItem == "flac" ? OutputAudioFormat.FLAC :
(string)comboCodec.SelectedItem == "wv" ? OutputAudioFormat.WavPack :
(string)comboCodec.SelectedItem == "ape" ? OutputAudioFormat.APE :
(string)comboCodec.SelectedItem == "tta" ? OutputAudioFormat.TTA :
OutputAudioFormat.NoAudio;
_cueSheet.GenerateFilenames(_format, comboLossless.SelectedIndex != 0, _pathOut);
_format = (string)comboBoxAudioFormat.SelectedItem;
_cueSheet.GenerateFilenames(SelectedOutputAudioType, _format, _pathOut);
_workThread = new Thread(Rip);
_workThread.Priority = ThreadPriority.BelowNormal;
@@ -353,6 +359,7 @@ namespace CUERipper
ReleaseInfo r = new ReleaseInfo();
r.cueSheet = new CUESheet(_config);
r.cueSheet.OpenCD(audioSource);
//r.cueSheet.WriteOffset =
General.SetCUELine(r.cueSheet.Attributes, "REM", "GENRE", "", true);
General.SetCUELine(r.cueSheet.Attributes, "REM", "DATE", "", false);
General.SetCUELine(r.cueSheet.Attributes, "REM", "DISCID", AccurateRipVerify.CalculateCDDBId(audioSource.TOC), false);
@@ -488,7 +495,7 @@ namespace CUERipper
SetupControls();
comboRelease.SelectedIndex = 0;
CUESheet cueSheet = ((ReleaseInfo)comboRelease.SelectedItem).cueSheet;
toolStripStatusAr.Visible = true; // cueSheet.ArVerify.ARStatus == null;
toolStripStatusAr.Visible = cueSheet.ArVerify.ARStatus == null;
toolStripStatusAr.Text = cueSheet.ArVerify.ARStatus == null ? cueSheet.ArVerify.Total(0).ToString() : "?";
toolStripStatusAr.ToolTipText = "AccurateRip: " + (cueSheet.ArVerify.ARStatus ?? "found") + ".";
});
@@ -509,9 +516,11 @@ namespace CUERipper
try
{
_reader.Open(_reader.Path[0]);
numericWriteOffset.Value = _reader.DriveOffset;
}
catch (Exception ex)
{
numericWriteOffset.Value = _reader.DriveOffset;
_reader.Close();
comboRelease.Items.Add(ex.Message);
comboRelease.SelectedIndex = 0;
@@ -603,12 +612,15 @@ namespace CUERipper
private void frmCUERipper_FormClosed(object sender, FormClosedEventArgs e)
{
SettingsWriter sw = new SettingsWriter("CUERipper", "settings.txt");
if (_config.createEACLOG) sw.Save("CreateEACLOG", _config.createEACLOG);
SettingsWriter sw = new SettingsWriter("CUERipper", "settings.txt", Application.ExecutablePath);
sw.Save("DefaultLosslessFormat", _defaultLosslessFormat);
sw.Save("DefaultLossyFormat", _defaultLossyFormat);
sw.Save("DefaultHybridFormat", _defaultHybridFormat);
sw.Save("CreateEACLOG", _config.createEACLOG);
sw.Save("PreserveHTOA", _config.preserveHTOA);
sw.Save("CreateM3U", _config.createM3U);
sw.Save("ComboLossless", comboLossless.SelectedIndex);
sw.Save("ComboCodec", comboCodec.SelectedIndex);
sw.Save("OutputAudioType", (int)SelectedOutputAudioType);
sw.Save("ComboCodec", comboBoxAudioFormat.SelectedIndex);
sw.Save("ComboImage", comboImage.SelectedIndex);
sw.Save("PathFormat", _pathFormat);
sw.Close();
@@ -619,6 +631,139 @@ namespace CUERipper
if (!_reader.TOC[e.Item + 1].IsAudio)
e.CancelEdit = true;
}
private string SelectedOutputAudioFormat
{
get
{
return (string)(comboBoxAudioFormat.SelectedItem ?? "dummy");
}
set
{
comboBoxAudioFormat.SelectedItem = value;
}
}
private CUEToolsFormat SelectedOutputAudioFmt
{
get
{
CUEToolsFormat fmt;
if (comboBoxAudioFormat.SelectedItem == null)
return null;
string formatName = (string)comboBoxAudioFormat.SelectedItem;
if (formatName.StartsWith("lossy."))
formatName = formatName.Substring(6);
return _config.formats.TryGetValue(formatName, out fmt) ? fmt : null;
}
}
private AudioEncoderType SelectedOutputAudioType
{
get
{
return
radioButtonAudioHybrid.Checked ? AudioEncoderType.Hybrid :
radioButtonAudioLossy.Checked ? AudioEncoderType.Lossy :
AudioEncoderType.Lossless;
}
set
{
switch (value)
{
case AudioEncoderType.Hybrid:
radioButtonAudioHybrid.Checked = true;
break;
case AudioEncoderType.Lossy:
radioButtonAudioLossy.Checked = true;
break;
default:
radioButtonAudioLossless.Checked = true;
break;
}
}
}
private void checkBoxEACMode_CheckedChanged(object sender, EventArgs e)
{
_config.createEACLOG = checkBoxEACMode.Checked;
}
private void radioButtonAudioLossless_CheckedChanged(object sender, EventArgs e)
{
if (sender is RadioButton && !((RadioButton)sender).Checked)
return;
//labelFormat.ImageKey = null;
comboBoxAudioFormat.Items.Clear();
foreach (KeyValuePair<string, CUEToolsFormat> format in _config.formats)
{
if (SelectedOutputAudioType == AudioEncoderType.Lossless && !format.Value.allowLossless)
continue;
if (SelectedOutputAudioType == AudioEncoderType.Hybrid) // && format.Key != "wv") TODO!!!!!
continue;
if (SelectedOutputAudioType == AudioEncoderType.Lossy && !format.Value.allowLossy)
continue;
comboBoxAudioFormat.Items.Add(format.Key);
}
foreach (KeyValuePair<string, CUEToolsFormat> format in _config.formats)
{
if (!format.Value.allowLossyWAV)
continue;
if (SelectedOutputAudioType == AudioEncoderType.Lossless)
continue;
if (SelectedOutputAudioType == AudioEncoderType.NoAudio)
continue;
comboBoxAudioFormat.Items.Add("lossy." + format.Key);
}
switch (SelectedOutputAudioType)
{
case AudioEncoderType.Lossless:
SelectedOutputAudioFormat = _defaultLosslessFormat;
break;
case AudioEncoderType.Lossy:
SelectedOutputAudioFormat = _defaultLossyFormat;
break;
case AudioEncoderType.Hybrid:
SelectedOutputAudioFormat = _defaultHybridFormat;
break;
}
}
private void comboBoxAudioFormat_SelectedIndexChanged(object sender, EventArgs e)
{
//labelFormat.ImageKey = SelectedOutputAudioFmt == null ? null : "." + SelectedOutputAudioFmt.extension;
comboBoxEncoder.Items.Clear();
if (SelectedOutputAudioFmt == null)
return;
foreach (KeyValuePair<string, CUEToolsUDC> encoder in _config.encoders)
if (encoder.Value.extension == SelectedOutputAudioFmt.extension)
{
if (SelectedOutputAudioFormat.StartsWith("lossy.") && !encoder.Value.lossless)
continue;
else if (SelectedOutputAudioType == AudioEncoderType.Lossless && !encoder.Value.lossless)
continue;
else if (SelectedOutputAudioType == AudioEncoderType.Lossy && encoder.Value.lossless)
continue;
comboBoxEncoder.Items.Add(encoder.Key);
}
comboBoxEncoder.SelectedItem = SelectedOutputAudioFormat.StartsWith("lossy.") ? SelectedOutputAudioFmt.encoderLossless
: SelectedOutputAudioType == AudioEncoderType.Lossless ? SelectedOutputAudioFmt.encoderLossless
: SelectedOutputAudioFmt.encoderLossy;
comboBoxEncoder.Enabled = true;
}
private void comboBoxEncoder_SelectedIndexChanged(object sender, EventArgs e)
{
if (SelectedOutputAudioFormat == null)
return;
if (SelectedOutputAudioFormat.StartsWith("lossy."))
SelectedOutputAudioFmt.encoderLossless = (string)comboBoxEncoder.SelectedItem;
else if (SelectedOutputAudioType == AudioEncoderType.Lossless)
SelectedOutputAudioFmt.encoderLossless = (string)comboBoxEncoder.SelectedItem;
else
SelectedOutputAudioFmt.encoderLossy = (string)comboBoxEncoder.SelectedItem;
}
}
public class StartStop

View File

@@ -126,7 +126,7 @@
<value>6, 6</value>
</data>
<data name="comboDrives.Size" type="System.Drawing.Size, System.Drawing">
<value>481, 21</value>
<value>487, 21</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="comboDrives.TabIndex" type="System.Int32, mscorlib">
@@ -142,13 +142,13 @@
<value>$this</value>
</data>
<data name="&gt;&gt;comboDrives.ZOrder" xml:space="preserve">
<value>10</value>
<value>8</value>
</data>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>0, 371</value>
<value>0, 443</value>
</metadata>
<data name="toolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>223, 17</value>
<value>260, 17</value>
</data>
<data name="toolStripStatusLabel1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
@@ -201,10 +201,10 @@
<value>toolStripStatusAr</value>
</data>
<data name="statusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 371</value>
<value>0, 443</value>
</data>
<data name="statusStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>499, 22</value>
<value>505, 22</value>
</data>
<data name="statusStrip1.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
@@ -222,7 +222,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;statusStrip1.ZOrder" xml:space="preserve">
<value>9</value>
<value>7</value>
</data>
<data name="listTracks.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -234,7 +234,7 @@
<value>Title</value>
</data>
<data name="Title.Width" type="System.Int32, mscorlib">
<value>307</value>
<value>292</value>
</data>
<data name="TrackNo.DisplayIndex" type="System.Int32, mscorlib">
<value>0</value>
@@ -261,7 +261,7 @@
<value>6, 60</value>
</data>
<data name="listTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>481, 269</value>
<value>487, 272</value>
</data>
<data name="listTracks.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@@ -276,7 +276,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;listTracks.ZOrder" xml:space="preserve">
<value>8</value>
<value>4</value>
</data>
<data name="buttonGo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -285,10 +285,10 @@
<value>NoControl</value>
</data>
<data name="buttonGo.Location" type="System.Drawing.Point, System.Drawing">
<value>396, 335</value>
<value>382, 406</value>
</data>
<data name="buttonGo.Size" type="System.Drawing.Size, System.Drawing">
<value>91, 33</value>
<value>111, 33</value>
</data>
<data name="buttonGo.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
@@ -306,73 +306,43 @@
<value>$this</value>
</data>
<data name="&gt;&gt;buttonGo.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="comboLossless.Items" xml:space="preserve">
<value>lossless</value>
</data>
<data name="comboLossless.Items1" xml:space="preserve">
<value>hybrid</value>
</data>
<data name="comboLossless.Items2" xml:space="preserve">
<value>lossy</value>
</data>
<data name="comboLossless.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 335</value>
</data>
<data name="comboLossless.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 21</value>
</data>
<data name="comboLossless.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="&gt;&gt;comboLossless.Name" xml:space="preserve">
<value>comboLossless</value>
</data>
<data name="&gt;&gt;comboLossless.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboLossless.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;comboLossless.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="comboCodec.Items" xml:space="preserve">
<data name="comboBoxAudioFormat.Items" xml:space="preserve">
<value>flac</value>
</data>
<data name="comboCodec.Items1" xml:space="preserve">
<data name="comboBoxAudioFormat.Items1" xml:space="preserve">
<value>wv</value>
</data>
<data name="comboCodec.Items2" xml:space="preserve">
<data name="comboBoxAudioFormat.Items2" xml:space="preserve">
<value>wav</value>
</data>
<data name="comboCodec.Items3" xml:space="preserve">
<data name="comboBoxAudioFormat.Items3" xml:space="preserve">
<value>ape</value>
</data>
<data name="comboCodec.Items4" xml:space="preserve">
<data name="comboBoxAudioFormat.Items4" xml:space="preserve">
<value>tta</value>
</data>
<data name="comboCodec.Location" type="System.Drawing.Point, System.Drawing">
<value>82, 335</value>
<data name="comboBoxAudioFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>103, 20</value>
</data>
<data name="comboCodec.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 21</value>
<data name="comboBoxAudioFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 21</value>
</data>
<data name="comboCodec.TabIndex" type="System.Int32, mscorlib">
<data name="comboBoxAudioFormat.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="&gt;&gt;comboCodec.Name" xml:space="preserve">
<value>comboCodec</value>
<data name="&gt;&gt;comboBoxAudioFormat.Name" xml:space="preserve">
<value>comboBoxAudioFormat</value>
</data>
<data name="&gt;&gt;comboCodec.Type" xml:space="preserve">
<data name="&gt;&gt;comboBoxAudioFormat.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboCodec.Parent" xml:space="preserve">
<value>$this</value>
<data name="&gt;&gt;comboBoxAudioFormat.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;comboCodec.ZOrder" xml:space="preserve">
<value>5</value>
<data name="&gt;&gt;comboBoxAudioFormat.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="comboImage.Items" xml:space="preserve">
<value>image</value>
@@ -381,10 +351,10 @@
<value>tracks</value>
</data>
<data name="comboImage.Location" type="System.Drawing.Point, System.Drawing">
<value>158, 335</value>
<value>103, 49</value>
</data>
<data name="comboImage.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 21</value>
<value>89, 21</value>
</data>
<data name="comboImage.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
@@ -396,10 +366,10 @@
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboImage.Parent" xml:space="preserve">
<value>$this</value>
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;comboImage.ZOrder" xml:space="preserve">
<value>4</value>
<value>5</value>
</data>
<data name="buttonAbort.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -408,10 +378,10 @@
<value>NoControl</value>
</data>
<data name="buttonAbort.Location" type="System.Drawing.Point, System.Drawing">
<value>396, 335</value>
<value>382, 406</value>
</data>
<data name="buttonAbort.Size" type="System.Drawing.Size, System.Drawing">
<value>91, 33</value>
<value>111, 33</value>
</data>
<data name="buttonAbort.TabIndex" type="System.Int32, mscorlib">
<value>19</value>
@@ -432,7 +402,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;buttonAbort.ZOrder" xml:space="preserve">
<value>3</value>
<value>5</value>
</data>
<data name="buttonPause.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -441,10 +411,10 @@
<value>NoControl</value>
</data>
<data name="buttonPause.Location" type="System.Drawing.Point, System.Drawing">
<value>299, 335</value>
<value>382, 367</value>
</data>
<data name="buttonPause.Size" type="System.Drawing.Size, System.Drawing">
<value>91, 33</value>
<value>111, 33</value>
</data>
<data name="buttonPause.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
@@ -465,7 +435,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;buttonPause.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="comboRelease.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -492,7 +462,7 @@
<value>6, 33</value>
</data>
<data name="comboRelease.Size" type="System.Drawing.Size, System.Drawing">
<value>481, 21</value>
<value>487, 21</value>
</data>
<data name="comboRelease.TabIndex" type="System.Int32, mscorlib">
<value>21</value>
@@ -507,7 +477,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;comboRelease.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>181, 22</value>
@@ -518,6 +488,219 @@
<metadata name="releaseBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>116, 371</value>
</metadata>
<data name="numericWriteOffset.Location" type="System.Drawing.Point, System.Drawing">
<value>305, 19</value>
</data>
<data name="numericWriteOffset.Size" type="System.Drawing.Size, System.Drawing">
<value>54, 20</value>
</data>
<data name="numericWriteOffset.TabIndex" type="System.Int32, mscorlib">
<value>22</value>
</data>
<data name="numericWriteOffset.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
</data>
<data name="&gt;&gt;numericWriteOffset.Name" xml:space="preserve">
<value>numericWriteOffset</value>
</data>
<data name="&gt;&gt;numericWriteOffset.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;numericWriteOffset.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;numericWriteOffset.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="lblWriteOffset.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblWriteOffset.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblWriteOffset.Location" type="System.Drawing.Point, System.Drawing">
<value>237, 21</value>
</data>
<data name="lblWriteOffset.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 13</value>
</data>
<data name="lblWriteOffset.TabIndex" type="System.Int32, mscorlib">
<value>23</value>
</data>
<data name="lblWriteOffset.Text" xml:space="preserve">
<value>Read offset</value>
</data>
<data name="&gt;&gt;lblWriteOffset.Name" xml:space="preserve">
<value>lblWriteOffset</value>
</data>
<data name="&gt;&gt;lblWriteOffset.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblWriteOffset.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;lblWriteOffset.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="comboBoxEncoder.Location" type="System.Drawing.Point, System.Drawing">
<value>103, 78</value>
</data>
<data name="comboBoxEncoder.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 21</value>
</data>
<data name="comboBoxEncoder.TabIndex" type="System.Int32, mscorlib">
<value>24</value>
</data>
<data name="&gt;&gt;comboBoxEncoder.Name" xml:space="preserve">
<value>comboBoxEncoder</value>
</data>
<data name="&gt;&gt;comboBoxEncoder.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboBoxEncoder.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;comboBoxEncoder.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="radioButtonAudioLossy.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonAudioLossy.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonAudioLossy.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 36</value>
</data>
<data name="radioButtonAudioLossy.Size" type="System.Drawing.Size, System.Drawing">
<value>52, 17</value>
</data>
<data name="radioButtonAudioLossy.TabIndex" type="System.Int32, mscorlib">
<value>27</value>
</data>
<data name="radioButtonAudioLossy.Text" xml:space="preserve">
<value>Lossy</value>
</data>
<data name="&gt;&gt;radioButtonAudioLossy.Name" xml:space="preserve">
<value>radioButtonAudioLossy</value>
</data>
<data name="&gt;&gt;radioButtonAudioLossy.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonAudioLossy.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;radioButtonAudioLossy.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="radioButtonAudioHybrid.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonAudioHybrid.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonAudioHybrid.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 53</value>
</data>
<data name="radioButtonAudioHybrid.Size" type="System.Drawing.Size, System.Drawing">
<value>55, 17</value>
</data>
<data name="radioButtonAudioHybrid.TabIndex" type="System.Int32, mscorlib">
<value>26</value>
</data>
<data name="radioButtonAudioHybrid.Text" xml:space="preserve">
<value>Hybrid</value>
</data>
<data name="&gt;&gt;radioButtonAudioHybrid.Name" xml:space="preserve">
<value>radioButtonAudioHybrid</value>
</data>
<data name="&gt;&gt;radioButtonAudioHybrid.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonAudioHybrid.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;radioButtonAudioHybrid.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="radioButtonAudioLossless.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonAudioLossless.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonAudioLossless.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 19</value>
</data>
<data name="radioButtonAudioLossless.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 17</value>
</data>
<data name="radioButtonAudioLossless.TabIndex" type="System.Int32, mscorlib">
<value>25</value>
</data>
<data name="radioButtonAudioLossless.Text" xml:space="preserve">
<value>Lossless</value>
</data>
<data name="&gt;&gt;radioButtonAudioLossless.Name" xml:space="preserve">
<value>radioButtonAudioLossless</value>
</data>
<data name="&gt;&gt;radioButtonAudioLossless.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonAudioLossless.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;radioButtonAudioLossless.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="checkBoxEACMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="checkBoxEACMode.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 77</value>
</data>
<data name="checkBoxEACMode.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value>
</data>
<data name="checkBoxEACMode.TabIndex" type="System.Int32, mscorlib">
<value>28</value>
</data>
<data name="checkBoxEACMode.Text" xml:space="preserve">
<value>EAC mode</value>
</data>
<data name="&gt;&gt;checkBoxEACMode.Name" xml:space="preserve">
<value>checkBoxEACMode</value>
</data>
<data name="&gt;&gt;checkBoxEACMode.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;checkBoxEACMode.Parent" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;checkBoxEACMode.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="groupBoxSettings.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 332</value>
</data>
<data name="groupBoxSettings.Size" type="System.Drawing.Size, System.Drawing">
<value>370, 108</value>
</data>
<data name="groupBoxSettings.TabIndex" type="System.Int32, mscorlib">
<value>29</value>
</data>
<data name="&gt;&gt;groupBoxSettings.Name" xml:space="preserve">
<value>groupBoxSettings</value>
</data>
<data name="&gt;&gt;groupBoxSettings.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBoxSettings.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBoxSettings.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -525,7 +708,7 @@
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>499, 393</value>
<value>505, 465</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@@ -559,7 +742,7 @@
<value>CenterScreen</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>CUERipper 1.9.5a</value>
<value>CUERipper 2.0.2</value>
</data>
<data name="&gt;&gt;toolStripStatusLabel1.Name" xml:space="preserve">
<value>toolStripStatusLabel1</value>

View File

@@ -489,7 +489,7 @@ namespace CUETools.AccurateRip
}
}
public void GenerateFullLog(TextWriter sw, int offsetApplied)
public void GenerateFullLog(TextWriter sw, bool verbose)
{
if (AccResult == HttpStatusCode.NotFound)
{
@@ -504,9 +504,11 @@ namespace CUETools.AccurateRip
// sw.WriteLine(String.Format(" {0:00}\t[{1:x8}] Database access error {2}", iTrack + 1, _tracks[iTrack].CRC, accResult.ToString()));
}
else
{
if (verbose)
{
sw.WriteLine("Track\t[ CRC ] Status");
GenerateLog(sw, offsetApplied);
GenerateLog(sw, 0);
uint offsets_match = 0;
for (int oi = -_arOffsetRange; oi <= _arOffsetRange; oi++)
{
@@ -516,7 +518,7 @@ namespace CUETools.AccurateRip
if ((CRC(iTrack, oi) == AccDisks[di].tracks[iTrack].CRC && AccDisks[di].tracks[iTrack].CRC != 0) ||
(CRC450(iTrack, oi) == AccDisks[di].tracks[iTrack].Frame450CRC && AccDisks[di].tracks[iTrack].Frame450CRC != 0))
matches++;
if (matches != 0 && oi != offsetApplied)
if (matches != 0 && oi != 0)
{
if (offsets_match++ > 10)
{
@@ -528,7 +530,49 @@ namespace CUETools.AccurateRip
}
}
}
if (CRC32(0) != 0)
else
{
sw.WriteLine("Track\t Status");
for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++)
{
uint total = Total(iTrack);
uint conf = 0, part = 0;
bool zeroOffset = false;
string pressings = "";
for (int iDisk = 0; iDisk < AccDisks.Count; iDisk++)
for (int oi = -_arOffsetRange; oi <= _arOffsetRange; oi++)
{
if (CRC(iTrack, oi) == AccDisks[iDisk].tracks[iTrack].CRC)
{
conf += AccDisks[iDisk].tracks[iTrack].count;
if (oi == 0)
zeroOffset = true;
if (pressings != "")
pressings = pressings + ",";
pressings = pressings + oi.ToString();
} else
if (CRC450(iTrack, oi) == AccDisks[iDisk].tracks[iTrack].Frame450CRC)
{
part += AccDisks[iDisk].tracks[iTrack].count;
if (pressings != "")
pressings = pressings + ",";
pressings = pressings + oi.ToString();
}
}
if (conf > 0 && zeroOffset)
sw.WriteLine(String.Format(" {0:00}\t ({2:00}/{1:00}) Accurately ripped", iTrack + 1, total, conf));
else if (conf > 0)
sw.WriteLine(String.Format(" {0:00}\t ({2:00}/{1:00}) Accurately ripped with offset(s) {3}", iTrack + 1, total, conf, pressings));
else if (part > 0)
sw.WriteLine(String.Format(" {0:00}\t ({2:00}/{1:00}) NOT ACCURATE even with offset(s) {3}", iTrack + 1, total, part, pressings));
else if (total > 0)
sw.WriteLine(String.Format(" {0:00}\t (00/{1:00}) No matches", iTrack + 1, total));
else
sw.WriteLine(String.Format(" {0:00}\t (00/00) Track not present in database", iTrack + 1));
}
}
}
if (CRC32(0) != 0 && (_hasLogCRC || verbose))
{
sw.WriteLine("");
sw.WriteLine("Track\t[ CRC32 ]\t[W/O NULL]\t{0:10}", _hasLogCRC ? "[ LOG ]" : "");

View File

@@ -165,6 +165,10 @@ namespace CUETools.CDImage
{
return _start - _indexes[0].Start;
}
set
{
_indexes[0].Start = _start - value;
}
}
public CDTrackIndex this[int key]

View File

@@ -47,10 +47,11 @@ namespace CUETools.Codecs.ALAC
return AudioSamples.Read(this, buff);
}
public uint Read(int[,] buff, uint sampleCount)
{
if (_predicterror_buffer_a == null)
private void InitTables()
{
if (_predicterror_buffer_a != null)
return;
setinfo_max_samples_per_frame = read_uint32(_codecData, 24);
byte setinfo_7a = read_uint8(_codecData, 28);
byte setinfo_sample_size = read_uint8(_codecData, 29);
@@ -72,13 +73,17 @@ namespace CUETools.Codecs.ALAC
_framesBuffer = new byte[65536];
}
public uint Read(int[,] buff, uint sampleCount)
{
InitTables();
uint offset = 0;
while (_samplesInBuffer < sampleCount)
{
if (_samplesInBuffer > 0)
{
deinterlace(buff, offset);
deinterlace(buff, offset, _samplesInBuffer);
sampleCount -= (uint) _samplesInBuffer;
offset += _samplesInBuffer;
_samplesInBuffer = 0;
@@ -99,7 +104,7 @@ namespace CUETools.Codecs.ALAC
_iSample++;
}
deinterlace(buff, offset);
deinterlace(buff, offset, sampleCount);
_samplesInBuffer -= sampleCount;
_samplesBufferOffset += sampleCount;
if (_samplesInBuffer == 0)
@@ -232,6 +237,29 @@ namespace CUETools.Codecs.ALAC
uint duration_cur_index = 0;
for (duration_cur_index = 0; duration_cur_index < _time_to_sample_count.Length; duration_cur_index++)
_sampleCount += _time_to_sample_count[duration_cur_index] * _time_to_sample_duration[duration_cur_index];
// try a work around for ffdshow-generated buggy files
if (_time_to_sample_count.Length == 1 && _IO.CanSeek)
{
uint sample_count_0 = _time_to_sample_count[0] - 1;
uint sample_duration_0 = _time_to_sample_duration[0];
Position = sample_count_0 * sample_duration_0;
uint sampleDuration;
uint sampleSize;
if ((int)_iSample < _sample_byte_size.Length)
{
get_sample_info(_iSample, out sampleDuration, out sampleSize);
InitTables();
_IO.Read(_framesBuffer, 0, (int)sampleSize);
decodeFrame(sampleDuration, sampleSize);
if (_samplesInBuffer < sampleDuration)
{
_time_to_sample_duration = new uint[2] { sample_duration_0, _samplesInBuffer };
_time_to_sample_count = new uint[2] { sample_count_0, 1 };
_sampleCount -= sampleDuration - _samplesInBuffer;
}
}
Position = 0;
}
}
private byte [] stream_read_bytes(int len)
@@ -609,9 +637,9 @@ namespace CUETools.Codecs.ALAC
}
}
private unsafe void deinterlace(int [,] samplesBuffer, uint offset)
private unsafe void deinterlace(int[,] samplesBuffer, uint offset, uint sampleCount)
{
if (_samplesInBuffer <= 0)
if (sampleCount <= 0 || sampleCount > _samplesInBuffer)
return;
int i;
@@ -621,7 +649,7 @@ namespace CUETools.Codecs.ALAC
/* weighted interlacing */
if (_interlacing_leftweight != 0)
{
for (i = 0; i < _samplesInBuffer; i++)
for (i = 0; i < sampleCount; i++)
{
int midright = buf_a[i];
int diff = buf_b[i];
@@ -642,7 +670,7 @@ namespace CUETools.Codecs.ALAC
}
/* otherwise basic interlacing took place */
for (i = 0; i < _samplesInBuffer; i++)
for (i = 0; i < sampleCount; i++)
{
int a = buf_a[i];
int b = buf_b[i];

View File

@@ -35,15 +35,14 @@ namespace CUETools.Converter
TimeSpan lastPrint = TimeSpan.FromMilliseconds(0);
CUEConfig config = new CUEConfig();
SettingsReader sr = new SettingsReader("CUE Tools", "settings.txt");
SettingsReader sr = new SettingsReader("CUE Tools", "settings.txt", null);
config.Load(sr);
config.lossyWAVHybrid = false;
#if !DEBUG
try
#endif
{
IAudioSource audioSource = AudioReadWrite.GetAudioSource(sourceFile, null, config);
IAudioDest audioDest = AudioReadWrite.GetAudioDest(destFile, (long)audioSource.Length, audioSource.BitsPerSample, audioSource.SampleRate, config);
IAudioDest audioDest = AudioReadWrite.GetAudioDest(AudioEncoderType.Lossless, destFile, (long)audioSource.Length, audioSource.BitsPerSample, audioSource.SampleRate, config);
int[,] buff = new int[0x4000, audioSource.ChannelCount];
Console.WriteLine("Filename : {0}", sourceFile);

View File

@@ -17,26 +17,32 @@ namespace CUETools.Processor
public static class AudioReadWrite {
public static IAudioSource GetAudioSource(string path, Stream IO, string extension, CUEConfig config)
{
switch (extension)
CUEToolsFormat fmt;
if (!extension.StartsWith(".") || !config.formats.TryGetValue(extension.Substring(1), out fmt))
throw new Exception("Unsupported audio type: " + path);
CUEToolsUDC decoder;
if (fmt.decoder == null || !config.decoders.TryGetValue(fmt.decoder, out decoder))
throw new Exception("Unsupported audio type: " + path);
switch (decoder.className)
{
case ".wav":
case "WAVReader":
return new WAVReader(path, IO);
case ".m4a":
case "ALACReader":
return new ALACReader(path, IO);
#if !MONO
case ".flac":
case "FLACReader":
return new FLACReader(path, IO, config.disableAsm);
case ".wv":
case "WavPackReader":
return new WavPackReader(path, IO, null);
case ".ape":
case "APEReader":
return new APEReader(path, IO);
case ".tta":
case "TTAReader":
return new TTAReader(path, IO);
#endif
default:
if (extension == "." + config.udc1Extension && config.udc1Decoder != "")
return new UserDefinedReader(path, IO, config.udc1Decoder, config.udc1Params);
if (decoder.path == null)
throw new Exception("Unsupported audio type: " + path);
return new UserDefinedReader(path, IO, decoder.path, decoder.parameters);
}
}
@@ -63,59 +69,71 @@ namespace CUETools.Processor
return new LossyWAVReader(lossySource, lwcdfSource);
}
public static IAudioDest GetAudioDest(string path, int bitsPerSample, int channelCount, int sampleRate, long finalSampleCount, string extension, CUEConfig config) {
public static IAudioDest GetAudioDest(AudioEncoderType audioEncoderType, string path, int bitsPerSample, int channelCount, int sampleRate, long finalSampleCount, string extension, CUEConfig config)
{
IAudioDest dest;
switch (extension) {
case ".wav":
if (audioEncoderType == AudioEncoderType.NoAudio || extension == ".dummy")
{
dest = new DummyWriter(path, bitsPerSample, channelCount, sampleRate);
dest.FinalSampleCount = finalSampleCount;
return dest;
}
CUEToolsFormat fmt;
if (!extension.StartsWith(".") || !config.formats.TryGetValue(extension.Substring(1), out fmt))
throw new Exception("Unsupported audio type: " + path);
string encoderName = audioEncoderType == AudioEncoderType.Lossless ? fmt.encoderLossless :
audioEncoderType == AudioEncoderType.Lossy ? fmt.encoderLossy :
null;
CUEToolsUDC encoder;
if (encoderName == null || !config.encoders.TryGetValue(encoderName, out encoder))
throw new Exception("Unsupported audio type: " + path);
switch (encoder.className)
{
case "WAVWriter":
dest = new WAVWriter(path, bitsPerSample, channelCount, sampleRate, null);
break;
#if !MONO
case ".flac":
case "FLACWriter":
dest = new FLACWriter(path, bitsPerSample, channelCount, sampleRate);
((FLACWriter)dest).CompressionLevel = (int)config.flacCompressionLevel;
((FLACWriter)dest).Verify = config.flacVerify;
((FLACWriter)dest).DisableAsm = config.disableAsm;
break;
case ".wv":
case "WavPackWriter":
dest = new WavPackWriter(path, bitsPerSample, channelCount, sampleRate);
((WavPackWriter)dest).CompressionMode = config.wvCompressionMode;
((WavPackWriter)dest).ExtraMode = config.wvExtraMode;
((WavPackWriter)dest).MD5Sum = config.wvStoreMD5;
break;
case ".ape":
case "APEWriter":
dest = new APEWriter(path, bitsPerSample, channelCount, sampleRate);
((APEWriter)dest).CompressionLevel = (int)config.apeCompressionLevel;
break;
case ".tta":
case "TTAWriter":
dest = new TTAWriter(path, bitsPerSample, channelCount, sampleRate);
break;
case ".dummy":
dest = new DummyWriter(path, bitsPerSample, channelCount, sampleRate);
break;
#endif
default:
if (extension == "." + config.udc1Extension && config.udc1Encoder != "")
{
dest = new UserDefinedWriter(path, bitsPerSample, channelCount, sampleRate, null, config.udc1Encoder, config.udc1EncParams);
break;
}
if (encoder.path == null)
throw new Exception("Unsupported audio type: " + path);
dest = new UserDefinedWriter(path, bitsPerSample, channelCount, sampleRate, null, encoder.path, encoder.parameters);
break;
}
dest.FinalSampleCount = finalSampleCount;
return dest;
}
public static IAudioDest GetAudioDest(string path, long finalSampleCount, int bitsPerSample, int sampleRate, CUEConfig config)
public static IAudioDest GetAudioDest(AudioEncoderType audioEncoderType, string path, long finalSampleCount, int bitsPerSample, int sampleRate, CUEConfig config)
{
string extension = Path.GetExtension(path).ToLower();
string filename = Path.GetFileNameWithoutExtension(path);
if (Path.GetExtension(filename).ToLower() != ".lossy")
return GetAudioDest(path, bitsPerSample, 2, sampleRate, finalSampleCount, extension, config);
if (audioEncoderType == AudioEncoderType.NoAudio || audioEncoderType == AudioEncoderType.Lossless || Path.GetExtension(filename).ToLower() != ".lossy")
return GetAudioDest(audioEncoderType, path, bitsPerSample, 2, sampleRate, finalSampleCount, extension, config);
string lwcdfPath = Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(filename) + ".lwcdf" + extension);
int lossyBitsPerSample = (config.detectHDCD && config.decodeHDCD && !config.decodeHDCDtoLW16) ? 24 : 16;
IAudioDest lossyDest = GetAudioDest(path, lossyBitsPerSample, 2, sampleRate, finalSampleCount, extension, config);
IAudioDest lwcdfDest = config.lossyWAVHybrid ? GetAudioDest(lwcdfPath, bitsPerSample, 2, sampleRate, finalSampleCount, extension, config) : null;
IAudioDest lossyDest = GetAudioDest(AudioEncoderType.Lossless, path, lossyBitsPerSample, 2, sampleRate, finalSampleCount, extension, config);
IAudioDest lwcdfDest = audioEncoderType == AudioEncoderType.Hybrid ? GetAudioDest(AudioEncoderType.Lossless, lwcdfPath, bitsPerSample, 2, sampleRate, finalSampleCount, extension, config) : null;
return new LossyWAVWriter(lossyDest, lwcdfDest, bitsPerSample, 2, sampleRate, config.lossyWAVQuality);
}
}

View File

@@ -78,6 +78,10 @@
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="CSScriptLibrary.v1.1, Version=2.3.2.0, Culture=neutral">
<SpecificVersion>False</SpecificVersion>
<HintPath>.\CSScriptLibrary.v1.1.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>.\ICSharpCode.SharpZipLib.dll</HintPath>

File diff suppressed because it is too large Load Diff

View File

@@ -43,27 +43,37 @@ namespace CUETools.Processor
public class SettingsReader {
Dictionary<string, string> _settings;
public SettingsReader(string appName, string fileName) {
public SettingsReader(string appName, string fileName, string appPath) {
_settings = new Dictionary<string, string>();
bool userProfilesEnabled = (appPath == null || File.Exists(Path.Combine(Path.GetDirectoryName(appPath), "user_profiles_enabled")));
string path = Path.Combine(SettingsShared.GetMyAppDataDir(appName), fileName);
string path = Path.Combine(
userProfilesEnabled ? SettingsShared.GetMyAppDataDir(appName) : Path.GetDirectoryName(appPath),
userProfilesEnabled ? fileName : appName + "." + fileName);
if (!File.Exists(path)) {
return;
}
using (StreamReader sr = new StreamReader(path, Encoding.UTF8)) {
string line, name, val;
string line, name = null, val;
int pos;
while ((line = sr.ReadLine()) != null) {
pos = line.IndexOf('=');
if (pos != -1) {
if (pos > 0)
{
name = line.Substring(0, pos);
val = line.Substring(pos + 1);
if (!_settings.ContainsKey(name)) {
if (!_settings.ContainsKey(name))
_settings.Add(name, val);
}
else
{
val = line.Substring(pos + 1);
if (_settings.ContainsKey(name))
_settings[name] += "\r\n" + val;
}
}
}
}
@@ -100,8 +110,12 @@ namespace CUETools.Processor
public class SettingsWriter {
StreamWriter _sw;
public SettingsWriter(string appName, string fileName) {
string path = Path.Combine(SettingsShared.GetMyAppDataDir(appName), fileName);
public SettingsWriter(string appName, string fileName, string appPath)
{
bool userProfilesEnabled = (appPath == null || File.Exists(Path.Combine(Path.GetDirectoryName(appPath), "user_profiles_enabled")));
string path = Path.Combine(
userProfilesEnabled ? SettingsShared.GetMyAppDataDir(appName) : Path.GetDirectoryName(appPath),
userProfilesEnabled ? fileName : appName + "." + fileName);
_sw = new StreamWriter(path, false, Encoding.UTF8);
}
@@ -110,6 +124,17 @@ namespace CUETools.Processor
_sw.WriteLine(name + "=" + value);
}
public void SaveText(string name, string value)
{
_sw.Write(name);
using (StringReader sr = new StringReader(value))
{
string lineStr;
while ((lineStr = sr.ReadLine()) != null)
_sw.WriteLine("=" + lineStr);
}
}
public void Save(string name, bool value) {
Save(name, value ? "1" : "0");
}

View File

@@ -19,10 +19,15 @@ namespace CUETools.Processor
return true;
}
if (fileInfo is TagLib.Mpeg4.File)
return true;
if (fileInfo is TagLib.UserDefined.File && !(fileInfo as TagLib.UserDefined.File).SupportsAPEv2)
{
if (!(fileInfo as TagLib.UserDefined.File).SupportsID3v2)
// remove fb2k/nero nasty tags mess
((TagLib.Mpeg4.File)fileInfo).UserData.RemoveChild("tags");
TagLib.Mpeg4.AppleTag mpeg4 = (TagLib.Mpeg4.AppleTag)fileInfo.GetTag(TagLib.TagTypes.Apple, true);
return true;
}
if (fileInfo is TagLib.UserDefined.File && (fileInfo as TagLib.UserDefined.File).Tagger != CUEToolsTagger.APEv2)
{
if ((fileInfo as TagLib.UserDefined.File).Tagger != CUEToolsTagger.ID3v2)
return false;
TagLib.Id3v2.Tag id3v2 = (TagLib.Id3v2.Tag)fileInfo.GetTag(TagLib.TagTypes.Id3v2, true);
return true;

View File

@@ -27,6 +27,7 @@
//
using System;
using System.Collections.Generic;
using TagLib;
namespace TagLib.UserDefined {
@@ -45,9 +46,7 @@ namespace TagLib.UserDefined {
{
#region Private Fields
private bool _supportsAPEv2 = true;
private bool _supportsID3v2 = true;
private CUETools.Processor.CUEToolsTagger tagger;
#endregion
@@ -72,17 +71,20 @@ namespace TagLib.UserDefined {
/// <exception cref="ArgumentNullException">
/// <paramref name="path" /> is <see langword="null" />.
/// </exception>
public File (string path, ReadStyle propertiesStyle, bool supportsAPEv2, bool supportsID3v2)
public File (string path, ReadStyle propertiesStyle, CUETools.Processor.CUEToolsTagger _tagger)
: base (path, propertiesStyle)
{
_supportsAPEv2 = supportsAPEv2;
_supportsID3v2 = supportsID3v2;
// Make sure we have an APE tag.
if (_supportsAPEv2)
tagger = _tagger;
// Make sure we have a tag.
switch (tagger)
{
case CUETools.Processor.CUEToolsTagger.APEv2:
GetTag(TagTypes.Ape, true);
else
if (_supportsID3v2)
break;
case CUETools.Processor.CUEToolsTagger.ID3v2:
GetTag(TagTypes.Id3v2, true);
break;
}
}
/// <summary>
@@ -97,17 +99,20 @@ namespace TagLib.UserDefined {
/// <exception cref="ArgumentNullException">
/// <paramref name="path" /> is <see langword="null" />.
/// </exception>
public File(string path, bool supportsAPEv2, bool supportsID3v2)
public File(string path, CUETools.Processor.CUEToolsTagger _tagger)
: base(path)
{
_supportsAPEv2 = supportsAPEv2;
_supportsID3v2 = supportsID3v2;
// Make sure we have an APE tag.
if (_supportsAPEv2)
tagger = _tagger;
// Make sure we have a tag.
switch (tagger)
{
case CUETools.Processor.CUEToolsTagger.APEv2:
GetTag(TagTypes.Ape, true);
else
if (_supportsID3v2)
break;
case CUETools.Processor.CUEToolsTagger.ID3v2:
GetTag(TagTypes.Id3v2, true);
break;
}
}
/// <summary>
@@ -129,17 +134,20 @@ namespace TagLib.UserDefined {
/// />.
/// </exception>
public File (File.IFileAbstraction abstraction,
ReadStyle propertiesStyle, bool supportsAPEv2, bool supportsID3v2)
ReadStyle propertiesStyle, CUETools.Processor.CUEToolsTagger _tagger)
: base (abstraction, propertiesStyle)
{
_supportsAPEv2 = supportsAPEv2;
_supportsID3v2 = supportsID3v2;
// Make sure we have an APE tag.
if (_supportsAPEv2)
tagger = _tagger;
// Make sure we have a tag.
switch (tagger)
{
case CUETools.Processor.CUEToolsTagger.APEv2:
GetTag(TagTypes.Ape, true);
else
if (_supportsID3v2)
break;
case CUETools.Processor.CUEToolsTagger.ID3v2:
GetTag(TagTypes.Id3v2, true);
break;
}
}
/// <summary>
@@ -155,17 +163,20 @@ namespace TagLib.UserDefined {
/// <paramref name="abstraction" /> is <see langword="null"
/// />.
/// </exception>
public File(File.IFileAbstraction abstraction, bool supportsAPEv2, bool supportsID3v2)
public File(File.IFileAbstraction abstraction, CUETools.Processor.CUEToolsTagger _tagger)
: base (abstraction)
{
_supportsAPEv2 = supportsAPEv2;
_supportsID3v2 = supportsID3v2;
// Make sure we have an APE tag.
if (_supportsAPEv2)
tagger = _tagger;
// Make sure we have a tag.
switch (tagger)
{
case CUETools.Processor.CUEToolsTagger.APEv2:
GetTag(TagTypes.Ape, true);
else
if (_supportsID3v2)
break;
case CUETools.Processor.CUEToolsTagger.ID3v2:
GetTag(TagTypes.Id3v2, true);
break;
}
}
#endregion
@@ -174,23 +185,14 @@ namespace TagLib.UserDefined {
#region Public Methods
public bool SupportsAPEv2
public CUETools.Processor.CUEToolsTagger Tagger
{
get
{
return _supportsAPEv2;
return tagger;
}
}
public bool SupportsID3v2
{
get
{
return _supportsID3v2;
}
}
/// <summary>
/// Gets a tag of a specified type from the current instance,
/// optionally creating a new tag if possible.
@@ -329,12 +331,9 @@ namespace TagLib.UserDefined {
private static TagLib.File UserDefinedResolver(TagLib.File.IFileAbstraction abstraction, string mimetype, TagLib.ReadStyle style)
{
if (mimetype == "taglib/flac" || mimetype == "taglib/wv" || mimetype == "taglib/ape" || mimetype == "taglib/wav" || mimetype == "taglib/ogg" || mimetype == "taglib/m4a" || mimetype == "taglib/mp3")
return null;
if (mimetype == "taglib/tta")
return new File(abstraction, style, true, false);
if (mimetype == "taglib/" + _config.udc1Extension)
return new File(abstraction, style, _config.udc1APEv2, _config.udc1ID3v2);
foreach (KeyValuePair<string,CUETools.Processor.CUEToolsFormat> fmt in _config.formats)
if (fmt.Value.tagger != CUETools.Processor.CUEToolsTagger.TagLibSharp && mimetype == "taglib/" + fmt.Key)
return new File(abstraction, style, fmt.Value.tagger);
return null;
}

View File

@@ -268,7 +268,7 @@ namespace CUETools.ConsoleRipper
logWriter.WriteLine();
logWriter.WriteLine("AccurateRip summary");
logWriter.WriteLine();
arVerify.GenerateFullLog(logWriter, 0);
arVerify.GenerateFullLog(logWriter, true);
logWriter.WriteLine();
logWriter.WriteLine("End of status report");
logWriter.Close();

View File

@@ -102,12 +102,6 @@
<Compile Include="frmChoice.Designer.cs">
<DependentUpon>frmChoice.cs</DependentUpon>
</Compile>
<Compile Include="frmFilenameCorrector.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmFilenameCorrector.Designer.cs">
<DependentUpon>frmFilenameCorrector.cs</DependentUpon>
</Compile>
<Compile Include="frmPassword.cs">
<SubType>Form</SubType>
</Compile>
@@ -170,14 +164,6 @@
<SubType>Designer</SubType>
<DependentUpon>frmCUETools.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmFilenameCorrector.de-DE.resx">
<DependentUpon>frmFilenameCorrector.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmFilenameCorrector.resx">
<SubType>Designer</SubType>
<DependentUpon>frmFilenameCorrector.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmPassword.de-DE.resx">
<DependentUpon>frmPassword.cs</DependentUpon>
<SubType>Designer</SubType>
@@ -271,13 +257,30 @@
<ItemGroup>
<None Include="Resources\accuraterip.jpg" />
<Content Include="Resources\accuraterip_16.bmp" />
<None Include="Resources\ape.ico" />
<Content Include="Resources\AR.ico" />
<Content Include="Resources\cd2.png" />
<None Include="Resources\cog.ico" />
<Content Include="Resources\cue.ico" />
<None Include="Resources\cue2.ico" />
<None Include="Resources\cue3.ico" />
<Content Include="Resources\cue_32.ico" />
<Content Include="Resources\eac.ico" />
<Content Include="Resources\flac.ico" />
<None Include="Resources\freedb.ico" />
<Content Include="Resources\icon-wv.png" />
<None Include="Resources\cuetools.icl" />
<None Include="Resources\settings.ico" />
<None Include="Resources\information.ico" />
<None Include="Resources\info2.bmp" />
<None Include="Resources\information.png" />
<None Include="Resources\ipod_sound.ico" />
<None Include="Resources\ogg.ico" />
<None Include="Resources\mp3.ico" />
<Content Include="Resources\wav.bmp" />
<None Include="Resources\wv.ico" />
<None Include="Resources\wave.ico" />
<None Include="Resources\tta.ico" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

@@ -14,15 +14,13 @@ namespace JDP {
[STAThread]
static void Main(string[] args)
{
if (args.Length > 1 && (args[0] == "/verify" || args[0] == "/crc" || args[0] == "/convert" || args[0] == "/fix"))
if (args.Length > 1 && (args[0] == "/verify" || args[0] == "/convert"))
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmBatch batch = new frmBatch();
batch.AccurateRip =
args[0] == "/convert" ? CUEAction.VerifyAndConvert :
args[0] == "/fix" ? CUEAction.VerifyThenConvert :
args[0] == "/crc" ? CUEAction.VerifyPlusCRCs :
CUEAction.Verify;
if (args.Length == 2 && args[1][0] != '@')
@@ -53,8 +51,9 @@ namespace JDP {
string myId = "BZ92759C-63Q7-444e-ADA6-E495634A493D";
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
CUEConfig config = new CUEConfig();
config.Load(new SettingsReader("CUE Tools", "settings.txt"));
config.Load(new SettingsReader("CUE Tools", "settings.txt", Application.ExecutablePath));
try { Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(config.language); }
catch { }
frmCUETools form = new frmCUETools();
@@ -80,7 +79,7 @@ namespace JDP {
{
private static IpcChannel m_IPCChannel = null;
public delegate void ReceiveDelegate(string[] args);
public delegate bool ReceiveDelegate(string[] args);
static private ReceiveDelegate m_Receive = null;
static public ReceiveDelegate Receiver
@@ -138,24 +137,25 @@ namespace JDP {
SingletonController ctrl;
IpcChannel channel = new IpcChannel();
System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(channel, false);
bool result = false;
try
{
ctrl = (SingletonController)Activator.GetObject(typeof(SingletonController), "ipc://" + id + "/SingletonController");
ctrl.Receive(s);
result = ctrl.Receive(s);
}
catch
{
}
if (!result)
MessageBox.Show("Another instance of the application seems to be running, but not responding.",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void Receive(string[] s)
public bool Receive(string[] s)
{
if (m_Receive != null)
{
m_Receive(s);
}
if (m_Receive == null)
return false;
return m_Receive(s);
}
}
}

View File

@@ -74,6 +74,27 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Icon ape {
get {
object obj = ResourceManager.GetObject("ape", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Bitmap AR {
get {
object obj = ResourceManager.GetObject("AR", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap cog {
get {
object obj = ResourceManager.GetObject("cog", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Icon cue {
get {
object obj = ResourceManager.GetObject("cue", resourceCulture);
@@ -81,6 +102,20 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Icon cue2 {
get {
object obj = ResourceManager.GetObject("cue2", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Icon cue3 {
get {
object obj = ResourceManager.GetObject("cue3", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Bitmap flac {
get {
object obj = ResourceManager.GetObject("flac", resourceCulture);
@@ -88,6 +123,13 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Icon flac1 {
get {
object obj = ResourceManager.GetObject("flac1", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Bitmap freedb {
get {
object obj = ResourceManager.GetObject("freedb", resourceCulture);
@@ -95,6 +137,13 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Icon freedb1 {
get {
object obj = ResourceManager.GetObject("freedb1", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized string similar to &amp;Go.
/// </summary>
@@ -104,6 +153,34 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Bitmap info2 {
get {
object obj = ResourceManager.GetObject("info2", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap information {
get {
object obj = ResourceManager.GetObject("information", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Icon ipod_sound {
get {
object obj = ResourceManager.GetObject("ipod_sound", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Icon mp3 {
get {
object obj = ResourceManager.GetObject("mp3", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Bitmap musicbrainz {
get {
object obj = ResourceManager.GetObject("musicbrainz", resourceCulture);
@@ -111,6 +188,27 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Icon musicbrainz1 {
get {
object obj = ResourceManager.GetObject("musicbrainz1", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Icon ogg {
get {
object obj = ResourceManager.GetObject("ogg", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Bitmap settings {
get {
object obj = ResourceManager.GetObject("settings", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized string similar to Stop.
/// </summary>
@@ -120,6 +218,13 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Icon tta {
get {
object obj = ResourceManager.GetObject("tta", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized string similar to Verify.
/// </summary>
@@ -136,11 +241,25 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Icon wave {
get {
object obj = ResourceManager.GetObject("wave", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Bitmap wv {
get {
object obj = ResourceManager.GetObject("wv", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Icon wv1 {
get {
object obj = ResourceManager.GetObject("wv1", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
}
}

View File

@@ -117,38 +117,89 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Verify" xml:space="preserve">
<value>Verify</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="accuraterip16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\accuraterip_16.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wv" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon-wv.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="ipod_sound" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ipod_sound.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wv1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wv.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Stop" xml:space="preserve">
<value>Stop</value>
</data>
<data name="freedb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\freedb.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="flac" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\flac.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="accuraterip" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\accuraterip.jpg;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="musicbrainz" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\musicbrainz.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Go" xml:space="preserve">
<value>&amp;Go</value>
</data>
<data name="Verify" xml:space="preserve">
<value>Verify</value>
</data>
<data name="cog" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cog.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wav" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wav.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="settings" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\settings.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wave" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wave.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="freedb1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\freedb.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cue" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cue.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AR" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AR.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wv" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon-wv.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="accuraterip" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\accuraterip.jpg;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="info2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\info2.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ape" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ape.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="musicbrainz1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\musicbrainz.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tta" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tta.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="flac" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\flac.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="flac1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\flac.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="freedb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\freedb.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="information" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\information.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cue2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cue2.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cue3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cue3.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mp3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\mp3.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ogg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ogg.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
CUETools/Resources/ape.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
CUETools/Resources/cd2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

BIN
CUETools/Resources/cog.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
CUETools/Resources/cue2.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
CUETools/Resources/cue3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

BIN
CUETools/Resources/eac3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
CUETools/Resources/mp3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
CUETools/Resources/ogg.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
CUETools/Resources/tta.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
CUETools/Resources/wave.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

BIN
CUETools/Resources/wv.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -18,7 +18,7 @@ namespace JDP
InitializeComponent();
_config = new CUEConfig();
_cueStyle = CUEStyle.SingleFile;
_audioFormat = OutputAudioFormat.WAV;
_audioFormat = "wav";
_accurateRip = CUEAction.Verify;
_batchPaths = new List<string>();
}
@@ -44,12 +44,11 @@ namespace JDP
CUESheet _workClass;
CUEConfig _config;
CUEStyle _cueStyle;
OutputAudioFormat _audioFormat;
string _audioFormat;
string pathIn;
string pathOut;
CUEAction _accurateRip;
bool _reducePriority;
bool _lossyWAV;
DateTime _startedAt;
List<string> _batchPaths;
@@ -132,8 +131,9 @@ namespace JDP
else
cueName = Path.GetFileNameWithoutExtension(pathIn) + ".cue";
bool outputAudio = _accurateRip != CUEAction.Verify && _accurateRip != CUEAction.VerifyPlusCRCs;
bool outputAudio = _accurateRip != CUEAction.Verify;
cueSheet.Action = _accurateRip;
cueSheet.OutputStyle = _cueStyle;
cueSheet.Open(pathIn);
cueSheet.Lookup();
if (outputAudio)
@@ -155,15 +155,15 @@ namespace JDP
}
else
pathOut = Path.Combine(Path.GetDirectoryName(pathIn) ?? pathIn, cueName);
cueSheet.GenerateFilenames(_audioFormat, _lossyWAV, pathOut);
cueSheet.GenerateFilenames(AudioEncoderType.Lossless, _audioFormat, pathOut);
if (outputAudio)
{
if (_cueStyle == CUEStyle.SingleFileWithCUE)
cueSheet.SingleFilename = Path.ChangeExtension(Path.GetFileName(pathOut), General.FormatExtension(_audioFormat, _config));
cueSheet.SingleFilename = Path.ChangeExtension(Path.GetFileName(pathOut), "." + _audioFormat);
}
cueSheet.UsePregapForFirstTrackInSingleFile = false;
cueSheet.WriteAudioFiles(Path.GetDirectoryName(pathOut), _cueStyle);
cueSheet.Go();
this.Invoke((MethodInvoker)delegate()
{
if (_batchPaths.Count == 0)
@@ -260,18 +260,18 @@ namespace JDP
private void frmBatch_Load(object sender, EventArgs e)
{
textBox1.Hide();
SettingsReader sr = new SettingsReader("CUE Tools", "settings.txt");
SettingsReader sr = new SettingsReader("CUE Tools", "settings.txt", Application.ExecutablePath);
_config.Load(sr);
_reducePriority = sr.LoadBoolean("ReducePriority") ?? true;
_cueStyle = (CUEStyle?)sr.LoadInt32("CUEStyle", null, null) ?? CUEStyle.SingleFileWithCUE;
_audioFormat = (OutputAudioFormat?)sr.LoadInt32("OutputAudioFormat", null, null) ?? OutputAudioFormat.WAV;
_lossyWAV = sr.LoadBoolean("LossyWav") ?? false;
_audioFormat = sr.Load("OutputAudioFmt") ?? "flac";
//_lossyWAV = sr.LoadBoolean("LossyWav") ?? false;
if (_reducePriority)
Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.Idle;
if (_accurateRip != CUEAction.Verify && _accurateRip != CUEAction.VerifyPlusCRCs)
if (_accurateRip != CUEAction.Verify)
txtOutputFile.Show();
StartConvert();

View File

@@ -44,25 +44,17 @@ namespace JDP {
this.rbAppendFilename = new System.Windows.Forms.RadioButton();
this.txtAppendFilename = new System.Windows.Forms.TextBox();
this.grpAudioOutput = new System.Windows.Forms.GroupBox();
this.btnCodec = new System.Windows.Forms.Button();
this.rbUDC1 = new System.Windows.Forms.RadioButton();
this.rbTTA = new System.Windows.Forms.RadioButton();
this.chkLossyWAV = new System.Windows.Forms.CheckBox();
this.rbAPE = new System.Windows.Forms.RadioButton();
this.rbNoAudio = new System.Windows.Forms.RadioButton();
this.rbWavPack = new System.Windows.Forms.RadioButton();
this.rbWAV = new System.Windows.Forms.RadioButton();
this.rbFLAC = new System.Windows.Forms.RadioButton();
this.labelFormat = new System.Windows.Forms.Label();
this.comboBoxAudioFormat = new System.Windows.Forms.ComboBox();
this.btnSettings = new System.Windows.Forms.Button();
this.grpAction = new System.Windows.Forms.GroupBox();
this.comboBoxScript = new System.Windows.Forms.ComboBox();
this.rbActionCorrectFilenames = new System.Windows.Forms.RadioButton();
this.rbActionCreateCUESheet = new System.Windows.Forms.RadioButton();
this.chkMulti = new System.Windows.Forms.CheckBox();
this.rbActionVerifyAndCRCs = new System.Windows.Forms.RadioButton();
this.rbActionVerifyAndEncode = new System.Windows.Forms.RadioButton();
this.rbActionVerifyThenEncode = new System.Windows.Forms.RadioButton();
this.rbActionVerify = new System.Windows.Forms.RadioButton();
this.rbActionEncode = new System.Windows.Forms.RadioButton();
this.chkMulti = new System.Windows.Forms.CheckBox();
this.txtPreGapLength = new System.Windows.Forms.MaskedTextBox();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
@@ -84,14 +76,6 @@ namespace JDP {
this.rbFreedbAlways = new System.Windows.Forms.RadioButton();
this.rbFreedbIf = new System.Windows.Forms.RadioButton();
this.rbFreedbNever = new System.Windows.Forms.RadioButton();
this.contextMenuStripUDC = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.tAKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
this.mP3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.oGGToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.txtInputPath = new System.Windows.Forms.TextBox();
this.grpInput = new System.Windows.Forms.GroupBox();
this.textBatchReport = new System.Windows.Forms.TextBox();
@@ -105,18 +89,30 @@ namespace JDP {
this.setAsMyMusicFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.resetToOriginalLocationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.panel1 = new System.Windows.Forms.Panel();
this.groupBoxCorrector = new System.Windows.Forms.GroupBox();
this.rbCorrectorLocateFiles = new System.Windows.Forms.RadioButton();
this.rbCorrectorChangeExtension = new System.Windows.Forms.RadioButton();
this.checkBoxCorrectorOverwrite = new System.Windows.Forms.CheckBox();
this.labelCorrectorFormat = new System.Windows.Forms.Label();
this.comboBoxCorrectorFormat = new System.Windows.Forms.ComboBox();
this.radioButtonAudioLossless = new System.Windows.Forms.RadioButton();
this.radioButtonAudioHybrid = new System.Windows.Forms.RadioButton();
this.radioButtonAudioLossy = new System.Windows.Forms.RadioButton();
this.radioButtonAudioNone = new System.Windows.Forms.RadioButton();
this.comboBoxEncoder = new System.Windows.Forms.ComboBox();
this.checkBoxAdvancedMode = new System.Windows.Forms.CheckBox();
this.grpOutputStyle.SuspendLayout();
this.grpOutputPathGeneration.SuspendLayout();
this.grpAudioOutput.SuspendLayout();
this.grpAction.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.grpFreedb.SuspendLayout();
this.contextMenuStripUDC.SuspendLayout();
this.grpInput.SuspendLayout();
this.grpExtra.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).BeginInit();
this.contextMenuStripFileTree.SuspendLayout();
this.panel1.SuspendLayout();
this.groupBoxCorrector.SuspendLayout();
this.SuspendLayout();
//
// btnConvert
@@ -193,6 +189,7 @@ namespace JDP {
//
// btnAbout
//
this.btnAbout.Image = global::JDP.Properties.Resources.information;
resources.ApplyResources(this.btnAbout, "btnAbout");
this.btnAbout.Name = "btnAbout";
this.btnAbout.UseVisualStyleBackColor = true;
@@ -263,91 +260,34 @@ namespace JDP {
//
// grpAudioOutput
//
this.grpAudioOutput.Controls.Add(this.btnCodec);
this.grpAudioOutput.Controls.Add(this.rbUDC1);
this.grpAudioOutput.Controls.Add(this.rbTTA);
this.grpAudioOutput.Controls.Add(this.chkLossyWAV);
this.grpAudioOutput.Controls.Add(this.rbAPE);
this.grpAudioOutput.Controls.Add(this.rbNoAudio);
this.grpAudioOutput.Controls.Add(this.rbWavPack);
this.grpAudioOutput.Controls.Add(this.rbWAV);
this.grpAudioOutput.Controls.Add(this.rbFLAC);
this.grpAudioOutput.Controls.Add(this.comboBoxEncoder);
this.grpAudioOutput.Controls.Add(this.radioButtonAudioNone);
this.grpAudioOutput.Controls.Add(this.radioButtonAudioLossy);
this.grpAudioOutput.Controls.Add(this.radioButtonAudioHybrid);
this.grpAudioOutput.Controls.Add(this.radioButtonAudioLossless);
this.grpAudioOutput.Controls.Add(this.labelFormat);
this.grpAudioOutput.Controls.Add(this.comboBoxAudioFormat);
resources.ApplyResources(this.grpAudioOutput, "grpAudioOutput");
this.grpAudioOutput.Name = "grpAudioOutput";
this.grpAudioOutput.TabStop = false;
//
// btnCodec
// labelFormat
//
resources.ApplyResources(this.btnCodec, "btnCodec");
this.btnCodec.Name = "btnCodec";
this.btnCodec.UseVisualStyleBackColor = true;
this.btnCodec.Click += new System.EventHandler(this.btnCodec_Click);
resources.ApplyResources(this.labelFormat, "labelFormat");
this.labelFormat.MinimumSize = new System.Drawing.Size(16, 16);
this.labelFormat.Name = "labelFormat";
//
// rbUDC1
// comboBoxAudioFormat
//
resources.ApplyResources(this.rbUDC1, "rbUDC1");
this.rbUDC1.Name = "rbUDC1";
this.rbUDC1.TabStop = true;
this.rbUDC1.UseVisualStyleBackColor = true;
this.rbUDC1.CheckedChanged += new System.EventHandler(this.rbUDC1_CheckedChanged);
//
// rbTTA
//
resources.ApplyResources(this.rbTTA, "rbTTA");
this.rbTTA.Name = "rbTTA";
this.rbTTA.TabStop = true;
this.rbTTA.UseVisualStyleBackColor = true;
this.rbTTA.CheckedChanged += new System.EventHandler(this.rbTTA_CheckedChanged);
//
// chkLossyWAV
//
resources.ApplyResources(this.chkLossyWAV, "chkLossyWAV");
this.chkLossyWAV.Name = "chkLossyWAV";
this.toolTip1.SetToolTip(this.chkLossyWAV, resources.GetString("chkLossyWAV.ToolTip"));
this.chkLossyWAV.UseVisualStyleBackColor = true;
this.chkLossyWAV.CheckedChanged += new System.EventHandler(this.chkLossyWAV_CheckedChanged);
//
// rbAPE
//
resources.ApplyResources(this.rbAPE, "rbAPE");
this.rbAPE.Name = "rbAPE";
this.rbAPE.TabStop = true;
this.rbAPE.UseVisualStyleBackColor = true;
this.rbAPE.CheckedChanged += new System.EventHandler(this.rbAPE_CheckedChanged);
//
// rbNoAudio
//
resources.ApplyResources(this.rbNoAudio, "rbNoAudio");
this.rbNoAudio.Name = "rbNoAudio";
this.toolTip1.SetToolTip(this.rbNoAudio, resources.GetString("rbNoAudio.ToolTip"));
this.rbNoAudio.UseVisualStyleBackColor = true;
this.rbNoAudio.CheckedChanged += new System.EventHandler(this.rbNoAudio_CheckedChanged);
//
// rbWavPack
//
resources.ApplyResources(this.rbWavPack, "rbWavPack");
this.rbWavPack.Name = "rbWavPack";
this.rbWavPack.UseVisualStyleBackColor = true;
this.rbWavPack.CheckedChanged += new System.EventHandler(this.rbWavPack_CheckedChanged);
//
// rbWAV
//
resources.ApplyResources(this.rbWAV, "rbWAV");
this.rbWAV.Checked = true;
this.rbWAV.Name = "rbWAV";
this.rbWAV.TabStop = true;
this.rbWAV.UseVisualStyleBackColor = true;
this.rbWAV.CheckedChanged += new System.EventHandler(this.rbWAV_CheckedChanged);
//
// rbFLAC
//
resources.ApplyResources(this.rbFLAC, "rbFLAC");
this.rbFLAC.Name = "rbFLAC";
this.rbFLAC.UseVisualStyleBackColor = true;
this.rbFLAC.CheckedChanged += new System.EventHandler(this.rbFLAC_CheckedChanged);
this.comboBoxAudioFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxAudioFormat.FormattingEnabled = true;
resources.ApplyResources(this.comboBoxAudioFormat, "comboBoxAudioFormat");
this.comboBoxAudioFormat.Name = "comboBoxAudioFormat";
this.comboBoxAudioFormat.SelectedIndexChanged += new System.EventHandler(this.comboBoxAudioFormat_SelectedIndexChanged);
//
// btnSettings
//
this.btnSettings.Image = global::JDP.Properties.Resources.cog;
resources.ApplyResources(this.btnSettings, "btnSettings");
this.btnSettings.Name = "btnSettings";
this.btnSettings.UseVisualStyleBackColor = true;
@@ -355,17 +295,24 @@ namespace JDP {
//
// grpAction
//
this.grpAction.Controls.Add(this.checkBoxAdvancedMode);
this.grpAction.Controls.Add(this.comboBoxScript);
this.grpAction.Controls.Add(this.rbActionCorrectFilenames);
this.grpAction.Controls.Add(this.rbActionCreateCUESheet);
this.grpAction.Controls.Add(this.rbActionVerifyAndCRCs);
this.grpAction.Controls.Add(this.rbActionVerifyAndEncode);
this.grpAction.Controls.Add(this.rbActionVerifyThenEncode);
this.grpAction.Controls.Add(this.rbActionVerify);
this.grpAction.Controls.Add(this.rbActionEncode);
resources.ApplyResources(this.grpAction, "grpAction");
this.grpAction.Name = "grpAction";
this.grpAction.TabStop = false;
//
// comboBoxScript
//
this.comboBoxScript.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxScript.FormattingEnabled = true;
resources.ApplyResources(this.comboBoxScript, "comboBoxScript");
this.comboBoxScript.Name = "comboBoxScript";
//
// rbActionCorrectFilenames
//
resources.ApplyResources(this.rbActionCorrectFilenames, "rbActionCorrectFilenames");
@@ -382,21 +329,6 @@ namespace JDP {
this.rbActionCreateCUESheet.UseVisualStyleBackColor = true;
this.rbActionCreateCUESheet.CheckedChanged += new System.EventHandler(this.rbAction_CheckedChanged);
//
// chkMulti
//
resources.ApplyResources(this.chkMulti, "chkMulti");
this.chkMulti.Name = "chkMulti";
this.chkMulti.UseVisualStyleBackColor = true;
this.chkMulti.CheckedChanged += new System.EventHandler(this.chkMulti_CheckedChanged);
//
// rbActionVerifyAndCRCs
//
resources.ApplyResources(this.rbActionVerifyAndCRCs, "rbActionVerifyAndCRCs");
this.rbActionVerifyAndCRCs.Name = "rbActionVerifyAndCRCs";
this.toolTip1.SetToolTip(this.rbActionVerifyAndCRCs, resources.GetString("rbActionVerifyAndCRCs.ToolTip"));
this.rbActionVerifyAndCRCs.UseVisualStyleBackColor = true;
this.rbActionVerifyAndCRCs.CheckedChanged += new System.EventHandler(this.rbAction_CheckedChanged);
//
// rbActionVerifyAndEncode
//
resources.ApplyResources(this.rbActionVerifyAndEncode, "rbActionVerifyAndEncode");
@@ -405,14 +337,6 @@ namespace JDP {
this.rbActionVerifyAndEncode.UseVisualStyleBackColor = true;
this.rbActionVerifyAndEncode.CheckedChanged += new System.EventHandler(this.rbAction_CheckedChanged);
//
// rbActionVerifyThenEncode
//
resources.ApplyResources(this.rbActionVerifyThenEncode, "rbActionVerifyThenEncode");
this.rbActionVerifyThenEncode.Name = "rbActionVerifyThenEncode";
this.toolTip1.SetToolTip(this.rbActionVerifyThenEncode, resources.GetString("rbActionVerifyThenEncode.ToolTip"));
this.rbActionVerifyThenEncode.UseVisualStyleBackColor = true;
this.rbActionVerifyThenEncode.CheckedChanged += new System.EventHandler(this.rbAction_CheckedChanged);
//
// rbActionVerify
//
resources.ApplyResources(this.rbActionVerify, "rbActionVerify");
@@ -431,6 +355,14 @@ namespace JDP {
this.rbActionEncode.UseVisualStyleBackColor = true;
this.rbActionEncode.CheckedChanged += new System.EventHandler(this.rbAction_CheckedChanged);
//
// chkMulti
//
resources.ApplyResources(this.chkMulti, "chkMulti");
this.chkMulti.Name = "chkMulti";
this.chkMulti.ThreeState = true;
this.chkMulti.UseVisualStyleBackColor = true;
this.chkMulti.CheckStateChanged += new System.EventHandler(this.chkMulti_CheckStateChanged);
//
// txtPreGapLength
//
this.txtPreGapLength.Culture = new System.Globalization.CultureInfo("");
@@ -512,6 +444,7 @@ namespace JDP {
// toolStripStatusLabelAR
//
resources.ApplyResources(this.toolStripStatusLabelAR, "toolStripStatusLabelAR");
this.toolStripStatusLabelAR.Image = global::JDP.Properties.Resources.AR;
this.toolStripStatusLabelAR.Name = "toolStripStatusLabelAR";
this.toolStripStatusLabelAR.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
//
@@ -586,55 +519,6 @@ namespace JDP {
this.rbFreedbNever.TabStop = true;
this.rbFreedbNever.UseVisualStyleBackColor = true;
//
// contextMenuStripUDC
//
this.contextMenuStripUDC.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem2,
this.tAKToolStripMenuItem,
this.toolStripMenuItem1,
this.toolStripSeparator1,
this.toolStripMenuItem3,
this.mP3ToolStripMenuItem,
this.oGGToolStripMenuItem});
this.contextMenuStripUDC.Name = "contextMenuStripUDC";
resources.ApplyResources(this.contextMenuStripUDC, "contextMenuStripUDC");
this.contextMenuStripUDC.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStripUDC_ItemClicked);
//
// toolStripMenuItem2
//
resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2");
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
//
// tAKToolStripMenuItem
//
this.tAKToolStripMenuItem.Name = "tAKToolStripMenuItem";
resources.ApplyResources(this.tAKToolStripMenuItem, "tAKToolStripMenuItem");
//
// toolStripMenuItem1
//
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
//
// toolStripMenuItem3
//
resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
//
// mP3ToolStripMenuItem
//
this.mP3ToolStripMenuItem.Name = "mP3ToolStripMenuItem";
resources.ApplyResources(this.mP3ToolStripMenuItem, "mP3ToolStripMenuItem");
//
// oGGToolStripMenuItem
//
this.oGGToolStripMenuItem.Name = "oGGToolStripMenuItem";
resources.ApplyResources(this.oGGToolStripMenuItem, "oGGToolStripMenuItem");
//
// txtInputPath
//
this.txtInputPath.AllowDrop = true;
@@ -686,6 +570,7 @@ namespace JDP {
this.fileSystemTreeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.fileSystemTreeView1_AfterSelect);
this.fileSystemTreeView1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.fileSystemTreeView1_MouseDown);
this.fileSystemTreeView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.fileSystemTreeView1_DragEnter);
this.fileSystemTreeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.fileSystemTreeView1_KeyDown);
this.fileSystemTreeView1.AfterExpand += new System.Windows.Forms.TreeViewEventHandler(this.fileSystemTreeView1_AfterExpand);
//
// grpExtra
@@ -755,26 +640,120 @@ namespace JDP {
// panel1
//
resources.ApplyResources(this.panel1, "panel1");
this.panel1.Controls.Add(this.groupBoxCorrector);
this.panel1.Controls.Add(this.grpOutputPathGeneration);
this.panel1.Controls.Add(this.btnStop);
this.panel1.Controls.Add(this.btnConvert);
this.panel1.Controls.Add(this.grpAction);
this.panel1.Controls.Add(this.btnSettings);
this.panel1.Controls.Add(this.grpExtra);
this.panel1.Controls.Add(this.btnAbout);
this.panel1.Controls.Add(this.grpOutputStyle);
this.panel1.Controls.Add(this.grpFreedb);
this.panel1.Controls.Add(this.grpAudioOutput);
this.panel1.Controls.Add(this.grpAction);
this.panel1.Controls.Add(this.btnPause);
this.panel1.Controls.Add(this.btnResume);
this.panel1.Name = "panel1";
//
// groupBoxCorrector
//
this.groupBoxCorrector.Controls.Add(this.rbCorrectorLocateFiles);
this.groupBoxCorrector.Controls.Add(this.rbCorrectorChangeExtension);
this.groupBoxCorrector.Controls.Add(this.checkBoxCorrectorOverwrite);
this.groupBoxCorrector.Controls.Add(this.labelCorrectorFormat);
this.groupBoxCorrector.Controls.Add(this.comboBoxCorrectorFormat);
resources.ApplyResources(this.groupBoxCorrector, "groupBoxCorrector");
this.groupBoxCorrector.Name = "groupBoxCorrector";
this.groupBoxCorrector.TabStop = false;
//
// rbCorrectorLocateFiles
//
resources.ApplyResources(this.rbCorrectorLocateFiles, "rbCorrectorLocateFiles");
this.rbCorrectorLocateFiles.Name = "rbCorrectorLocateFiles";
this.rbCorrectorLocateFiles.TabStop = true;
this.rbCorrectorLocateFiles.UseVisualStyleBackColor = true;
//
// rbCorrectorChangeExtension
//
resources.ApplyResources(this.rbCorrectorChangeExtension, "rbCorrectorChangeExtension");
this.rbCorrectorChangeExtension.Name = "rbCorrectorChangeExtension";
this.rbCorrectorChangeExtension.TabStop = true;
this.rbCorrectorChangeExtension.UseVisualStyleBackColor = true;
this.rbCorrectorChangeExtension.CheckedChanged += new System.EventHandler(this.rbCorrectorChangeExtension_CheckedChanged);
//
// checkBoxCorrectorOverwrite
//
resources.ApplyResources(this.checkBoxCorrectorOverwrite, "checkBoxCorrectorOverwrite");
this.checkBoxCorrectorOverwrite.Name = "checkBoxCorrectorOverwrite";
this.checkBoxCorrectorOverwrite.UseVisualStyleBackColor = true;
//
// labelCorrectorFormat
//
resources.ApplyResources(this.labelCorrectorFormat, "labelCorrectorFormat");
this.labelCorrectorFormat.MinimumSize = new System.Drawing.Size(16, 16);
this.labelCorrectorFormat.Name = "labelCorrectorFormat";
//
// comboBoxCorrectorFormat
//
this.comboBoxCorrectorFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxCorrectorFormat.FormattingEnabled = true;
resources.ApplyResources(this.comboBoxCorrectorFormat, "comboBoxCorrectorFormat");
this.comboBoxCorrectorFormat.Name = "comboBoxCorrectorFormat";
this.comboBoxCorrectorFormat.SelectedIndexChanged += new System.EventHandler(this.comboBoxCorrectorFormat_SelectedIndexChanged);
//
// radioButtonAudioLossless
//
resources.ApplyResources(this.radioButtonAudioLossless, "radioButtonAudioLossless");
this.radioButtonAudioLossless.Name = "radioButtonAudioLossless";
this.radioButtonAudioLossless.TabStop = true;
this.radioButtonAudioLossless.UseVisualStyleBackColor = true;
this.radioButtonAudioLossless.CheckedChanged += new System.EventHandler(this.radioButtonAudioLossless_CheckedChanged);
//
// radioButtonAudioHybrid
//
resources.ApplyResources(this.radioButtonAudioHybrid, "radioButtonAudioHybrid");
this.radioButtonAudioHybrid.Name = "radioButtonAudioHybrid";
this.radioButtonAudioHybrid.TabStop = true;
this.radioButtonAudioHybrid.UseVisualStyleBackColor = true;
this.radioButtonAudioHybrid.CheckedChanged += new System.EventHandler(this.radioButtonAudioLossless_CheckedChanged);
//
// radioButtonAudioLossy
//
resources.ApplyResources(this.radioButtonAudioLossy, "radioButtonAudioLossy");
this.radioButtonAudioLossy.Name = "radioButtonAudioLossy";
this.radioButtonAudioLossy.TabStop = true;
this.radioButtonAudioLossy.UseVisualStyleBackColor = true;
this.radioButtonAudioLossy.CheckedChanged += new System.EventHandler(this.radioButtonAudioLossless_CheckedChanged);
//
// radioButtonAudioNone
//
resources.ApplyResources(this.radioButtonAudioNone, "radioButtonAudioNone");
this.radioButtonAudioNone.Name = "radioButtonAudioNone";
this.radioButtonAudioNone.TabStop = true;
this.radioButtonAudioNone.UseVisualStyleBackColor = true;
this.radioButtonAudioNone.CheckedChanged += new System.EventHandler(this.radioButtonAudioLossless_CheckedChanged);
//
// comboBoxEncoder
//
this.comboBoxEncoder.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxEncoder.FormattingEnabled = true;
resources.ApplyResources(this.comboBoxEncoder, "comboBoxEncoder");
this.comboBoxEncoder.Name = "comboBoxEncoder";
this.comboBoxEncoder.SelectedIndexChanged += new System.EventHandler(this.comboBoxEncoder_SelectedIndexChanged);
//
// checkBoxAdvancedMode
//
resources.ApplyResources(this.checkBoxAdvancedMode, "checkBoxAdvancedMode");
this.checkBoxAdvancedMode.Name = "checkBoxAdvancedMode";
this.checkBoxAdvancedMode.UseVisualStyleBackColor = true;
this.checkBoxAdvancedMode.CheckedChanged += new System.EventHandler(this.checkBoxAdvancedMode_CheckedChanged);
//
// frmCUETools
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.panel1);
this.Controls.Add(this.grpInput);
this.Controls.Add(this.panel1);
this.Controls.Add(this.statusStrip1);
this.MaximizeBox = false;
this.Name = "frmCUETools";
@@ -792,7 +771,6 @@ namespace JDP {
this.statusStrip1.PerformLayout();
this.grpFreedb.ResumeLayout(false);
this.grpFreedb.PerformLayout();
this.contextMenuStripUDC.ResumeLayout(false);
this.grpInput.ResumeLayout(false);
this.grpInput.PerformLayout();
this.grpExtra.ResumeLayout(false);
@@ -800,6 +778,8 @@ namespace JDP {
((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).EndInit();
this.contextMenuStripFileTree.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.groupBoxCorrector.ResumeLayout(false);
this.groupBoxCorrector.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@@ -823,15 +803,10 @@ namespace JDP {
private System.Windows.Forms.TextBox txtAppendFilename;
private System.Windows.Forms.TextBox txtCreateSubdirectory;
private System.Windows.Forms.GroupBox grpAudioOutput;
private System.Windows.Forms.RadioButton rbFLAC;
private System.Windows.Forms.RadioButton rbWAV;
private System.Windows.Forms.RadioButton rbWavPack;
private System.Windows.Forms.RadioButton rbCustomFormat;
private System.Windows.Forms.TextBox txtCustomFormat;
private System.Windows.Forms.Button btnSettings;
private System.Windows.Forms.RadioButton rbNoAudio;
private System.Windows.Forms.GroupBox grpAction;
private System.Windows.Forms.RadioButton rbActionVerifyThenEncode;
private System.Windows.Forms.RadioButton rbActionVerify;
private System.Windows.Forms.RadioButton rbActionEncode;
private System.Windows.Forms.StatusStrip statusStrip1;
@@ -842,28 +817,14 @@ namespace JDP {
private System.Windows.Forms.RadioButton rbEmbedCUE;
private System.Windows.Forms.MaskedTextBox txtDataTrackLength;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.RadioButton rbAPE;
private System.Windows.Forms.Button btnStop;
private System.Windows.Forms.Button btnPause;
private System.Windows.Forms.Button btnResume;
private System.Windows.Forms.CheckBox chkLossyWAV;
private System.Windows.Forms.RadioButton rbActionVerifyAndEncode;
private System.Windows.Forms.RadioButton rbTTA;
private System.Windows.Forms.GroupBox grpFreedb;
private System.Windows.Forms.RadioButton rbFreedbAlways;
private System.Windows.Forms.RadioButton rbFreedbIf;
private System.Windows.Forms.RadioButton rbFreedbNever;
private System.Windows.Forms.RadioButton rbUDC1;
private System.Windows.Forms.Button btnCodec;
private System.Windows.Forms.ContextMenuStrip contextMenuStripUDC;
private System.Windows.Forms.ToolStripMenuItem tAKToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem mP3ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem oGGToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
private System.Windows.Forms.RadioButton rbActionVerifyAndCRCs;
private System.Windows.Forms.MaskedTextBox txtPreGapLength;
private System.Windows.Forms.Label label2;
private CUEControls.FileSystemTreeView fileSystemTreeView1;
@@ -887,6 +848,21 @@ namespace JDP {
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelProcessed;
private System.Windows.Forms.TextBox textBatchReport;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ComboBox comboBoxAudioFormat;
private System.Windows.Forms.Label labelFormat;
private System.Windows.Forms.GroupBox groupBoxCorrector;
private System.Windows.Forms.Label labelCorrectorFormat;
private System.Windows.Forms.ComboBox comboBoxCorrectorFormat;
private System.Windows.Forms.CheckBox checkBoxCorrectorOverwrite;
private System.Windows.Forms.RadioButton rbCorrectorLocateFiles;
private System.Windows.Forms.RadioButton rbCorrectorChangeExtension;
private System.Windows.Forms.ComboBox comboBoxScript;
private System.Windows.Forms.RadioButton radioButtonAudioNone;
private System.Windows.Forms.RadioButton radioButtonAudioLossy;
private System.Windows.Forms.RadioButton radioButtonAudioHybrid;
private System.Windows.Forms.RadioButton radioButtonAudioLossless;
private System.Windows.Forms.ComboBox comboBoxEncoder;
private System.Windows.Forms.CheckBox checkBoxAdvancedMode;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -270,32 +270,4 @@
<data name="grpExtra.Text" xml:space="preserve">
<value>Дополнительно</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAAACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAB
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW
FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA
MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm
/wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/
zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm
ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM
/wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz
mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM
MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz
MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM
AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA
mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ
MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/
zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m
zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/
ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy
sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8ACgoKCgrr6+vr6+sKCgoKCgoKCu/r7/Pz8/Pv6+8KCgoKCuvr7/Pz8/Pz8+/r6woKCu/r8/Pz
8/Pz8/Pz8+vvCu/r8/Pz8/Pz8/Pz8/Pz6+/r7/Pz8/Pz8/Pz8/Pz8+/r6/PrCgrz6woK6/MKCgrz6+vz
CvPz8wrz8wrzCvPz8+vr8wrz8/MK8/MK8woK8/Pr6/MK8/PzCvPzCvMK8/Pz6+vv6woK8wrz8wrzCgoK
7+vv6/Pz8/Pz8/Pz8/Pz8+vvCu/r8/Pz8/Pz8/Pz8+vvCgoK6+vv8/Pz8/Pz7+vrCgoKCgrv6+/z8/Pz
7+vvCgoKCgoKCu/r6+vr6+vvCgoKCvgfAADgBwAAwAMAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIABAADAAwAA4AcAAPAPAAA=
</value>
</data>
</root>

View File

@@ -75,10 +75,10 @@ namespace JDP
//
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0, "eac.ico");
this.imageList1.Images.SetKeyName(1, "freedb.gif");
this.imageList1.Images.SetKeyName(0, "eac3.ico");
this.imageList1.Images.SetKeyName(1, "freedb.ico");
this.imageList1.Images.SetKeyName(2, "musicbrainz.ico");
this.imageList1.Images.SetKeyName(3, "cue.ico");
this.imageList1.Images.SetKeyName(3, "cue3.ico");
//
// textBox1
//

View File

@@ -159,55 +159,84 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAo
CwAAAk1TRnQBSQFMAgEBBAEAAQwBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACgAG6wUA
EAQBAAF6AlELegYABusIAAHvAesB7wTzAe8B6wHvAwAEBAP/AQcB7AP/AewDBAFRAQABEQETAQABDwp6
AwAB7wHrAe8E8wHvAesB7wUAAusB7wbzAe8C6wIAAwQCBwEEAf8BBwHsAf8BBAHsAf8DBAEAAbwD/wET
AQ8JegIAAusB7wbzAe8C6wMAAe8B6wrzAesB7wEAAwQBBwHsAQQCBwHsAf8CBAH/AwQBAAG8BP8BAAl6
AQAB7wHrCvMB6wHvAQAB7wHrDPMB6wHvAwQB7AH/AQQB/wEHAewB/wHsAf8BBwMEAVEBDwHrAgcBvAEA
AREEAAERA3oBAAHrDPMB6wEAAesB7wzzAe8B6wQEAuwCBwHsAf8C7AQEAXoBUQEPAgAB/wEAAQ8B9wL/
AZICEQJ6AesO8wLrAfMDAAHzAQAC8wEAAfMB7wIAAfMB6wYEAgcB7AH/BgQEegEAAf8BAAERBP8BvAEA
AnoB6wHzAesCAAHzAesCAAHrAfMDAAHzAusB8wEAA/MBAALzAQAB8wEAA/MB6xAEBK4BAAH/AgABEwG8
A/8BAAKuAesB8wEAA/MBAALzAQAB8wEAA/MC6wHzAgAC8wQAAfMBAAPzAesQ/wSuAQAB/wEAARIBDwMA
Af8BAAKuAesB8wEAA/MBAALzAQAB8wIAAvMC6wHzAQAD8wEAAvMBAAHzAQAD8wHrAf8BBAEHAf8BBAL/
AwQBBwH/AwQB/wSuAQAB/wEPAQABEQISAQAB/wEAAq4B6wHzAQAD8wEAAvMBAAHzAQAD8wLrAe8DAAHz
Ae8CAAHvAfMB7wIAAe8B6wH/AQQBBwH/AQQC/wEEA/8BBwEEAf8BBwH/BK4BAAL/AZIBEQEAAQ8BAAH/
AQACrgHrAfMB6wIAAfMBAALzAQAB8wMAAfMB6wHvAesM8wHrAe8B/wEEAQcB/wEEAv8BBALsAQQBBwEE
AewCBASuAQABBwP/AbwB6gEAAf8BAAKuAQAB6wzzAesCAAHvAesK8wHrAe8BAAH/AQQB7AH/AgQBBwEE
AQcB7AEEAf8BBAEHAQQBBwSuAREBEwEHBv8BAAKuAQAB7wHrCvMB6wHvAwAC6wHvBvMB7wLrAgAB/wEE
AewB/wMHAf8B7AEHA/8B7AEHAf8FrgERAQABEQGSBP8BAAKuAgAC6wHvBvMB7wLrBQAB7wHrAe8E8wHv
AesB7wMAAf8CBAHsDP8HrgERAQABDwHrAbwB/wEAAq4DAAHvAesB7wTzAe8B6wHvBwAB7wbrAe8EABD/
AQAJrgEPAQABEwERAa4GAAbrBQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EA
AfgBHwIAAYABAQH4AR8B4AEHBAAB4AEHAcABAwQAAcABAwGAAQEEAAGAAQEGAAGAAQE2AAGAAQEBgAEB
BAABgAEBAcABAwQAAcABAwHgAQcEAAHgAQcB8AEPAgABgAEBAfgBHws=
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADY
EQAAAk1TRnQBSQFMAgEBBAEAAQwBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8ALgADAgEDAxQBHAMs
AUwDNAF5AzIBmgMwAaQDMgGaAzQBeQMsAUwDFAEcAwMBBAgAA5YB/wEyAgAB/wEyAgAB/wEyAgAB/wEy
AgAB/wEyAgAB/wEyAgAB/wEyAgAB/wEyAgAB/wEyAgAB/wEyAgAB/wEyAgAB/wEyAgAB/wEyAgAB/wEy
AgAB/wEyAgAB/wQAAWUBzAL/ATICmQH/ATICmQH/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/
AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/EAADAgEDAxQBHAMsAUwDNAF5AzIBmgMw
AaQDMgGaAzQBeQMsAUwDFAEcAwMBBBAAAwQBBgMjATYDRwGwAWMCXwHlAZECiQH7AbMCqQH/AZECjAH7
AWECYAHrAzwB0wMuAawDNAGCAyUBPAMHAQkEAAHMApkB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wPq
Af8D6gH/A+oB/wGAAgAB/wPqAf8D6gH/A+oB/wGAAgAB/wGAAgAB/wFlAgAB/wEyAgAB/wEyApkB/wMA
Af8DKAH/A0wB/wMAAf8DGwH/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/
AWUBzAL/AWUBzAL/AWUBzAL/CAADBAEGAyMBNgNHAbABYwJfAeUBkQKJAfsBswKpAf8BkQKMAfsBYQJg
AesDPAHTAy4BrAM0AYIDJQE8AwcBCQgAAwIBAwMxAU8BbQJnAeoBzwK0Av8C3QL/AuIC/wLoAv8C7gL/
AvMB/wPPAf8DcgHzAzMBxgMzAZIDJQE8AwMBBAHMApkB/wGAAgAB/wGAAgAB/wGAAgAB/wPxAf8BgAIA
Af8BgAIAAf8D8QH/AYACAAH/A/EB/wGAAgAB/wGAAgAB/wPxAf8BgAIAAf8BgAIAAf8BMgIAAf8DAAH/
A8wN/wNMAf8DGwH/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/AWUBzAL/
AWUBzAL/BAADAgEDAzEBTwFtAmcB6gHPArQC/wLdAv8C4gL/AugC/wLuAv8C8wH/A88B/wNyAfMDMwHG
AzMBkgMlATwDAwEEBAADJwE4AYACdQH3AfUCxwL/AtIC/wLYAv8C3QL/AuIC/wLoAv8C9AX/A/UB/wOZ
AfsDMwHGAzQBggMUARwBzAKZAf8BmQEAATIB/wGAAgAB/wGAAgAF/wGAAgAB/wGAAgAF/wGAAgAF/wGA
AgAB/wGAAgAF/wGAAgAB/wGAAgAB/wEyAgAB/wMAAf8DzBH/AwAB/wFlAcwC/wFlAcwC/wFlAcwC/wFl
AcwC/wFlAcwC/wFlAcwC/wFlAcwC/wFlAcwC/wFlAcwC/wQAAycBOAGAAnUB9wH1AscC/wLSAv8C2AL/
At0C/wLiAv8C6AL/AvQF/wP1Af8DmQH7AzMBxgM0AYIDFAEcAwcBCQFxAmsB3QH1As0C/wLPAv8CzQL/
AtIC/wLYAv8C3QL/AuIC/wL6Cf8D9QH/A3IB8wMuAawDLAFMAcwCmQH/AZkBAAEyAf8BgAIAAf8BgAIA
Af8BgAIADf8BgAIADf8BgAIAAf8BgAIAAf8BgAIAAf8BMgIAAf8BMgKZAf8DGwH/A3YB/wPAAf8DwAH/
A8wB/wMAAf8DKAH/AwAB/wMAAf8DAAH/AwAB/wMoAf8BZQHMAv8BZQHMAv8BZQHMAv8DBwEJAXECawHd
AfUCzQL/As8C/wLNAv8C0gL/AtgC/wLdAv8C4gL/AvoJ/wP1Af8DcgHzAy4BrAMsAUwDQwFqAcYCsQL/
AtkC/wLUAv8CzwL/As0C/wHUAdsC/wHXAeIC/wHkAeoR/wHSAswB/wM8AdMDNAF3AcwCmQH/AZkBAAEy
Af8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIABf8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA
Af8BgAIAAf8BMgIAAf8BZQHMAv8BMgKZAf8DGwH/AwAB/wMABf8DAAH/AxsB/wGkAqAJ/wOZAf8DKAH/
AygB/wFlAcwC/wFlAcwC/wNDAWoBxgKxAv8C2QL/AtQC/wLPAv8CzQL/AdQB2wL/AdcB4gL/AeQB6hH/
AdICzAH/AzwB0wM0AXcDYwG2Af8C4wH/AQABLQEuAf8BAAEtAS4B/wEAAS0BLgL/Ad4B5wH/AQABLQEu
Av8B0QHzAf8BAAEtAS4C/wH4Av8BbQJzAf8BAAEtAS4B/wFtAnMB/wHMApkB/wFcAlUB6gMzAZQBzAKZ
Af8BmQEAATIB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAB/wGA
AgAB/wGAAgAB/wGAAgAB/wEyAgAB/wFlAcwC/wFlAcwC/wFlAcwC/wFlAcwC/wMABf8DAAH/AygR/wPM
Af8DAAH/AWUBzAL/AWUBzAL/A2MBtgH/AuMB/wFtAnMB/wEAAS0BLgH/AW0CcwL/Ad4B5wH/AW0CcwH/
AQABLQEuAf8BbQJzAv8B+AL/AQABLQEuAf8BAAEtAS4B/wEAAS0BLgH/AcwCmQH/AVwCVQHqAzMBlAGH
AoEB4gH/AucB/wEAAS0BLgL/At4C/wLgAv8B7wH8Af8BAAEtAS4C/wHiAfwB/wEAAS0BLgH/AfwB8AH5
Af8BAAEtAS4B/wHMApkB/wEAAS0BLgH/AcwCmQH/AXoCbAH3AzEBoQHMApkB/wGZAQABMgH/AYACAAH/
AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/
AYACAAH/AYACAAH/ATICAAH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AwAF/wMAAf8DAAH/A0wB/wPM
Df8DAAH/AZkCZQH/AZkCZQH/AYcCgQHiAf8C5wH/AQABLQEuAv8C3gH/AQABLQEuAv8B7wH8Af8BAAEt
AS4C/wHiAfwB/wEAAS0BLgH/AfwB8AH5Af8BAAEtAS4B/wHMApkB/wHMApkB/wHMApkB/wF6AmwB9wMx
AaEBngKMAf8B6QK+Af8BAAEtAS4B/wEAAS0BLgH/AfkC1gL/AekB8wH/AQABLQEuAf8BAAEtAS4B/wEA
AS0BLgH/AfkB6AHsAf8BAAEtAS4B/wHmAroB/wHmAr0B/wHmAsAB/wGmApQB/wMzAZQ0/wPxAf8D6gH/
A4AB/wGZAmUB/wGZAmUB/wGZAmUB/wGZAmUB/wMABf8DAAH/A1QB/wMbAf8DAAH/AwAB/wMABf8DAAH/
AZkCZQH/AZkCZQH/AZ4CjAH/AekCvgH/AQABLQEuAf8B8wLFAf8B+QLWAv8B6QHzAf8BAAEtAS4C/wHp
AfMB/wEAAS0BLgH/AfkB6AHsAf8BAAEtAS4B/wEAAS0BLgH/AeYCvQH/AeYCwAH/AaYClAH/AzMBlAF6
Am8B0gHbAqgB/wEAAS0BLgH/AeoCtwH/AfMCzQL/Ae4B/AH/AQABLQEuAv8B0gH1Af8BAAEtAS4C/wH0
AfwB/wEAAS0BLgL/AtgB/wEAAS0BLgL/AuIB/wGBAnwB9gM0AXcE/wGZAQABMgn/AYACAA3/AYACAAH/
AYACAA3/AYACAAH/AYACAAH/A4AB/wGZAmUB/wGZAmUB/wGZAmUB/wGZAmUB/wMABf8DGwH/AwAB/wMo
Af8DVAH/A1QB/wMABf8DAAH/AZkCZQH/AZkCZQH/AXoCbwHSAdsCqAH/AQABLQEuAf8B6gK3Af8BAAEt
AS4C/wHuAfwB/wEAAS0BLgL/AdIB9QH/AQABLQEuAv8B9AH8Af8BAAEtAS4C/wLYAv8C3QL/AuIB/wGB
AnwB9gM0AXcBYgJgAbEB1QKiAf8BAAEtAS4B/wEAAS0BLgH/AQABLQEuAv8B9gL/AW0CcwH/AQABLQEu
Af8BbQJzAv8B4AHnAf8BbQJzAf8BAAEtAS4B/wFtAnMC/wLdAf8BWgJZAeQDLAFMBP8BmQEAATIJ/wGA
AgAJ/wGAAgAR/wGAAgAB/wPxAf8D6gH/A4AB/wGZAmUB/wGZAmUB/wGZAmUB/wGZAmUB/wMACf8DmQH/
AygB/wMAAf8DGwH/AwAF/wMAAf8BmQJlAf8BmQJlAf8BYgJgAbEB1QKiAf8BbQJzAf8BAAEtAS4B/wFt
AnMC/wH2Av8BAAEtAS4C/wHSAfUB/wEAAS0BLgL/AeAB5wH/AQABLQEuAf8BAAEtAS4B/wEAAS0BLgL/
At0B/wFaAlkB5AMsAUwDNwFQAcMCvxL/AewB8QL/AdsB5wL/AdkB3gL/AtQC/wLPAv8CzQL/AtIB/wHG
Aq0B/wNHAawDFAEbBP8BmQEAATIJ/wGAAgAJ/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAF/wGAAgAB/wGA
AgAB/wGAAgAB/wEyAgAB/wGZAmUB/wGZAmUB/wGZAmUB/wGZAmUB/wMAAf8DwA3/A8wB/wNeAf8DAAX/
AwAB/wGZAmUB/wGZAmUB/wM3AVABwwK/Ev8B7AHxAv8B2wHnAv8B2QHeAv8C1AL/As8C/wLNAv8C0gH/
AcYCrQH/A0cBrAMUARsEAANpAcAD9Qr/Av4C/wLnAv8C4wL/At4C/wLZAv8C1AL/As8B/wH1AscB/wFp
AmQB4wMiATQDAgEDBP8BmQEAATIB/wGAAgAF/wGAAgAJ/wGAAgAJ/wGAAgAF/wGAAgAB/wPxAf8D6gH/
ATICAAH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AygB/wNMAf8DwBn/AwAB/wGZAmUB/wGZAmUB/wQA
A2kBwAP1Cv8C/gL/AucC/wLjAv8C3gL/AtkC/wLUAv8CzwH/AfUCxwH/AWkCZAHjAyIBNAMCAQMEAAMY
ASADgQHvA/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wGAAnUB9wMwAU0DBAEGBAAE/wGZ
AjIJ/wGAAgAB/wGAAgAJ/wGAAgAB/wGAAgAN/wGAAgAB/wGAAgAB/wOGAf8BmQJlAf8BmQJlAf8BmQJl
Af8BmQJlAf8BmQJlAf8DKAH/AwAB/wMoAf8DmRH/AwAB/wGZAmUB/wGZAmUB/wQAAxgBIAOBAe8D9Qb/
AvgC/wLsAv8C5wL/AuMC/wLeAv8C2QH/AfUCzQH/AYACdQH3AzABTQMEAQYMAAMYASADaQHAA8YC/wL3
Av8C8gL/AuwC/wLnAv8C4wH/AcYCsQH/AW0CagHQAyUBNgMCAQMIAAT/AZkCMi3/A/EB/wPqAf8DhgH/
AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AygB/wMAAf8DGwH/A3YB/wPM
Bf8DAAH/AZkCZQH/AZkCZQH/CAADGAEgA2kBwAPGAv8C9wL/AvIC/wLsAv8C5wL/AuMB/wHGArEB/wFt
AmoB0AMlATYDAgEDGAADNwFQA18BogGCAoAB0gGMAokB/wGCAn4B1ANfAaYDOwFaAwUBBxAACP8BzAKZ
Lf8D8QH/A8AB/wQAAZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/AZkCZQH/
AZkCZQH/AxsB/wMAAf8DTAH/AygB/wGZAmUB/xQAAzcBUANfAaIBggKAAdIBjAKJAf8BggJ+AdQDXwGm
AzsBWgMFAQcQAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/gQAB4AEDAgABgAEB
AeABAwHAAQEEAAHAAQEBgAUAAYABAAGABQABgEEAAYAFAAGAAQABgAEBBAABgAEBAcABAwQAAcABAwHw
AQ8CAAGAAQEB8AEPCw==
</value>
</data>
<data name="listChoices.TabIndex" type="System.Int32, mscorlib">

View File

@@ -1,55 +0,0 @@
namespace JDP {
partial class frmFilenameCorrector {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmFilenameCorrector));
this.lblDescription = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblDescription
//
resources.ApplyResources(this.lblDescription, "lblDescription");
this.lblDescription.Name = "lblDescription";
//
// frmFilenameCorrector
//
this.AllowDrop = true;
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.lblDescription);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.Name = "frmFilenameCorrector";
this.TopMost = true;
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.frmFilenameCorrector_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.frmFilenameCorrector_DragEnter);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Label lblDescription;
}
}

View File

@@ -1,67 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;
using CUETools.Processor;
namespace JDP {
public partial class frmFilenameCorrector : Form {
private Thread _workThread;
public frmFilenameCorrector() {
InitializeComponent();
}
private void frmFilenameCorrector_DragEnter(object sender, DragEventArgs e) {
if (e.Data.GetDataPresent(DataFormats.FileDrop)) {
e.Effect = DragDropEffects.Copy;
}
}
private void frmFilenameCorrector_DragDrop(object sender, DragEventArgs e) {
if ((_workThread != null) && (_workThread.IsAlive)) {
return;
}
if (e.Data.GetDataPresent(DataFormats.FileDrop)) {
_workThread = new Thread(new ParameterizedThreadStart(CorrectCUEThread));
_workThread.Start(e.Data.GetData(DataFormats.FileDrop));
}
}
private void CorrectCUEThread(object p) {
string[] paths = (string[])p;
bool oneSuccess = false;
bool cancel = false;
foreach (string path in paths) {
if (Path.GetExtension(path).ToLower() == ".cue") {
try {
string fixedCue = CUESheet.CorrectAudioFilenames(path, true);
using (StreamWriter sw = new StreamWriter(path, false, CUESheet.Encoding))
sw.Write (fixedCue);
oneSuccess = true;
}
catch (Exception ex) {
Invoke((MethodInvoker)delegate() {
cancel = (MessageBox.Show(this, path + Environment.NewLine +
Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OKCancel,
MessageBoxIcon.Error) == DialogResult.Cancel);
});
if (cancel) break;
}
}
}
if (oneSuccess) {
Invoke((MethodInvoker)delegate() {
MessageBox.Show(this, "Filename correction is complete!", "Done",
MessageBoxButtons.OK, MessageBoxIcon.Information);
});
}
}
}
}

View File

@@ -1,126 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lblDescription.Text" xml:space="preserve">
<value>Lassen Sie die CUE-Sheets hier fallen, um die Dateinamen in ihnen zu korrigieren. Die Audiodateien müssen sich im selben Ordner wie die CUE-Sheets befinden. Die Anzahl der Audiodateien in dem Verzeichnis muss mit der Anzahl der referenzierten Stücke übereinstimmen. Die Audiodateien müssen so benannt sein, dass sie beim Sortieren nach dem Dateinamen in der richtigen Reihenfolge angezeigt werden. Um mehrere CUE-Sheets gleichzeitig zu korrigieren, suchen Sie nach *.cue.</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Dateinamenkorrektor</value>
</data>
</root>

View File

@@ -1,174 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="lblDescription.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 8</value>
</data>
<data name="lblDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>272, 144</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="lblDescription.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="lblDescription.Text" xml:space="preserve">
<value>Drop CUE sheets here to correct the audio filenames contained inside. The audio files must be located in the same folder as the CUE sheet. The number of audio files in that folder must match the number of files referenced by the CUE sheet. The audio files must be named such that when sorted they are in order by track number. To correct multiple CUE sheets at once, you can drop the search results for *.cue.</value>
</data>
<data name="lblDescription.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;lblDescription.Name" xml:space="preserve">
<value>lblDescription</value>
</data>
<data name="&gt;&gt;lblDescription.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblDescription.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblDescription.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>286, 159</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Tahoma, 8.25pt</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>Manual</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Filename Corrector</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmFilenameCorrector</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -5,25 +5,40 @@ using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Globalization;
using System.IO;
using System.Threading;
using CUETools.Processor;
using CUEControls;
namespace JDP {
public partial class frmSettings : Form {
bool _reducePriority;
CUEConfig _config;
private ShellIconMgr m_icon_mgr;
public frmSettings() {
InitializeComponent();
}
public ShellIconMgr IconMgr
{
get
{
return m_icon_mgr;
}
set
{
m_icon_mgr = value;
}
}
private void frmSettings_Load(object sender, EventArgs e) {
chkReducePriority.Checked = _reducePriority;
chkPreserveHTOA.Checked = _config.preserveHTOA;
chkAutoCorrectFilenames.Checked = _config.autoCorrectFilenames;
numericFLACCompressionLevel.Value = _config.flacCompressionLevel;
numFixWhenConfidence.Value = _config.fixWhenConfidence;
numFixWhenPercent.Value = _config.fixWhenPercent;
numFixWhenConfidence.Value = _config.fixOffsetMinimumConfidence;
numFixWhenPercent.Value = _config.fixOffsetMinimumTracksPercent;
numEncodeWhenConfidence.Value = _config.encodeWhenConfidence;
numEncodeWhenPercent.Value = _config.encodeWhenPercent;
chkEncodeWhenZeroOffset.Checked = _config.encodeWhenZeroOffset;
@@ -53,8 +68,6 @@ namespace JDP {
chkReplaceSpaces.Checked = _config.replaceSpaces;
chkWriteArLogOnConvert.Checked = _config.writeArLogOnConvert;
chkWriteARLogOnVerify.Checked = _config.writeArLogOnVerify;
chkArNoUnverifiedAudio.Checked = _config.noUnverifiedOutput;
chkArFixOffset.Checked = _config.fixOffset;
chkEmbedLog.Checked = _config.embedLog;
chkExtractLog.Checked = _config.extractLog;
chkFillUpCUE.Checked = _config.fillUpCUE;
@@ -69,15 +82,17 @@ namespace JDP {
chkHDCDLW16.Checked = _config.decodeHDCDtoLW16;
chkHDCD24bit.Checked = _config.decodeHDCDto24bit;
chkOverwriteTags.Checked = _config.overwriteCUEData;
chkSingleInstance.Checked = _config.oneInstance;
textUDC1Extension.Text = _config.udc1Extension;
textUDC1Decoder.Text = _config.udc1Decoder;
textUDC1Params.Text = _config.udc1Params;
textUDC1Encoder.Text = _config.udc1Encoder;
textUDC1EncParams.Text = _config.udc1EncParams;
chkUDC1APEv2.Checked = _config.udc1APEv2;
chkUDC1ID3v2.Checked = _config.udc1ID3v2;
chkAllowMultipleInstances.Checked = !_config.oneInstance;
checkBoxWriteCUETags.Checked = _config.writeBasicTagsFromCUEData;
checkBoxCopyBasicTags.Checked = _config.copyBasicTags;
checkBoxCopyUnknownTags.Checked = _config.copyUnknownTags;
checkBoxCopyAlbumArt.Checked = _config.copyAlbumArt;
checkBoxEmbedAlbumArt.Checked = _config.embedAlbumArt;
checkBoxARVerifyUseSourceFolder.Checked = _config.arLogToSourceFolder;
checkBoxARLogVerbose.Checked = _config.arLogVerbose;
checkBoxFixToNearest.Checked = _config.fixOffsetToNearest;
textBoxARLogExtension.Text = _config.arLogExtension;
numericUpDownMaxResolution.Value = _config.maxAlbumArtSize;
string[] cultures = { "en-US", "de-DE", "ru-RU" };
foreach (string culture in cultures)
@@ -96,9 +111,59 @@ namespace JDP {
if (comboLanguage.SelectedItem == null)
comboLanguage.SelectedItem = comboLanguage.Items[0];
foreach (KeyValuePair<string, CUEToolsUDC> encoder in _config.encoders)
{
ListViewItem item = new ListViewItem(encoder.Key);
item.Tag = encoder.Value;
listViewEncoders.Items.Add(item);
}
//listViewEncoders.Items[0].Selected = true;
foreach (KeyValuePair<string, CUEToolsUDC> decoder in _config.decoders)
if (decoder.Value.path != null)
{
ListViewItem item = new ListViewItem(decoder.Key);
item.Tag = decoder.Value;
listViewDecoders.Items.Add(item);
}
//listViewDecoders.Items[0].Selected = true;
listViewFormats.SmallImageList = m_icon_mgr.ImageList;
labelEncoderExtension.ImageList = m_icon_mgr.ImageList;
labelDecoderExtension.ImageList = m_icon_mgr.ImageList;
foreach (KeyValuePair<string, CUEToolsFormat> format in _config.formats)
{
ListViewItem item = new ListViewItem(format.Key, "." + format.Key);
item.Tag = format.Value;
listViewFormats.Items.Add(item);
comboBoxEncoderExtension.Items.Add(format.Key);
comboBoxDecoderExtension.Items.Add(format.Key);
}
//listViewFormats.Items[0].Selected = true;
comboBoxFormatTagger.Items.Add(CUEToolsTagger.TagLibSharp);
comboBoxFormatTagger.Items.Add(CUEToolsTagger.APEv2);
comboBoxFormatTagger.Items.Add(CUEToolsTagger.ID3v2);
foreach (KeyValuePair<string, CUEToolsScript> script in _config.scripts)
{
ListViewItem item = new ListViewItem(script.Key);
item.Tag = script.Value;
listViewScripts.Items.Add(item);
}
listViewScriptConditions.Items[0].Tag = CUEAction.Verify;
listViewScriptConditions.Items[1].Tag = CUEAction.VerifyAndConvert;
listViewScriptConditions.Items[2].Tag = CUEAction.Convert;
EnableDisable();
}
//private void DictionaryToListView(IDictionary<> dict, ListView view)
//{
// foreach (KeyValuePair<string, object> format in dict)
// {
// ListViewItem item = new ListViewItem(format.Key, format.Key);
// item.Tag = format.Value;
// listViewFormats.Items.Add(item);
// }
//}
private void frmSettings_FormClosing(object sender, FormClosingEventArgs e) {
}
@@ -119,13 +184,22 @@ namespace JDP {
private void btnOK_Click(object sender, EventArgs e)
{
if (listViewFormats.SelectedIndices.Count > 0)
listViewFormats.Items[listViewFormats.SelectedIndices[0]].Selected = false;
if (listViewEncoders.SelectedIndices.Count > 0)
listViewEncoders.Items[listViewEncoders.SelectedIndices[0]].Selected = false;
if (listViewDecoders.SelectedIndices.Count > 0)
listViewDecoders.Items[listViewDecoders.SelectedIndices[0]].Selected = false;
if (listViewScripts.SelectedItems.Count > 0)
listViewScripts.SelectedItems[0].Selected = false;
_reducePriority = chkReducePriority.Checked;
_config.preserveHTOA = chkPreserveHTOA.Checked;
_config.autoCorrectFilenames = chkAutoCorrectFilenames.Checked;
_config.flacCompressionLevel = (uint)numericFLACCompressionLevel.Value;
_config.lossyWAVQuality = (int)numericLossyWAVQuality.Value;
_config.fixWhenPercent = (uint)numFixWhenPercent.Value;
_config.fixWhenConfidence = (uint)numFixWhenConfidence.Value;
_config.fixOffsetMinimumTracksPercent = (uint)numFixWhenPercent.Value;
_config.fixOffsetMinimumConfidence = (uint)numFixWhenConfidence.Value;
_config.encodeWhenPercent = (uint)numEncodeWhenPercent.Value;
_config.encodeWhenConfidence = (uint)numEncodeWhenConfidence.Value;
_config.encodeWhenZeroOffset = chkEncodeWhenZeroOffset.Checked;
@@ -152,8 +226,6 @@ namespace JDP {
_config.replaceSpaces = chkReplaceSpaces.Checked;
_config.writeArLogOnConvert = chkWriteArLogOnConvert.Checked;
_config.writeArLogOnVerify = chkWriteARLogOnVerify.Checked;
_config.noUnverifiedOutput = chkArNoUnverifiedAudio.Checked;
_config.fixOffset = chkArFixOffset.Checked;
_config.embedLog = chkEmbedLog.Checked;
_config.extractLog = chkExtractLog.Checked;
_config.fillUpCUE = chkFillUpCUE.Checked;
@@ -167,30 +239,24 @@ namespace JDP {
_config.decodeHDCDtoLW16 = chkHDCDLW16.Checked;
_config.decodeHDCDto24bit = chkHDCD24bit.Checked;
_config.overwriteCUEData = chkOverwriteTags.Checked;
_config.oneInstance = chkSingleInstance.Checked;
_config.oneInstance = !chkAllowMultipleInstances.Checked;
_config.writeBasicTagsFromCUEData = checkBoxWriteCUETags.Checked ;
_config.copyBasicTags = checkBoxCopyBasicTags.Checked;
_config.copyUnknownTags = checkBoxCopyUnknownTags.Checked;
_config.copyAlbumArt = checkBoxCopyAlbumArt.Checked;
_config.embedAlbumArt = checkBoxEmbedAlbumArt.Checked;
_config.udc1Extension = textUDC1Extension.Text;
_config.udc1Decoder = textUDC1Decoder.Text;
_config.udc1Params = textUDC1Params.Text;
_config.udc1Encoder = textUDC1Encoder.Text;
_config.udc1EncParams = textUDC1EncParams.Text;
_config.udc1APEv2 = chkUDC1APEv2.Checked;
_config.udc1ID3v2 = chkUDC1ID3v2.Checked;
_config.arLogToSourceFolder = checkBoxARVerifyUseSourceFolder.Checked;
_config.arLogVerbose = checkBoxARLogVerbose.Checked;
_config.fixOffsetToNearest = checkBoxFixToNearest.Checked;
_config.arLogExtension = textBoxARLogExtension.Text;
_config.maxAlbumArtSize = (int) numericUpDownMaxResolution.Value;
_config.language = ((CultureInfo)comboLanguage.SelectedItem).Name;
}
private void EnableDisable()
{
numFixWhenConfidence.Enabled =
labelFixWhenConfidence.Enabled =
numFixWhenPercent.Enabled = chkArFixOffset.Checked;
numEncodeWhenConfidence.Enabled =
labelEncodeWhenConfidence.Enabled =
numEncodeWhenPercent.Enabled =
chkEncodeWhenZeroOffset.Enabled = chkArNoUnverifiedAudio.Checked;
grpHDCD.Enabled = chkHDCDDetect.Checked;
chkHDCDLW16.Enabled = chkHDCDDetect.Checked && chkHDCDDecode.Checked;
chkHDCD24bit.Enabled = chkHDCDDetect.Checked && chkHDCDDecode.Checked;
@@ -239,5 +305,605 @@ namespace JDP {
{
EnableDisable();
}
private void tabControl1_Deselecting(object sender, TabControlCancelEventArgs e)
{
if (listViewFormats.SelectedItems.Count > 0)
listViewFormats.SelectedItems[0].Selected = false;
if (listViewEncoders.SelectedItems.Count > 0)
listViewEncoders.SelectedItems[0].Selected = false;
if (listViewDecoders.SelectedItems.Count > 0)
listViewDecoders.SelectedItems[0].Selected = false;
if (listViewScripts.SelectedItems.Count > 0)
listViewScripts.SelectedItems[0].Selected = false;
}
private void listViewFormats_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
CUEToolsFormat format = (CUEToolsFormat)listViewFormats.Items[e.Item].Tag;
if (format.builtin)
e.CancelEdit = true;
}
private void listViewFormats_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
CUEToolsFormat format;
if (e.Label == null || _config.formats.TryGetValue(e.Label, out format))
{
e.CancelEdit = true;
return;
}
format = (CUEToolsFormat)listViewFormats.Items[e.Item].Tag;
if (format.builtin)
{
e.CancelEdit = true;
return;
}
foreach (KeyValuePair<string, CUEToolsUDC> encoder in _config.encoders)
if (encoder.Value.extension == format.extension)
encoder.Value.extension = e.Label;
foreach (KeyValuePair<string, CUEToolsUDC> decoder in _config.decoders)
if (decoder.Value.extension == format.extension)
decoder.Value.extension = e.Label;
comboBoxEncoderExtension.Items.Remove(format.extension);
comboBoxEncoderExtension.Items.Add(e.Label);
comboBoxDecoderExtension.Items.Remove(format.extension);
comboBoxDecoderExtension.Items.Add(e.Label);
_config.formats.Remove(format.extension);
format.extension = e.Label;
_config.formats.Add(format.extension, format);
}
private void listViewFormats_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Insert:
{
CUEToolsFormat format;
if (_config.formats.TryGetValue("new", out format))
return;
format = new CUEToolsFormat("new", CUEToolsTagger.TagLibSharp, true, true, false, false, false, null, null, null);
_config.formats.Add("new", format);
ListViewItem item = new ListViewItem(format.extension, "." + format.extension);
item.Tag = format;
listViewFormats.Items.Add(item);
comboBoxEncoderExtension.Items.Add(format.extension);
comboBoxDecoderExtension.Items.Add(format.extension);
item.BeginEdit();
break;
}
case Keys.Delete:
{
if (listViewFormats.SelectedItems.Count <= 0)
return;
CUEToolsFormat format = (CUEToolsFormat)listViewFormats.SelectedItems[0].Tag;
if (format.builtin)
return;
List<string> decodersToRemove = new List<string>();
foreach (KeyValuePair<string, CUEToolsUDC> decoder in _config.decoders)
if (decoder.Value.extension == format.extension)
decodersToRemove.Add(decoder.Key);
foreach (string decoder in decodersToRemove)
{
_config.decoders.Remove(decoder);
foreach (ListViewItem item in listViewDecoders.Items)
if (item.Text == decoder)
{
item.Remove();
break;
}
}
List<string> encodersToRemove = new List<string>();
foreach (KeyValuePair<string, CUEToolsUDC> encoder in _config.encoders)
if (encoder.Value.extension == format.extension)
encodersToRemove.Add(encoder.Key);
foreach (string encoder in encodersToRemove)
{
_config.encoders.Remove(encoder);
foreach (ListViewItem item in listViewEncoders.Items)
if (item.Text == encoder)
{
item.Remove();
break;
}
}
_config.formats.Remove(format.extension);
listViewFormats.SelectedItems[0].Remove();
break;
}
}
}
private void listViewFormats_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
CUEToolsFormat format = (CUEToolsFormat)e.Item.Tag;
if (format == null)
return;
comboFormatLosslessEncoder.Items.Clear();
foreach (KeyValuePair<string, CUEToolsUDC> encoder in _config.encoders)
if (encoder.Value.extension == format.extension && encoder.Value.lossless)
comboFormatLosslessEncoder.Items.Add(encoder.Key);
comboFormatLosslessEncoder.SelectedItem = format.encoderLossless;
comboFormatLosslessEncoder.Enabled = format.allowLossless;
comboFormatLossyEncoder.Items.Clear();
foreach (KeyValuePair<string, CUEToolsUDC> encoder in _config.encoders)
if (encoder.Value.extension == format.extension && !encoder.Value.lossless)
comboFormatLossyEncoder.Items.Add(encoder.Key);
comboFormatLossyEncoder.SelectedItem = format.encoderLossy;
comboFormatLossyEncoder.Enabled = format.allowLossy;
comboFormatDecoder.Items.Clear();
foreach (KeyValuePair<string, CUEToolsUDC> decoder in _config.decoders)
if (decoder.Value.extension == format.extension)
comboFormatDecoder.Items.Add(decoder.Key);
comboFormatDecoder.SelectedItem = format.decoder;
comboFormatDecoder.Enabled = format.allowLossless;
comboBoxFormatTagger.SelectedItem = format.tagger;
checkBoxFormatEmbedCUESheet.Checked = format.allowEmbed;
checkBoxFormatAllowLossless.Checked = format.allowLossless;
checkBoxFormatAllowLossy.Checked = format.allowLossy;
checkBoxFormatSupportsLossyWAV.Checked = format.allowLossyWAV;
comboBoxFormatTagger.Enabled =
checkBoxFormatEmbedCUESheet.Enabled =
checkBoxFormatSupportsLossyWAV.Enabled =
checkBoxFormatAllowLossless.Enabled =
checkBoxFormatAllowLossy.Enabled =
!format.builtin;
groupBoxFormat.Visible = true;
}
else
{
groupBoxFormat.Visible = false;
CUEToolsFormat format = (CUEToolsFormat)e.Item.Tag;
if (format == null)
return;
format.encoderLossless = (string)comboFormatLosslessEncoder.SelectedItem;
format.encoderLossy = (string)comboFormatLossyEncoder.SelectedItem;
format.decoder = (string)comboFormatDecoder.SelectedItem;
if (!format.builtin)
{
format.tagger = (CUEToolsTagger)comboBoxFormatTagger.SelectedItem;
format.allowEmbed = checkBoxFormatEmbedCUESheet.Checked;
format.allowLossyWAV = checkBoxFormatSupportsLossyWAV.Checked;
format.allowLossless = checkBoxFormatAllowLossless.Checked;
format.allowLossy = checkBoxFormatAllowLossy.Checked;
}
}
}
private void comboBoxEncoderExtension_SelectedIndexChanged(object sender, EventArgs e)
{
labelEncoderExtension.ImageKey = "." + (string)comboBoxEncoderExtension.SelectedItem;
CUEToolsFormat format;
if (_config.formats.TryGetValue((string)comboBoxEncoderExtension.SelectedItem, out format))
{
checkBoxEncoderLossless.Enabled = format.allowLossless && format.allowLossy;
if (!checkBoxEncoderLossless.Enabled)
checkBoxEncoderLossless.Checked = format.allowLossless;
}
}
private void listViewEncoders_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
CUEToolsUDC encoder = (CUEToolsUDC)e.Item.Tag;
if (encoder == null) return;
comboBoxEncoderExtension.Visible = true;
comboBoxEncoderExtension.SelectedItem = encoder.extension;
labelEncoderExtension.Visible = true;
if (encoder.path != null)
{
CUEToolsFormat format;
comboBoxEncoderExtension.Enabled = true;
groupBoxExternalEncoder.Visible = true;
textBoxEncoderPath.Text = encoder.path;
textBoxEncoderParameters.Text = encoder.parameters;
checkBoxEncoderLossless.Checked = encoder.lossless;
checkBoxEncoderLossless.Enabled = _config.formats.TryGetValue(encoder.extension, out format) && format.allowLossless && format.allowLossy;
}
else
{
comboBoxEncoderExtension.Enabled = false;
switch (encoder.className)
{
case "FLACWriter":
groupBoxLibFLAC.Visible = true;
break;
case "WavPackWriter":
groupBoxLibWavpack.Visible = true;
break;
case "APEWriter":
groupBoxLibMAC_SDK.Visible = true;
break;
}
}
}
else
{
CUEToolsUDC encoder = (CUEToolsUDC)e.Item.Tag;
if (encoder == null) return;
if (encoder.path != null)
{
if (encoder.extension != (string)comboBoxEncoderExtension.SelectedItem || encoder.lossless != checkBoxEncoderLossless.Checked)
{
if (listViewFormats.SelectedItems.Count > 0)
listViewFormats.SelectedItems[0].Selected = false;
CUEToolsFormat format;
if (_config.formats.TryGetValue(encoder.extension, out format))
{
if (format.encoderLossless == encoder.name)
format.encoderLossless = null;
if (format.encoderLossy == encoder.name)
format.encoderLossy = null;
}
encoder.extension = (string)comboBoxEncoderExtension.SelectedItem;
}
encoder.path = textBoxEncoderPath.Text;
encoder.parameters = textBoxEncoderParameters.Text;
encoder.lossless = checkBoxEncoderLossless.Checked;
}
comboBoxEncoderExtension.Visible = false;
labelEncoderExtension.Visible = false;
groupBoxExternalEncoder.Visible = false;
groupBoxLibFLAC.Visible = false;
groupBoxLibWavpack.Visible = false;
groupBoxLibMAC_SDK.Visible = false;
}
}
private void listViewEncoders_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
CUEToolsUDC encoder = (CUEToolsUDC)listViewEncoders.Items[e.Item].Tag;
if (encoder.path == null)
e.CancelEdit = true;
}
private void listViewEncoders_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
CUEToolsUDC encoder;
if (e.Label == null || _config.encoders.TryGetValue(e.Label, out encoder))
{
e.CancelEdit = true;
return;
}
encoder = (CUEToolsUDC) listViewEncoders.Items[e.Item].Tag;
if (listViewFormats.SelectedItems.Count > 0)
listViewFormats.SelectedItems[0].Selected = false;
if (_config.formats[encoder.extension].encoderLossless == encoder.name)
_config.formats[encoder.extension].encoderLossless = e.Label;
if (_config.formats[encoder.extension].encoderLossy == encoder.name)
_config.formats[encoder.extension].encoderLossy = e.Label;
_config.encoders.Remove(encoder.name);
encoder.name = e.Label;
_config.encoders.Add(encoder.name, encoder);
}
private void listViewEncoders_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Insert:
{
CUEToolsUDC encoder;
if (_config.encoders.TryGetValue("new", out encoder))
return;
encoder = new CUEToolsUDC("new", "wav", true, "", "");
_config.encoders.Add("new", encoder);
ListViewItem item = new ListViewItem(encoder.name);
item.Tag = encoder;
listViewEncoders.Items.Add(item);
item.BeginEdit();
break;
}
case Keys.Delete:
{
if (listViewEncoders.SelectedItems.Count <= 0)
return;
CUEToolsUDC encoder = (CUEToolsUDC)listViewEncoders.SelectedItems[0].Tag;
if (encoder.path == null)
return;
if (_config.formats[encoder.extension].encoderLossless == encoder.name)
_config.formats[encoder.extension].encoderLossless = null;
if (_config.formats[encoder.extension].encoderLossy == encoder.name)
_config.formats[encoder.extension].encoderLossy = null;
_config.encoders.Remove(encoder.name);
listViewEncoders.Items.Remove(listViewEncoders.SelectedItems[0]);
break;
}
}
}
private void listViewDecoders_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
CUEToolsUDC decoder = (CUEToolsUDC)e.Item.Tag;
if (decoder == null) return;
comboBoxDecoderExtension.SelectedItem = decoder.extension;
comboBoxDecoderExtension.Visible = true;
labelDecoderExtension.Visible = true;
if (decoder.path != null)
{
comboBoxDecoderExtension.Enabled = true;
groupBoxExternalDecoder.Visible = true;
textBoxDecoderPath.Text = decoder.path;
textBoxDecoderParameters.Text = decoder.parameters;
}
else
{
comboBoxDecoderExtension.Enabled = false;
}
}
else
{
CUEToolsUDC decoder = (CUEToolsUDC)e.Item.Tag;
if (decoder == null) return;
if (decoder.path != null)
{
decoder.path = textBoxDecoderPath.Text;
decoder.parameters = textBoxDecoderParameters.Text;
if (decoder.extension != (string)comboBoxDecoderExtension.SelectedItem)
{
if (listViewFormats.SelectedItems.Count > 0)
listViewFormats.SelectedItems[0].Selected = false;
CUEToolsFormat format;
if (_config.formats.TryGetValue(decoder.extension, out format) && format.decoder == decoder.name)
format.decoder = null;
decoder.extension = (string)comboBoxDecoderExtension.SelectedItem;
}
}
comboBoxDecoderExtension.Visible = false;
labelDecoderExtension.Visible = false;
groupBoxExternalDecoder.Visible = false;
}
}
private void listViewDecoders_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
CUEToolsUDC decoder;
if (e.Label == null || _config.decoders.TryGetValue(e.Label, out decoder))
{
e.CancelEdit = true;
return;
}
decoder = (CUEToolsUDC)listViewDecoders.Items[e.Item].Tag;
if (listViewFormats.SelectedItems.Count > 0)
listViewFormats.SelectedItems[0].Selected = false;
if (_config.formats[decoder.extension].decoder == decoder.name)
_config.formats[decoder.extension].decoder = e.Label;
_config.decoders.Remove(decoder.name);
decoder.name = e.Label;
_config.decoders.Add(decoder.name, decoder);
}
private void listViewDecoders_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
CUEToolsUDC decoder = (CUEToolsUDC)listViewDecoders.Items[e.Item].Tag;
if (decoder.path == null)
e.CancelEdit = true;
}
private void listViewDecoders_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Insert:
{
CUEToolsUDC decoder;
if (_config.decoders.TryGetValue("new", out decoder))
return;
decoder = new CUEToolsUDC("new", "wav", true, "", "");
_config.decoders.Add("new", decoder);
ListViewItem item = new ListViewItem(decoder.name);
item.Tag = decoder;
listViewDecoders.Items.Add(item);
item.BeginEdit();
break;
}
case Keys.Delete:
{
if (listViewDecoders.SelectedItems.Count <= 0)
return;
CUEToolsUDC decoder = (CUEToolsUDC)listViewDecoders.SelectedItems[0].Tag;
if (decoder.path == null)
return;
if (_config.formats[decoder.extension].decoder == decoder.name)
_config.formats[decoder.extension].decoder = null;
_config.decoders.Remove(decoder.name);
listViewDecoders.Items.Remove(listViewDecoders.SelectedItems[0]);
break;
}
}
}
private void comboBoxDecoderExtension_SelectedIndexChanged(object sender, EventArgs e)
{
labelDecoderExtension.ImageKey = "." + (string)comboBoxDecoderExtension.SelectedItem;
}
private void listViewScripts_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
CUEToolsScript script = (CUEToolsScript)listViewScripts.Items[e.Item].Tag;
if (script.builtin)
e.CancelEdit = true;
}
private void listViewScripts_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
CUEToolsScript script;
if (e.Label == null || _config.scripts.TryGetValue(e.Label, out script))
{
e.CancelEdit = true;
return;
}
script = (CUEToolsScript)listViewScripts.Items[e.Item].Tag;
if (script.builtin)
{
e.CancelEdit = true;
return;
}
_config.scripts.Remove(script.name);
script.name = e.Label;
_config.scripts.Add(script.name, script);
}
private void listViewScripts_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Insert:
{
CUEToolsScript script;
if (_config.scripts.TryGetValue("new", out script))
return;
script = new CUEToolsScript("new", false, new CUEAction[] {}, "");
_config.scripts.Add("new", script);
ListViewItem item = new ListViewItem(script.name);
item.Tag = script;
listViewScripts.Items.Add(item);
item.BeginEdit();
break;
}
case Keys.Delete:
{
if (listViewScripts.SelectedItems.Count <= 0)
return;
CUEToolsScript script = (CUEToolsScript)listViewScripts.SelectedItems[0].Tag;
if (script.builtin)
return;
_config.scripts.Remove(script.name);
listViewScripts.Items.Remove(listViewScripts.SelectedItems[0]);
break;
}
}
}
private void listViewScripts_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
CUEToolsScript script = (CUEToolsScript)e.Item.Tag;
if (script == null) return;
foreach (ListViewItem item in listViewScriptConditions.Items)
item.Checked = script.conditions.Contains((CUEAction)item.Tag);
groupBoxScriptConditions.Visible = true;
richTextBoxScript.Text = script.code;
richTextBoxScript.Visible = true;
buttonScriptCompile.Visible = true;
groupBoxScriptConditions.Enabled =
buttonScriptCompile.Enabled =
!script.builtin;
richTextBoxScript.ReadOnly = script.builtin;
}
else
{
CUEToolsScript script = (CUEToolsScript)e.Item.Tag;
if (script == null) return;
if (!script.builtin)
{
script.conditions.Clear();
foreach (ListViewItem item in listViewScriptConditions.Items)
if (item.Checked)
script.conditions.Add((CUEAction)item.Tag);
script.code = richTextBoxScript.Text;
}
groupBoxScriptConditions.Visible = false;
richTextBoxScript.Visible = false;
buttonScriptCompile.Visible = false;
}
}
private static int WordLength(string text, int pos)
{
if ((text[pos] >= 'a' && text[pos] <= 'z') ||
(text[pos] >= 'A' && text[pos] <= 'Z') ||
(text[pos] == '_'))
{
for (int len = 1; len < text.Length - pos; len++)
{
bool ok = (text[pos + len] >= 'a' && text[pos + len] <= 'z') ||
(text[pos + len] >= 'A' && text[pos + len] <= 'Z') ||
(text[pos + len] == '_');
if (!ok)
return len;
}
return text.Length - pos;
}
return 1;
}
private void buttonScriptCompile_Click(object sender, EventArgs e)
{
richTextBoxScript.SelectAll();
richTextBoxScript.SelectionColor = richTextBoxScript.ForeColor;
richTextBoxScript.DeselectAll();
try
{
CUESheet.TryCompileScript(richTextBoxScript.Text);
}
catch (Exception ex)
{
using (StringWriter sw = new StringWriter())
{
using (StringReader sr = new StringReader(ex.Message))
{
string lineStr;
while ((lineStr = sr.ReadLine()) != null)
{
string[] s = { ".tmp(" };
string[] n = lineStr.Split(s, 2, StringSplitOptions.None);
if (n.Length == 2)
{
string[] n2 = n[1].Split(")".ToCharArray(), 2);
if (n2.Length == 2)
{
string[] n3 = n2[0].Split(",".ToCharArray(), 2);
int row, col;
if (n3.Length == 2 && int.TryParse(n3[0], out row) && int.TryParse(n3[1], out col) && row > 1)
{
int pos = richTextBoxScript.GetFirstCharIndexFromLine(row - 2);
if (pos >= 0)
{
pos += col - 1;
richTextBoxScript.Select(pos, WordLength(richTextBoxScript.Text, pos));
richTextBoxScript.SelectionColor = Color.Red;
richTextBoxScript.DeselectAll();
}
}
}
sw.WriteLine("({0}", n[1]);
}
else
sw.WriteLine("{0}", lineStr);
}
}
MessageBox.Show(this, sw.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return;
}
MessageBox.Show(this, "Script compiled successfully.", "Ok", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}

File diff suppressed because it is too large Load Diff