* ALAC decoding length mismatches fixed

* Problem with single-track albums fixed
* Added an option to disable assembler optimizations in flac
This commit is contained in:
chudov
2009-03-04 21:30:56 +00:00
parent 5deeb6ad57
commit c91f19e2a9
26 changed files with 2276 additions and 2259 deletions

View File

@@ -154,6 +154,9 @@
<ItemGroup> <ItemGroup>
<None Include="freedb.gif" /> <None Include="freedb.gif" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="arok.ico" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -60,6 +60,13 @@ namespace CUERipper.Properties {
} }
} }
internal static System.Drawing.Bitmap arok {
get {
object obj = ResourceManager.GetObject("arok", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap cddb { internal static System.Drawing.Bitmap cddb {
get { get {
object obj = ResourceManager.GetObject("cddb", resourceCulture); object obj = ResourceManager.GetObject("cddb", resourceCulture);

View File

@@ -127,4 +127,10 @@
<data name="freedb" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="freedb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\freedb.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\freedb.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="arok" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\arok.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arok" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\arok.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

View File

@@ -35,6 +35,8 @@ namespace CUERipper
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripProgressBar1 = new System.Windows.Forms.ToolStripProgressBar(); this.toolStripProgressBar1 = new System.Windows.Forms.ToolStripProgressBar();
this.toolStripProgressBar2 = new System.Windows.Forms.ToolStripProgressBar(); this.toolStripProgressBar2 = new System.Windows.Forms.ToolStripProgressBar();
this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusAr = new System.Windows.Forms.ToolStripStatusLabel();
this.listTracks = new System.Windows.Forms.ListView(); this.listTracks = new System.Windows.Forms.ListView();
this.Title = new System.Windows.Forms.ColumnHeader(); this.Title = new System.Windows.Forms.ColumnHeader();
this.TrackNo = new System.Windows.Forms.ColumnHeader(); this.TrackNo = new System.Windows.Forms.ColumnHeader();
@@ -71,7 +73,9 @@ namespace CUERipper
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel1, this.toolStripStatusLabel1,
this.toolStripProgressBar1, this.toolStripProgressBar1,
this.toolStripProgressBar2}); this.toolStripProgressBar2,
this.toolStripStatusLabel2,
this.toolStripStatusAr});
resources.ApplyResources(this.statusStrip1, "statusStrip1"); resources.ApplyResources(this.statusStrip1, "statusStrip1");
this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.SizingGrip = false; this.statusStrip1.SizingGrip = false;
@@ -97,6 +101,19 @@ namespace CUERipper
resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2"); resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2");
this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous; this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
// //
// toolStripStatusLabel2
//
this.toolStripStatusLabel2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripStatusLabel2.Name = "toolStripStatusLabel2";
resources.ApplyResources(this.toolStripStatusLabel2, "toolStripStatusLabel2");
//
// toolStripStatusAr
//
this.toolStripStatusAr.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripStatusAr.Image = global::CUERipper.Properties.Resources.arok;
this.toolStripStatusAr.Name = "toolStripStatusAr";
resources.ApplyResources(this.toolStripStatusAr, "toolStripStatusAr");
//
// listTracks // listTracks
// //
resources.ApplyResources(this.listTracks, "listTracks"); resources.ApplyResources(this.listTracks, "listTracks");
@@ -114,6 +131,7 @@ namespace CUERipper
this.listTracks.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_AfterLabelEdit); this.listTracks.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_AfterLabelEdit);
this.listTracks.DoubleClick += new System.EventHandler(this.listTracks_DoubleClick); this.listTracks.DoubleClick += new System.EventHandler(this.listTracks_DoubleClick);
this.listTracks.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listTracks_PreviewKeyDown); this.listTracks.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listTracks_PreviewKeyDown);
this.listTracks.BeforeLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_BeforeLabelEdit);
this.listTracks.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listTracks_KeyDown); this.listTracks.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listTracks_KeyDown);
// //
// Title // Title
@@ -242,6 +260,7 @@ namespace CUERipper
this.Name = "frmCUERipper"; this.Name = "frmCUERipper";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.Load += new System.EventHandler(this.frmCUERipper_Load); this.Load += new System.EventHandler(this.frmCUERipper_Load);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmCUERipper_FormClosed);
this.statusStrip1.ResumeLayout(false); this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout(); this.statusStrip1.PerformLayout();
this.contextMenuStripRelease.ResumeLayout(false); this.contextMenuStripRelease.ResumeLayout(false);
@@ -274,6 +293,8 @@ namespace CUERipper
private System.Windows.Forms.ContextMenuStrip contextMenuStripRelease; private System.Windows.Forms.ContextMenuStrip contextMenuStripRelease;
private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusAr;
} }
} }

View File

@@ -29,6 +29,7 @@ namespace CUERipper
private CUEStyle _style; private CUEStyle _style;
private CUESheet _cueSheet; private CUESheet _cueSheet;
private string _pathOut; private string _pathOut;
private string _pathFormat;
public frmCUERipper() public frmCUERipper()
{ {
@@ -66,10 +67,15 @@ namespace CUERipper
//{ //{
//} //}
SettingsReader sr = new SettingsReader("CUERipper", "settings.txt");
_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;
comboImage.SelectedIndex = sr.LoadInt32("ComboImage", 0, comboImage.Items.Count - 1) ?? 0;
UpdateDrives(); UpdateDrives();
comboLossless.SelectedIndex = 0;
comboCodec.SelectedIndex = 0;
comboImage.SelectedIndex = 0;
} }
#region private constants #region private constants
@@ -117,18 +123,19 @@ namespace CUERipper
try try
{ {
reader.Open(drive); reader.Open(drive);
}
catch
{
}
try
{
arName = reader.ARName; arName = reader.ARName;
} }
catch (Exception ex) catch (Exception ex)
{ {
comboDrives.Items.Add(drive + ": " + ex.Message); try
continue; {
arName = reader.ARName;
}
catch
{
comboDrives.Items.Add(drive + ": " + ex.Message);
continue;
}
} }
if (!AccurateRipVerify.FindDriveReadOffset(arName, out driveOffset)) if (!AccurateRipVerify.FindDriveReadOffset(arName, out driveOffset))
; //throw new Exception("Failed to find drive read offset for drive" + _ripper.ARName); ; //throw new Exception("Failed to find drive read offset for drive" + _ripper.ARName);
@@ -205,13 +212,15 @@ namespace CUERipper
try try
{ {
_cueSheet.WriteAudioFiles(".", _style); string outDir = Path.GetDirectoryName(_pathOut);
_cueSheet.WriteAudioFiles(outDir == "" ? "." : outDir, _style);
//CUESheet.WriteText(_pathOut, _cueSheet.CUESheetContents(_style)); //CUESheet.WriteText(_pathOut, _cueSheet.CUESheetContents(_style));
//CUESheet.WriteText(Path.ChangeExtension(_pathOut, ".log"), _cueSheet.LOGContents()); //CUESheet.WriteText(Path.ChangeExtension(_pathOut, ".log"), _cueSheet.LOGContents());
} }
catch (StopException) catch (StopException)
{ {
} }
#if !DEBUG
catch (Exception ex) catch (Exception ex)
{ {
this.Invoke((MethodInvoker)delegate() this.Invoke((MethodInvoker)delegate()
@@ -222,6 +231,7 @@ namespace CUERipper
DialogResult dlgRes = MessageBox.Show(this, message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult dlgRes = MessageBox.Show(this, message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}); });
} }
#endif
audioSource.ReadProgress -= new EventHandler<ReadProgressArgs>(CDReadProgress); audioSource.ReadProgress -= new EventHandler<ReadProgressArgs>(CDReadProgress);
_workThread = null; _workThread = null;
this.BeginInvoke((MethodInvoker)delegate() this.BeginInvoke((MethodInvoker)delegate()
@@ -230,6 +240,20 @@ namespace CUERipper
}); });
} }
private string GenerateOutputPath()
{
List<string> find = new List<string>();
find.Add("%D");
find.Add("%C");
find.Add("%Y");
List<string> replace = new List<string>();
replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Artist)));
replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Title)));
replace.Add(_cueSheet.Year);
return Path.ChangeExtension(General.ReplaceMultiple(_pathFormat, find, replace) ?? "image.cue", ".cue");
}
private void buttonGo_Click(object sender, EventArgs e) private void buttonGo_Click(object sender, EventArgs e)
{ {
if (_reader == null) if (_reader == null)
@@ -237,8 +261,7 @@ namespace CUERipper
_style = comboImage.SelectedIndex == 0 ? CUEStyle.SingleFileWithCUE : _style = comboImage.SelectedIndex == 0 ? CUEStyle.SingleFileWithCUE :
CUEStyle.GapsAppended; CUEStyle.GapsAppended;
_pathOut = _config.CleanseString(_cueSheet.Artist) + " - " + _pathOut = GenerateOutputPath();
_config.CleanseString(_cueSheet.Title) + ".cue";
_config.lossyWAVHybrid = comboLossless.SelectedIndex == 1; // _cueSheet.Config? _config.lossyWAVHybrid = comboLossless.SelectedIndex == 1; // _cueSheet.Config?
if (_style == CUEStyle.SingleFileWithCUE) if (_style == CUEStyle.SingleFileWithCUE)
_cueSheet.SingleFilename = Path.GetFileName(_pathOut); _cueSheet.SingleFilename = Path.GetFileName(_pathOut);
@@ -281,12 +304,14 @@ namespace CUERipper
if (comboRelease.SelectedItem == null || comboRelease.SelectedItem is string) if (comboRelease.SelectedItem == null || comboRelease.SelectedItem is string)
return; return;
_cueSheet = ((ReleaseInfo)comboRelease.SelectedItem).cueSheet; _cueSheet = ((ReleaseInfo)comboRelease.SelectedItem).cueSheet;
for (int i = 1; i <= _reader.TOC.AudioTracks; i++) for (int i = 1; i <= _reader.TOC.TrackCount; i++)
{
listTracks.Items.Add(new ListViewItem(new string[] { listTracks.Items.Add(new ListViewItem(new string[] {
_cueSheet.Tracks[i-1].Title, _reader.TOC[i].IsAudio ? _cueSheet.Tracks[i - _reader.TOC.FirstAudio].Title : "Data track",
_reader.TOC[i].Number.ToString(), _reader.TOC[i].Number.ToString(),
_reader.TOC[i].StartMSF, _reader.TOC[i].StartMSF,
_reader.TOC[i].LengthMSF })); _reader.TOC[i].LengthMSF }));
}
} }
private void comboRelease_SelectedIndexChanged(object sender, EventArgs e) private void comboRelease_SelectedIndexChanged(object sender, EventArgs e)
@@ -445,24 +470,26 @@ namespace CUERipper
{ {
} }
this.BeginInvoke((MethodInvoker)delegate() if (comboRelease.Items.Count == 0)
{ {
if (comboRelease.Items.Count == 0) ReleaseInfo r = CreateCUESheet(audioSource, null, null);
this.BeginInvoke((MethodInvoker)delegate()
{ {
ReleaseInfo r = CreateCUESheet(audioSource, null, null);
comboRelease.Items.Add(r); comboRelease.Items.Add(r);
} });
}); }
_workThread = null; _workThread = null;
this.BeginInvoke((MethodInvoker)delegate() this.BeginInvoke((MethodInvoker)delegate()
{ {
SetupControls(); SetupControls();
comboRelease.SelectedIndex = 0; comboRelease.SelectedIndex = 0;
toolStripStatusAr.Visible = ((ReleaseInfo) comboRelease.SelectedItem).cueSheet.ArVerify.ARStatus == null;
}); });
} }
private void UpdateDrive() private void UpdateDrive()
{ {
toolStripStatusAr.Visible = false;
buttonGo.Enabled = false; buttonGo.Enabled = false;
comboRelease.Items.Clear(); comboRelease.Items.Clear();
listTracks.Items.Clear(); listTracks.Items.Clear();
@@ -532,8 +559,10 @@ namespace CUERipper
private void listTracks_AfterLabelEdit(object sender, LabelEditEventArgs e) private void listTracks_AfterLabelEdit(object sender, LabelEditEventArgs e)
{ {
CUESheet cueSheet = ((ReleaseInfo)comboRelease.SelectedItem).cueSheet; CUESheet cueSheet = ((ReleaseInfo)comboRelease.SelectedItem).cueSheet;
if (e.Label != null) if (e.Label != null && _reader.TOC[e.Item + 1].IsAudio)
cueSheet.Tracks[e.Item].Title = e.Label; cueSheet.Tracks[e.Item].Title = e.Label;
else
e.CancelEdit = true;
} }
private void editToolStripMenuItem_Click(object sender, EventArgs e) private void editToolStripMenuItem_Click(object sender, EventArgs e)
@@ -564,6 +593,25 @@ namespace CUERipper
} }
e.DrawFocusRectangle(); e.DrawFocusRectangle();
} }
private void frmCUERipper_FormClosed(object sender, FormClosedEventArgs e)
{
SettingsWriter sw = new SettingsWriter("CUERipper", "settings.txt");
if (_config.createEACLOG) 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("ComboImage", comboImage.SelectedIndex);
sw.Save("PathFormat", _pathFormat);
sw.Close();
}
private void listTracks_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
if (!_reader.TOC[e.Item + 1].IsAudio)
e.CancelEdit = true;
}
} }
public class StartStop public class StartStop

View File

@@ -147,6 +147,33 @@
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <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, 371</value>
</metadata> </metadata>
<data name="toolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>254, 17</value>
</data>
<data name="toolStripStatusLabel1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="toolStripProgressBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 16</value>
</data>
<data name="toolStripProgressBar1.ToolTipText" xml:space="preserve">
<value>Track progress</value>
</data>
<data name="toolStripProgressBar2.Size" type="System.Drawing.Size, System.Drawing">
<value>140, 16</value>
</data>
<data name="toolStripProgressBar2.ToolTipText" xml:space="preserve">
<value>Disk progress</value>
</data>
<data name="toolStripStatusLabel2.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 17</value>
</data>
<data name="toolStripStatusLabel2.Text" xml:space="preserve">
<value>toolStripStatusAr</value>
</data>
<data name="toolStripStatusAr.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 17</value>
</data>
<data name="statusStrip1.Location" type="System.Drawing.Point, System.Drawing"> <data name="statusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 371</value> <value>0, 371</value>
</data> </data>
@@ -171,48 +198,9 @@
<data name="&gt;&gt;statusStrip1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;statusStrip1.ZOrder" xml:space="preserve">
<value>9</value> <value>9</value>
</data> </data>
<data name="toolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>200, 17</value>
</data>
<data name="toolStripStatusLabel1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="toolStripProgressBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>140, 16</value>
</data>
<data name="toolStripProgressBar1.ToolTipText" xml:space="preserve">
<value>Track progress</value>
</data>
<data name="toolStripProgressBar2.Size" type="System.Drawing.Size, System.Drawing">
<value>140, 16</value>
</data>
<data name="toolStripProgressBar2.ToolTipText" xml:space="preserve">
<value>Disk progress</value>
</data>
<data name="listTracks.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="listTracks.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value> <value>Top, Left, Right</value>
</data> </data>
<data name="listTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 60</value>
</data>
<data name="listTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>481, 269</value>
</data>
<data name="listTracks.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;listTracks.Name" xml:space="preserve">
<value>listTracks</value>
</data>
<data name="&gt;&gt;listTracks.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listTracks.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;listTracks.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="Title.DisplayIndex" type="System.Int32, mscorlib"> <data name="Title.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
</data> </data>
@@ -243,6 +231,27 @@
<data name="Length.Width" type="System.Int32, mscorlib"> <data name="Length.Width" type="System.Int32, mscorlib">
<value>70</value> <value>70</value>
</data> </data>
<data name="listTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 60</value>
</data>
<data name="listTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>481, 269</value>
</data>
<data name="listTracks.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;listTracks.Name" xml:space="preserve">
<value>listTracks</value>
</data>
<data name="&gt;&gt;listTracks.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listTracks.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;listTracks.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="buttonGo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="buttonGo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value> <value>Top, Left, Right</value>
</data> </data>
@@ -438,6 +447,12 @@
<metadata name="contextMenuStripRelease.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="contextMenuStripRelease.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>285, 58</value> <value>285, 58</value>
</metadata> </metadata>
<data name="editToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>94, 22</value>
</data>
<data name="editToolStripMenuItem.Text" xml:space="preserve">
<value>Edit</value>
</data>
<data name="contextMenuStripRelease.Size" type="System.Drawing.Size, System.Drawing"> <data name="contextMenuStripRelease.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 26</value> <value>95, 26</value>
</data> </data>
@@ -468,12 +483,6 @@
<data name="&gt;&gt;comboRelease.ZOrder" xml:space="preserve"> <data name="&gt;&gt;comboRelease.ZOrder" xml:space="preserve">
<value>1</value> <value>1</value>
</data> </data>
<data name="editToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>94, 22</value>
</data>
<data name="editToolStripMenuItem.Text" xml:space="preserve">
<value>Edit</value>
</data>
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing"> <data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>181, 22</value> <value>181, 22</value>
</data> </data>
@@ -524,7 +533,7 @@
<value>CenterScreen</value> <value>CenterScreen</value>
</data> </data>
<data name="$this.Text" xml:space="preserve"> <data name="$this.Text" xml:space="preserve">
<value>CUERipper 1.9.5</value> <value>CUERipper 1.9.5a</value>
</data> </data>
<data name="&gt;&gt;toolStripStatusLabel1.Name" xml:space="preserve"> <data name="&gt;&gt;toolStripStatusLabel1.Name" xml:space="preserve">
<value>toolStripStatusLabel1</value> <value>toolStripStatusLabel1</value>
@@ -544,6 +553,18 @@
<data name="&gt;&gt;toolStripProgressBar2.Type" xml:space="preserve"> <data name="&gt;&gt;toolStripProgressBar2.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolStripProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;toolStripStatusLabel2.Name" xml:space="preserve">
<value>toolStripStatusLabel2</value>
</data>
<data name="&gt;&gt;toolStripStatusLabel2.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;toolStripStatusAr.Name" xml:space="preserve">
<value>toolStripStatusAr</value>
</data>
<data name="&gt;&gt;toolStripStatusAr.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Title.Name" xml:space="preserve"> <data name="&gt;&gt;Title.Name" xml:space="preserve">
<value>Title</value> <value>Title</value>
</data> </data>

View File

@@ -144,6 +144,32 @@ namespace CUETools.AccurateRip
return _offsetedCRC[iTrack, _arOffsetRange]; return _offsetedCRC[iTrack, _arOffsetRange];
} }
public uint Confidence(int iTrack)
{
if (ARStatus != null)
return 0U;
uint conf = 0;
for (int di = 0; di < (int)AccDisks.Count; di++)
if (CRC(iTrack) == AccDisks[di].tracks[iTrack].CRC)
conf += AccDisks[di].tracks[iTrack].count;
return conf;
}
public uint Total(int iTrack)
{
if (ARStatus != null)
return 0U;
uint total = 0;
for (int di = 0; di < (int)AccDisks.Count; di++)
total += AccDisks[di].tracks[iTrack].count;
return total;
}
public uint DBCRC(int iTrack)
{
return ARStatus == null ? AccDisks[0].tracks[iTrack].CRC : 0U;
}
public uint BackupCRC(int iTrack) public uint BackupCRC(int iTrack)
{ {
return _backupCRC[iTrack]; return _backupCRC[iTrack];

View File

@@ -71,6 +71,8 @@ namespace CUETools.CDImage
_length = src._length; _length = src._length;
_isAudio = src._isAudio; _isAudio = src._isAudio;
_preEmphasis = src._preEmphasis; _preEmphasis = src._preEmphasis;
_dcp = src._dcp;
_isrc = src._isrc;
_indexes = new List<CDTrackIndex>(); _indexes = new List<CDTrackIndex>();
for (int i = 0; i < src._indexes.Count; i++) for (int i = 0; i < src._indexes.Count; i++)
_indexes.Add(new CDTrackIndex(src._indexes[i])); _indexes.Add(new CDTrackIndex(src._indexes[i]));
@@ -370,7 +372,7 @@ namespace CUETools.CDImage
return frame + (sec * 75) + (min * 60 * 75); return frame + (sec * 75) + (min * 60 * 75);
} }
public static string TimeToString(uint t) public static string TimeToString(string format, uint t)
{ {
uint min, sec, frame; uint min, sec, frame;
@@ -380,7 +382,12 @@ namespace CUETools.CDImage
t /= 60; t /= 60;
min = t; min = t;
return String.Format("{0:00}:{1:00}:{2:00}", min, sec, frame); return String.Format(format, min, sec, frame);
}
public static string TimeToString(uint t)
{
return TimeToString("{0:00}:{1:00}:{2:00}", t);
} }
string _catalog; string _catalog;

View File

@@ -39,6 +39,7 @@ namespace CUETools.Codecs.ALAC
if (!_formatRead || _bitsPerSample != 16 || _channelCount != 2 || _sampleRate != 44100) if (!_formatRead || _bitsPerSample != 16 || _channelCount != 2 || _sampleRate != 44100)
throw new Exception("Invalid ALAC file."); throw new Exception("Invalid ALAC file.");
_saved_mdat_pos = _IO.Position; _saved_mdat_pos = _IO.Position;
calculate_length();
} }
public int[,] Read(int[,] buff) public int[,] Read(int[,] buff)
@@ -58,9 +59,9 @@ namespace CUETools.Codecs.ALAC
setinfo_rice_kmodifier = read_uint8(_codecData, 32); setinfo_rice_kmodifier = read_uint8(_codecData, 32);
byte setinfo_7f = read_uint8(_codecData, 33); byte setinfo_7f = read_uint8(_codecData, 33);
ushort setinfo_80 = read_uint16(_codecData, 34); ushort setinfo_80 = read_uint16(_codecData, 34);
uint setinfo_82 = read_uint32(_codecData, 38); uint setinfo_82 = read_uint32(_codecData, 36); // maxframesize
uint setinfo_86 = read_uint32(_codecData, 42); uint setinfo_86 = read_uint32(_codecData, 40); // bitrate
uint setinfo_8a_rate = read_uint32(_codecData, 44); uint setinfo_8a_rate = read_uint32(_codecData, 44); // samplerate
_predicterror_buffer_a = new int[setinfo_max_samples_per_frame]; _predicterror_buffer_a = new int[setinfo_max_samples_per_frame];
_predicterror_buffer_b = new int[setinfo_max_samples_per_frame]; _predicterror_buffer_b = new int[setinfo_max_samples_per_frame];
@@ -225,6 +226,14 @@ namespace CUETools.Codecs.ALAC
sampleSize = _sample_byte_size[iSample]; sampleSize = _sample_byte_size[iSample];
} }
private void calculate_length()
{
_sampleCount = 0;
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];
}
private byte [] stream_read_bytes(int len) private byte [] stream_read_bytes(int len)
{ {
if (len > 512) if (len > 512)

View File

@@ -70,7 +70,7 @@ namespace CUETools { namespace Codecs { namespace FLAC {
public ref class FLACReader : public IAudioSource public ref class FLACReader : public IAudioSource
{ {
public: public:
FLACReader(String^ path, Stream^ IO) FLACReader(String^ path, Stream^ IO, bool disableAsm)
{ {
_writeDel = gcnew DecoderWriteDelegate(this, &FLACReader::WriteCallback); _writeDel = gcnew DecoderWriteDelegate(this, &FLACReader::WriteCallback);
_metadataDel = gcnew DecoderMetadataDelegate(this, &FLACReader::MetadataCallback); _metadataDel = gcnew DecoderMetadataDelegate(this, &FLACReader::MetadataCallback);
@@ -96,6 +96,9 @@ namespace CUETools { namespace Codecs { namespace FLAC {
if (!FLAC__stream_decoder_set_metadata_respond (_decoder, FLAC__METADATA_TYPE_VORBIS_COMMENT)) if (!FLAC__stream_decoder_set_metadata_respond (_decoder, FLAC__METADATA_TYPE_VORBIS_COMMENT))
throw gcnew Exception("Unable to setup the decoder."); throw gcnew Exception("Unable to setup the decoder.");
if (!FLAC__stream_decoder_set_disable_asm(_decoder, disableAsm))
throw gcnew Exception("Unable to setup the decoder.");
if (FLAC__stream_decoder_init_stream(_decoder, if (FLAC__stream_decoder_init_stream(_decoder,
(FLAC__StreamDecoderReadCallback)Marshal::GetFunctionPointerForDelegate(_readDel).ToPointer(), (FLAC__StreamDecoderReadCallback)Marshal::GetFunctionPointerForDelegate(_readDel).ToPointer(),
_IO->CanSeek?(FLAC__StreamDecoderSeekCallback)Marshal::GetFunctionPointerForDelegate(_seekDel).ToPointer():NULL, _IO->CanSeek?(FLAC__StreamDecoderSeekCallback)Marshal::GetFunctionPointerForDelegate(_seekDel).ToPointer():NULL,
@@ -451,6 +454,7 @@ namespace CUETools { namespace Codecs { namespace FLAC {
throw gcnew Exception("Bits per sample must be 16..24."); throw gcnew Exception("Bits per sample must be 16..24.");
_initialized = false; _initialized = false;
_disableAsm = false;
_path = path; _path = path;
_finalSampleCount = 0; _finalSampleCount = 0;
_samplesWritten = 0; _samplesWritten = 0;
@@ -571,6 +575,15 @@ namespace CUETools { namespace Codecs { namespace FLAC {
} }
} }
property Boolean DisableAsm {
Boolean get() {
return _disableAsm;
}
void set(Boolean value) {
_disableAsm = value;
}
}
property Int32 PaddingLength { property Int32 PaddingLength {
Int32 get() { Int32 get() {
return _paddingLength; return _paddingLength;
@@ -594,6 +607,7 @@ namespace CUETools { namespace Codecs { namespace FLAC {
Boolean _verify; Boolean _verify;
FLAC__StreamMetadata **_metadataList; FLAC__StreamMetadata **_metadataList;
int _metadataCount; int _metadataCount;
bool _disableAsm;
void Initialize() { void Initialize() {
FLAC__StreamMetadata *padding, *seektable, *vorbiscomment; FLAC__StreamMetadata *padding, *seektable, *vorbiscomment;
@@ -656,6 +670,8 @@ namespace CUETools { namespace Codecs { namespace FLAC {
FLAC__stream_encoder_set_verify(_encoder, _verify); FLAC__stream_encoder_set_verify(_encoder, _verify);
FLAC__stream_encoder_set_disable_asm(_encoder, _disableAsm);
if (_finalSampleCount != 0) { if (_finalSampleCount != 0) {
FLAC__stream_encoder_set_total_samples_estimate(_encoder, _finalSampleCount); FLAC__stream_encoder_set_total_samples_estimate(_encoder, _finalSampleCount);
} }

View File

@@ -25,7 +25,7 @@ namespace CUETools.Processor
return new ALACReader(path, IO); return new ALACReader(path, IO);
#if !MONO #if !MONO
case ".flac": case ".flac":
return new FLACReader(path, IO); return new FLACReader(path, IO, config.disableAsm);
case ".wv": case ".wv":
return new WavPackReader(path, IO, null); return new WavPackReader(path, IO, null);
case ".ape": case ".ape":
@@ -74,6 +74,7 @@ namespace CUETools.Processor
dest = new FLACWriter(path, bitsPerSample, channelCount, sampleRate); dest = new FLACWriter(path, bitsPerSample, channelCount, sampleRate);
((FLACWriter)dest).CompressionLevel = (int)config.flacCompressionLevel; ((FLACWriter)dest).CompressionLevel = (int)config.flacCompressionLevel;
((FLACWriter)dest).Verify = config.flacVerify; ((FLACWriter)dest).Verify = config.flacVerify;
((FLACWriter)dest).DisableAsm = config.disableAsm;
break; break;
case ".wv": case ".wv":
dest = new WavPackWriter(path, bitsPerSample, channelCount, sampleRate); dest = new WavPackWriter(path, bitsPerSample, channelCount, sampleRate);

View File

@@ -262,6 +262,7 @@ namespace CUETools.Processor
public bool overwriteCUEData; public bool overwriteCUEData;
public bool filenamesANSISafe; public bool filenamesANSISafe;
public bool bruteForceDTL; public bool bruteForceDTL;
public bool createEACLOG;
public bool detectHDCD; public bool detectHDCD;
public bool decodeHDCD; public bool decodeHDCD;
public bool wait750FramesForHDCD; public bool wait750FramesForHDCD;
@@ -275,6 +276,7 @@ namespace CUETools.Processor
public bool decodeHDCDto24bit; public bool decodeHDCDto24bit;
public string udc1Extension, udc1Decoder, udc1Params, udc1Encoder, udc1EncParams; public string udc1Extension, udc1Decoder, udc1Params, udc1Encoder, udc1EncParams;
public bool udc1APEv2, udc1ID3v2; public bool udc1APEv2, udc1ID3v2;
public bool disableAsm;
public CUEConfig() public CUEConfig()
{ {
@@ -299,7 +301,7 @@ namespace CUETools.Processor
wvExtraMode = 0; wvExtraMode = 0;
wvStoreMD5 = false; wvStoreMD5 = false;
keepOriginalFilenames = true; keepOriginalFilenames = true;
trackFilenameFormat = "%N-%A-%T"; trackFilenameFormat = "%N. %T";
singleFilenameFormat = "%F"; singleFilenameFormat = "%F";
removeSpecial = false; removeSpecial = false;
specialExceptions = "-()"; specialExceptions = "-()";
@@ -310,6 +312,7 @@ namespace CUETools.Processor
overwriteCUEData = false; overwriteCUEData = false;
filenamesANSISafe = true; filenamesANSISafe = true;
bruteForceDTL = false; bruteForceDTL = false;
createEACLOG = false;
detectHDCD = true; detectHDCD = true;
wait750FramesForHDCD = true; wait750FramesForHDCD = true;
decodeHDCD = false; decodeHDCD = false;
@@ -324,6 +327,8 @@ namespace CUETools.Processor
udc1Extension = udc1Decoder = udc1Params = udc1Encoder = udc1EncParams = ""; udc1Extension = udc1Decoder = udc1Params = udc1Encoder = udc1EncParams = "";
udc1ID3v2 = udc1APEv2 = false; udc1ID3v2 = udc1APEv2 = false;
disableAsm = false;
} }
public void Save (SettingsWriter sw) public void Save (SettingsWriter sw)
@@ -359,7 +364,8 @@ namespace CUETools.Processor
sw.Save("FillUpCUE", fillUpCUE); sw.Save("FillUpCUE", fillUpCUE);
sw.Save("OverwriteCUEData", overwriteCUEData); sw.Save("OverwriteCUEData", overwriteCUEData);
sw.Save("FilenamesANSISafe", filenamesANSISafe); sw.Save("FilenamesANSISafe", filenamesANSISafe);
sw.Save("BruteForceDTL", bruteForceDTL); if (bruteForceDTL) sw.Save("BruteForceDTL", bruteForceDTL);
if (createEACLOG) sw.Save("CreateEACLOG", createEACLOG);
sw.Save("DetectHDCD", detectHDCD); sw.Save("DetectHDCD", detectHDCD);
sw.Save("Wait750FramesForHDCD", wait750FramesForHDCD); sw.Save("Wait750FramesForHDCD", wait750FramesForHDCD);
sw.Save("DecodeHDCD", decodeHDCD); sw.Save("DecodeHDCD", decodeHDCD);
@@ -371,6 +377,7 @@ namespace CUETools.Processor
sw.Save("LossyWAVHybrid", lossyWAVHybrid); sw.Save("LossyWAVHybrid", lossyWAVHybrid);
sw.Save("DecodeHDCDToLossyWAV16", decodeHDCDtoLW16); sw.Save("DecodeHDCDToLossyWAV16", decodeHDCDtoLW16);
sw.Save("DecodeHDCDTo24bit", decodeHDCDto24bit); sw.Save("DecodeHDCDTo24bit", decodeHDCDto24bit);
sw.Save("DisableAsm", disableAsm);
if (udc1Extension != "") if (udc1Extension != "")
{ {
sw.Save("UDC1Extension", udc1Extension); sw.Save("UDC1Extension", udc1Extension);
@@ -407,7 +414,7 @@ namespace CUETools.Processor
wvStoreMD5 = sr.LoadBoolean("WVStoreMD5") ?? false; wvStoreMD5 = sr.LoadBoolean("WVStoreMD5") ?? false;
keepOriginalFilenames = sr.LoadBoolean("KeepOriginalFilenames") ?? true; keepOriginalFilenames = sr.LoadBoolean("KeepOriginalFilenames") ?? true;
singleFilenameFormat = sr.Load("SingleFilenameFormat") ?? "%F"; singleFilenameFormat = sr.Load("SingleFilenameFormat") ?? "%F";
trackFilenameFormat = sr.Load("TrackFilenameFormat") ?? "%N-%A-%T"; trackFilenameFormat = sr.Load("TrackFilenameFormat") ?? "%N. %T";
removeSpecial = sr.LoadBoolean("RemoveSpecialCharacters") ?? false; removeSpecial = sr.LoadBoolean("RemoveSpecialCharacters") ?? false;
specialExceptions = sr.Load("SpecialCharactersExceptions") ?? "-()"; specialExceptions = sr.Load("SpecialCharactersExceptions") ?? "-()";
replaceSpaces = sr.LoadBoolean("ReplaceSpaces") ?? false; replaceSpaces = sr.LoadBoolean("ReplaceSpaces") ?? false;
@@ -417,6 +424,7 @@ namespace CUETools.Processor
overwriteCUEData = sr.LoadBoolean("OverwriteCUEData") ?? false; overwriteCUEData = sr.LoadBoolean("OverwriteCUEData") ?? false;
filenamesANSISafe = sr.LoadBoolean("FilenamesANSISafe") ?? true; filenamesANSISafe = sr.LoadBoolean("FilenamesANSISafe") ?? true;
bruteForceDTL = sr.LoadBoolean("BruteForceDTL") ?? false; bruteForceDTL = sr.LoadBoolean("BruteForceDTL") ?? false;
createEACLOG = sr.LoadBoolean("createEACLOG") ?? false;
detectHDCD = sr.LoadBoolean("DetectHDCD") ?? true; detectHDCD = sr.LoadBoolean("DetectHDCD") ?? true;
wait750FramesForHDCD = sr.LoadBoolean("Wait750FramesForHDCD") ?? true; wait750FramesForHDCD = sr.LoadBoolean("Wait750FramesForHDCD") ?? true;
decodeHDCD = sr.LoadBoolean("DecodeHDCD") ?? false; decodeHDCD = sr.LoadBoolean("DecodeHDCD") ?? false;
@@ -429,6 +437,8 @@ namespace CUETools.Processor
decodeHDCDtoLW16 = sr.LoadBoolean("DecodeHDCDToLossyWAV16") ?? false; decodeHDCDtoLW16 = sr.LoadBoolean("DecodeHDCDToLossyWAV16") ?? false;
decodeHDCDto24bit = sr.LoadBoolean("DecodeHDCDTo24bit") ?? true; decodeHDCDto24bit = sr.LoadBoolean("DecodeHDCDTo24bit") ?? true;
disableAsm = sr.LoadBoolean("DisableAsm") ?? false;
udc1Extension = sr.Load("UDC1Extension") ?? ""; udc1Extension = sr.Load("UDC1Extension") ?? "";
udc1Decoder = sr.Load("UDC1Decoder") ?? ""; udc1Decoder = sr.Load("UDC1Decoder") ?? "";
udc1Params = sr.Load("UDC1Params") ?? ""; udc1Params = sr.Load("UDC1Params") ?? "";
@@ -520,8 +530,6 @@ namespace CUETools.Processor
private uint? _minDataTrackLength; private uint? _minDataTrackLength;
private string _accurateRipId; private string _accurateRipId;
private string _accurateRipIdActual; private string _accurateRipIdActual;
private string _mbDiscId;
private string _mbReleaseId;
private string _eacLog; private string _eacLog;
private string _cuePath; private string _cuePath;
private TagLib.File _fileInfo; private TagLib.File _fileInfo;
@@ -532,6 +540,7 @@ namespace CUETools.Processor
private CUEConfig _config; private CUEConfig _config;
private string _cddbDiscIdTag; private string _cddbDiscIdTag;
private bool _isCD; private bool _isCD;
private string _ripperLog;
private CDDriveReader _ripper; private CDDriveReader _ripper;
private bool _isArchive; private bool _isArchive;
private List<string> _archiveContents; private List<string> _archiveContents;
@@ -628,19 +637,24 @@ namespace CUETools.Processor
Artist = cdEntry.Artist; Artist = cdEntry.Artist;
Title = cdEntry.Title; Title = cdEntry.Title;
for (int i = 0; i < _toc.AudioTracks; i++) for (int i = 0; i < _toc.AudioTracks; i++)
{
Tracks[i].Title = cdEntry.Tracks[i].Title; Tracks[i].Title = cdEntry.Tracks[i].Title;
Tracks[i].Artist = cdEntry.Artist;
}
} }
public List<object> LookupAlbumInfo() public List<object> LookupAlbumInfo()
{ {
List<object> Releases = new List<object>(); List<object> Releases = new List<object>();
ShowProgress("Looking up album via freedb...", 0.0, 0.0, null, null);
FreedbHelper m_freedb = new FreedbHelper(); FreedbHelper m_freedb = new FreedbHelper();
m_freedb.UserName = "gchudov"; m_freedb.UserName = "gchudov";
m_freedb.Hostname = "gmail.com"; m_freedb.Hostname = "gmail.com";
m_freedb.ClientName = "CUETools"; m_freedb.ClientName = "CUETools";
m_freedb.Version = "1.9.4"; m_freedb.Version = "1.9.5";
m_freedb.SetDefaultSiteAddress("freedb.org"); m_freedb.SetDefaultSiteAddress("freedb.org");
QueryResult queryResult; QueryResult queryResult;
@@ -660,16 +674,21 @@ namespace CUETools.Processor
if (code == FreedbHelper.ResponseCodes.CODE_210 || if (code == FreedbHelper.ResponseCodes.CODE_210 ||
code == FreedbHelper.ResponseCodes.CODE_211) code == FreedbHelper.ResponseCodes.CODE_211)
{ {
int i = 0;
foreach (QueryResult qr in coll) foreach (QueryResult qr in coll)
{ {
ShowProgress("Looking up album via freedb...", 0.0, (++i + 0.0) / coll.Count, null, null);
CheckStop();
code = m_freedb.Read(qr, out cdEntry); code = m_freedb.Read(qr, out cdEntry);
if (code == FreedbHelper.ResponseCodes.CODE_210) if (code == FreedbHelper.ResponseCodes.CODE_210)
Releases.Add(cdEntry); Releases.Add(cdEntry);
} }
} }
} }
catch (Exception) catch (Exception ex)
{ {
if (ex is StopException)
throw ex;
} }
StringCollection DiscIds = new StringCollection(); StringCollection DiscIds = new StringCollection();
@@ -801,8 +820,9 @@ namespace CUETools.Processor
iscdda2wavlog = true; iscdda2wavlog = true;
} }
} }
if (tocFromLog.TrackCount > 0 && tocFromLog[1].IsAudio) if (tocFromLog.TrackCount == 0)
tocFromLog[1][0].Start = 0; return null;
tocFromLog[1][0].Start = 0;
return tocFromLog; return tocFromLog;
} }
@@ -1181,14 +1201,14 @@ namespace CUETools.Processor
} }
// Store the audio filenames, generating generic names if necessary // Store the audio filenames, generating generic names if necessary
_hasSingleFilename = (_sourcePaths.Count == 1); _hasSingleFilename = _sourcePaths.Count == 1;
_singleFilename = _hasSingleFilename ? Path.GetFileName(_sourcePaths[0]) : _singleFilename = _hasSingleFilename ? Path.GetFileName(_sourcePaths[0]) :
"Range.wav"; "Range.wav";
_hasHTOAFilename = (_sourcePaths.Count == (TrackCount + 1)); _hasHTOAFilename = (_sourcePaths.Count == (TrackCount + 1));
_htoaFilename = _hasHTOAFilename ? Path.GetFileName(_sourcePaths[0]) : "01.00.wav"; _htoaFilename = _hasHTOAFilename ? Path.GetFileName(_sourcePaths[0]) : "01.00.wav";
_hasTrackFilenames = (_sourcePaths.Count == TrackCount) || _hasHTOAFilename; _hasTrackFilenames = !_hasEmbeddedCUESheet && !_hasSingleFilename && (_sourcePaths.Count == TrackCount || _hasHTOAFilename);
for (i = 0; i < TrackCount; i++) { for (i = 0; i < TrackCount; i++) {
_trackFilenames.Add( _hasTrackFilenames ? Path.GetFileName( _trackFilenames.Add( _hasTrackFilenames ? Path.GetFileName(
_sourcePaths[i + (_hasHTOAFilename ? 1 : 0)]) : String.Format("{0:00}.wav", i + 1) ); _sourcePaths[i + (_hasHTOAFilename ? 1 : 0)]) : String.Format("{0:00}.wav", i + 1) );
@@ -1713,19 +1733,191 @@ namespace CUETools.Processor
return (int)audioSource.Length; return (int)audioSource.Length;
} }
public static void WriteText(string path, string text) public static void WriteText(string path, string text, Encoding encoding)
{ {
bool utf8Required = CUESheet.Encoding.GetString(CUESheet.Encoding.GetBytes(text)) != text; StreamWriter sw1 = new StreamWriter(path, false, encoding);
StreamWriter sw1 = new StreamWriter(path, false, utf8Required ? Encoding.UTF8 : CUESheet.Encoding);
sw1.Write(text); sw1.Write(text);
sw1.Close(); sw1.Close();
} }
public string LOGContents() public static void WriteText(string path, string text)
{ {
if (!_isCD || _ripper == null) bool utf8Required = CUESheet.Encoding.GetString(CUESheet.Encoding.GetBytes(text)) != text;
return null; WriteText(path, text, utf8Required ? Encoding.UTF8 : CUESheet.Encoding);
}
public string LOGContents
{
get
{
return _ripperLog;
}
}
#if !MONO #if !MONO
public void CreateExactAudioCopyLOG(string[] destPaths, CUEStyle style)
{
StringWriter logWriter = new StringWriter(CultureInfo.InvariantCulture);
string eacHeader = "Exact Audio Copy V0.99 prebeta 4 from 23. January 2008\r\n" +
"\r\n" +
"EAC extraction logfile from {0:d'.' MMMM yyyy', 'H':'mm}\r\n" +
"\r\n" +
"{1} / {2}\r\n" +
"\r\n" +
"Used drive : {3} Adapter: 1 ID: 0\r\n" +
"\r\n" +
"Read mode : {4}\r\n" +
"Utilize accurate stream : Yes\r\n" +
"Defeat audio cache : Yes\r\n" +
"Make use of C2 pointers : No\r\n" +
"\r\n" +
"Read offset correction : {5}\r\n" +
"Overread into Lead-In and Lead-Out : No\r\n" +
"Fill up missing offset samples with silence : Yes\r\n" +
"Delete leading and trailing silent blocks : No\r\n" +
"Null samples used in CRC calculations : Yes\r\n" +
"Used interface : Native Win32 interface for Win NT & 2000\r\n" +
"Gap handling : Appended to previous track\r\n" +
"\r\n" +
"Used output format : User Defined Encoder\r\n" +
"Selected bitrate : 768 kBit/s\r\n" +
"Quality : High\r\n" +
"Add ID3 tag : No\r\n" +
"Command line compressor : C:\\Program Files (x86)\\EAC\\FLAC\\FLAC.EXE\r\n" +
"Additional command line options : -8 -V -T \"ARTIST=%a\" -T \"TITLE=%t\" -T \"ALBUM=%g\" -T \"DATE=%y\" -T \"TRACKNUMBER=%n\" -T \"GENRE=%m\" %s -o %d\r\n";
logWriter.WriteLine(eacHeader,
DateTime.Now,
Artist, Title,
_ripper.EACName,
_ripper.CorrectionQuality > 0 ? "Secure" : "Burst",
_ripper.DriveOffset);
logWriter.WriteLine();
logWriter.WriteLine("TOC of the extracted CD");
logWriter.WriteLine();
logWriter.WriteLine(" Track | Start | Length | Start sector | End sector ");
logWriter.WriteLine(" ---------------------------------------------------------");
for (int track = 1; track <= _toc.TrackCount; track++)
logWriter.WriteLine("{0,9} | {1,8} | {2,8} | {3,8} | {4,8} ",
_toc[track].Number,
CDImageLayout.TimeToString("{0,2}:{1:00}.{2:00}", _toc[track].Start),
CDImageLayout.TimeToString("{0,2}:{1:00}.{2:00}", _toc[track].Length),
_toc[track].Start,
_toc[track].End);
logWriter.WriteLine();
bool htoaToFile = ((style == CUEStyle.GapsAppended) && _config.preserveHTOA &&
(_toc.Pregap != 0));
int accurateTracks = 0, knownTracks = 0;
if (style != CUEStyle.SingleFile && style != CUEStyle.SingleFileWithCUE)
{
logWriter.WriteLine();
for (int track = 0; track < _toc.AudioTracks; track++)
{
logWriter.WriteLine("Track {0,2}", track + 1);
logWriter.WriteLine();
logWriter.WriteLine(" Filename {0}", Path.ChangeExtension(Path.GetFullPath(destPaths[track + (htoaToFile ? 1 : 0)]), ".wav"));
if (_toc[track + _toc.FirstAudio].Pregap > 0 || track + _toc.FirstAudio == 1)
{
logWriter.WriteLine();
logWriter.WriteLine(" Pre-gap length {0}", CDImageLayout.TimeToString("0:{0:00}:{1:00}.{2:00}", _toc[track + _toc.FirstAudio].Pregap + (track + _toc.FirstAudio == 1 ? 150U : 0U)));
}
logWriter.WriteLine();
logWriter.WriteLine(" Peak level {0:F1} %", Tracks[track].PeakLevel / 327.68);
logWriter.WriteLine(" Track quality 100.0 %");
logWriter.WriteLine(" Test CRC {0:X8}", _arVerify.CRC32(track + 1));
logWriter.WriteLine(" Copy CRC {0:X8}", _arVerify.CRC32(track + 1));
if (_arVerify.Total(track) == 0)
logWriter.WriteLine(" Track not present in AccurateRip database");
else
{
knownTracks++;
if (_arVerify.Confidence(track) == 0)
logWriter.WriteLine(" Track cannot be verified as accurate (confidence {0}) [{1:X8}], AccurateRip returned [{2:X8}]", _arVerify.Total(track), _arVerify.CRC(track), _arVerify.DBCRC(track));
else
{
logWriter.WriteLine(" Accurately ripped (confidence {0}) [{1:X8}]", _arVerify.Confidence(track), _arVerify.CRC(track));
accurateTracks++;
}
}
logWriter.WriteLine(" Copy OK");
logWriter.WriteLine();
}
}
else
{
logWriter.WriteLine();
logWriter.WriteLine("Range status and errors");
logWriter.WriteLine();
logWriter.WriteLine("Selected range");
logWriter.WriteLine();
logWriter.WriteLine(" Filename {0}", Path.ChangeExtension(Path.GetFullPath(destPaths[0]), ".wav"));
logWriter.WriteLine();
logWriter.WriteLine(" Peak level {0:F1} %", Tracks[0].PeakLevel / 327.68); // TODO: max(tracks)
logWriter.WriteLine(" Range quality 100.0 %");
logWriter.WriteLine(" Test CRC {0:X8}", _arVerify.CRC32(0));
logWriter.WriteLine(" Copy CRC {0:X8}", _arVerify.CRC32(0));
logWriter.WriteLine(" Copy OK");
logWriter.WriteLine();
logWriter.WriteLine("No errors occurred");
logWriter.WriteLine();
logWriter.WriteLine();
logWriter.WriteLine("AccurateRip summary");
for (int track = 1; track <= _toc.TrackCount; track++)
{
if (_arVerify.Total(track - 1) == 0)
logWriter.WriteLine("Track {0,2} not present in AccurateRip database", track + 1);
else
{
knownTracks++;
if (_arVerify.Confidence(track - 1) == 0)
logWriter.WriteLine("Track {3,2} cannot be verified as accurate (confidence {0}) [{1:X8}], AccurateRip returned [{2:X8}]", _arVerify.Total(track - 1), _arVerify.CRC(track - 1), _arVerify.DBCRC(track - 1), track + 1);
else
{
logWriter.WriteLine("Track {2,2} Accurately ripped (confidence {0}) [{1:X8}]", _arVerify.Confidence(track - 1), _arVerify.CRC(track - 1), track + 1);
accurateTracks++;
}
}
}
}
logWriter.WriteLine();
if (knownTracks == 0)
logWriter.WriteLine("None of the tracks are present in the AccurateRip database");
else if (accurateTracks == 0)
logWriter.WriteLine("No tracks could be verified as accurate\r\nYou may have a different pressing from the one(s) in the database\r\n");
else if (accurateTracks == TrackCount)
logWriter.WriteLine("All tracks accurately ripped");
else
{
logWriter.WriteLine("{0,2} track(s) accurately ripped", accurateTracks);
if (TrackCount - knownTracks > 0)
logWriter.WriteLine("{0,2} track(s) not present in the AccurateRip database", TrackCount - knownTracks);
logWriter.WriteLine();
logWriter.WriteLine("Some tracks could not be verified as accurate");
}
logWriter.WriteLine();
if (style != CUEStyle.SingleFile && style != CUEStyle.SingleFileWithCUE)
{
logWriter.WriteLine("No errors occurred");
logWriter.WriteLine();
}
logWriter.WriteLine("End of status report");
logWriter.Close();
_ripperLog = logWriter.ToString();
}
#endif
public void CreateRipperLOG(string[] destPaths, CUEStyle style)
{
if (!_isCD || _ripper == null || _ripperLog != null)
return;
#if !MONO
if (_config.createEACLOG)
{
CreateExactAudioCopyLOG(destPaths, style);
return;
}
StringWriter logWriter = new StringWriter(); StringWriter logWriter = new StringWriter();
logWriter.WriteLine("{0}", CDDriveReader.RipperVersion()); logWriter.WriteLine("{0}", CDDriveReader.RipperVersion());
logWriter.WriteLine("Extraction logfile from : {0}", DateTime.Now); logWriter.WriteLine("Extraction logfile from : {0}", DateTime.Now);
@@ -1754,12 +1946,24 @@ namespace CUETools.Processor
logWriter.WriteLine(" Track | Start | Length | Start sector | End sector"); logWriter.WriteLine(" Track | Start | Length | Start sector | End sector");
logWriter.WriteLine(" ---------------------------------------------------------"); logWriter.WriteLine(" ---------------------------------------------------------");
for (int track = 1; track <= _toc.TrackCount; track++) for (int track = 1; track <= _toc.TrackCount; track++)
logWriter.WriteLine("{0,9} | {1,8} | {2,8} | {3,9} | {4,9}", logWriter.WriteLine("{0,9} | {1,8} | {2,8} | {3,8} | {4,8}",
_toc[track].Number, _toc[track].Number,
_toc[track].StartMSF, _toc[track].StartMSF,
_toc[track].LengthMSF, _toc[track].LengthMSF,
_toc[track].Start, _toc[track].Start,
_toc[track].End); _toc[track].End);
logWriter.WriteLine();
logWriter.WriteLine(" Track | Pregap | Indexes");
logWriter.WriteLine(" ---------------------------------------------------------");
for (int track = 1; track <= _toc.TrackCount; track++)
logWriter.WriteLine("{0,9} | {1,8} | {2,2}",
_toc[track].Number,
CDImageLayout.TimeToString(_toc[track].Pregap + (track == 1 ? 150U : 0U)),
_toc[track].LastIndex);
logWriter.WriteLine();
logWriter.WriteLine("Destination files");
foreach (string path in destPaths)
logWriter.WriteLine(" {0}", path);
bool wereErrors = false; bool wereErrors = false;
for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++) for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++)
{ {
@@ -1795,9 +1999,7 @@ namespace CUETools.Processor
logWriter.WriteLine(); logWriter.WriteLine();
logWriter.WriteLine("End of status report"); logWriter.WriteLine("End of status report");
logWriter.Close(); logWriter.Close();
return logWriter.ToString(); _ripperLog = logWriter.ToString();
#else
return null;
#endif #endif
} }
@@ -2085,7 +2287,27 @@ namespace CUETools.Processor
} }
} }
else else
{
//CDImageLayout toc2 = new CDImageLayout(_toc);
//bool found = false;
//for (uint len = 0; len < 150; len++)
//{
// toc2[toc2.TrackCount].Length = _toc[_toc.TrackCount].Length + len;
// string id = AccurateRipVerify.CalculateAccurateRipId(toc2);
// _arVerify.ContactAccurateRip(id);
// if (_arVerify.AccResult != HttpStatusCode.NotFound)
// {
// _accurateRipId = id;
// found = true;
// break;
// }
// ShowProgress((string)"Contacting AccurateRip database...", 0, len / 150.0, null, null);
// CheckStop();
// lock (this) { Monitor.Wait(this, 1000); }
//}
//if (!found)
_arVerify.ContactAccurateRip(_accurateRipId); _arVerify.ContactAccurateRip(_accurateRipId);
}
if (_accurateRipMode == AccurateRipMode.Verify) if (_accurateRipMode == AccurateRipMode.Verify)
{ {
@@ -2167,9 +2389,9 @@ namespace CUETools.Processor
destLengths = CalculateAudioFileLengths(style); // need to recalc, might have changed after scanning the CD destLengths = CalculateAudioFileLengths(style); // need to recalc, might have changed after scanning the CD
if (_outputFormat != OutputAudioFormat.NoAudio || _accurateRipMode == AccurateRipMode.Verify || _accurateRipMode == AccurateRipMode.VerifyPlusCRCs) if (_outputFormat != OutputAudioFormat.NoAudio || _accurateRipMode == AccurateRipMode.Verify || _accurateRipMode == AccurateRipMode.VerifyPlusCRCs)
WriteAudioFilesPass(dir, style, destPaths, destLengths, htoaToFile, _accurateRipMode == AccurateRipMode.Verify || _accurateRipMode == AccurateRipMode.VerifyPlusCRCs); WriteAudioFilesPass(dir, style, destPaths, destLengths, htoaToFile, _accurateRipMode == AccurateRipMode.Verify || _accurateRipMode == AccurateRipMode.VerifyPlusCRCs);
CreateRipperLOG(destPaths, style);
if (_accurateRipMode != AccurateRipMode.Verify && _accurateRipMode != AccurateRipMode.VerifyPlusCRCs) if (_accurateRipMode != AccurateRipMode.Verify && _accurateRipMode != AccurateRipMode.VerifyPlusCRCs)
{ {
string logContents = LOGContents();
string cueContents = CUESheetContents(style); string cueContents = CUESheetContents(style);
uint tracksMatch = 0; uint tracksMatch = 0;
int bestOffset = 0; int bestOffset = 0;
@@ -2179,11 +2401,11 @@ namespace CUETools.Processor
_arVerify.AccResult == HttpStatusCode.OK) _arVerify.AccResult == HttpStatusCode.OK)
FindBestOffset(1, true, out tracksMatch, out bestOffset); FindBestOffset(1, true, out tracksMatch, out bestOffset);
if (logContents != null) if (_ripperLog != null)
WriteText(Path.ChangeExtension(_cuePath, ".log"), logContents); WriteText(Path.ChangeExtension(_cuePath, ".log"), _ripperLog, _config.createEACLOG ? CUESheet.Encoding : Encoding.UTF8);
else else
if (_eacLog != null && _config.extractLog) if (_eacLog != null && _config.extractLog)
WriteText(Path.ChangeExtension(_cuePath, ".log"), _eacLog); WriteText(Path.ChangeExtension(_cuePath, ".log"), _eacLog);
if (style == CUEStyle.SingleFileWithCUE || style == CUEStyle.SingleFile) if (style == CUEStyle.SingleFileWithCUE || style == CUEStyle.SingleFile)
{ {
@@ -2193,24 +2415,30 @@ namespace CUETools.Processor
WriteText(_cuePath, cueContents); WriteText(_cuePath, cueContents);
if (_outputFormat != OutputAudioFormat.NoAudio) if (_outputFormat != OutputAudioFormat.NoAudio)
{ {
NameValueCollection tags = GenerateAlbumTags(bestOffset, style == CUEStyle.SingleFileWithCUE); NameValueCollection tags = GenerateAlbumTags(bestOffset, style == CUEStyle.SingleFileWithCUE, _ripperLog ?? _eacLog);
TagLib.UserDefined.AdditionalFileTypes.Config = _config; TagLib.UserDefined.AdditionalFileTypes.Config = _config;
TagLib.File fileInfo = TagLib.File.Create(new TagLib.File.LocalFileAbstraction(destPaths[0])); TagLib.File fileInfo = TagLib.File.Create(new TagLib.File.LocalFileAbstraction(destPaths[0]));
if (Tagging.UpdateTags(fileInfo, tags, _config)) if (Tagging.UpdateTags(fileInfo, tags, _config))
{ {
fileInfo.Tag.DiscCount = (_tracks[0]._fileInfo ?? _fileInfo).Tag.DiscCount; // TODO: GetCommonTag? uint year;
fileInfo.Tag.Disc = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Disc; if (_tracks[0]._fileInfo != null || _fileInfo != null)
{
fileInfo.Tag.DiscCount = (_tracks[0]._fileInfo ?? _fileInfo).Tag.DiscCount; // TODO: GetCommonTag?
fileInfo.Tag.Disc = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Disc;
//fileInfo.Tag.Performers = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Performers;
fileInfo.Tag.AlbumArtists = (_tracks[0]._fileInfo ?? _fileInfo).Tag.AlbumArtists;
fileInfo.Tag.Album = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Album;
fileInfo.Tag.Year = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Year;
fileInfo.Tag.Genres = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Genres;
fileInfo.Tag.Pictures = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Pictures;
}
if (fileInfo.Tag.Album == null && Title != "") fileInfo.Tag.Album = Title;
//fileInfo.Tag.Title = null; //fileInfo.Tag.Title = null;
//fileInfo.Tag.Performers = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Performers;
//if (fileInfo.Tag.Performers.Length == 0) fileInfo.Tag.Performers = new string[] { _tracks[iTrack].Artist != "" ? _tracks[iTrack].Artist : Artist }; //if (fileInfo.Tag.Performers.Length == 0) fileInfo.Tag.Performers = new string[] { _tracks[iTrack].Artist != "" ? _tracks[iTrack].Artist : Artist };
fileInfo.Tag.AlbumArtists = (_tracks[0]._fileInfo ?? _fileInfo).Tag.AlbumArtists; if (fileInfo.Tag.AlbumArtists.Length == 0 && Artist != "") fileInfo.Tag.AlbumArtists = new string[] { Artist };
if (fileInfo.Tag.AlbumArtists.Length == 0) fileInfo.Tag.AlbumArtists = new string[] { Artist }; if (fileInfo.Tag.Genres.Length == 0 && Genre != "") fileInfo.Tag.Genres = new string[] { Genre };
fileInfo.Tag.Album = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Album ?? Title; if (fileInfo.Tag.Year == 0 && Year != "" && uint.TryParse(Year, out year))
uint year = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Year; fileInfo.Tag.Year = year;
fileInfo.Tag.Year = year != 0 ? year : ("" != Year && uint.TryParse(Year, out year)) ? year : 0;
fileInfo.Tag.Genres = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Genres;
if (fileInfo.Tag.Genres.Length == 0) fileInfo.Tag.Genres = new string[] { Genre };
fileInfo.Tag.Pictures = (_tracks[0]._fileInfo ?? _fileInfo).Tag.Pictures;
fileInfo.Save(); fileInfo.Save();
} }
} }
@@ -2229,21 +2457,28 @@ namespace CUETools.Processor
TagLib.File fileInfo = TagLib.File.Create(new TagLib.File.LocalFileAbstraction(path)); TagLib.File fileInfo = TagLib.File.Create(new TagLib.File.LocalFileAbstraction(path));
if (Tagging.UpdateTags(fileInfo, tags, _config)) if (Tagging.UpdateTags(fileInfo, tags, _config))
{ {
fileInfo.Tag.TrackCount = (uint) TrackCount; uint year;
fileInfo.Tag.Track = (uint) iTrack + 1; if (_tracks[iTrack]._fileInfo != null || _fileInfo != null)
fileInfo.Tag.DiscCount = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.DiscCount; {
fileInfo.Tag.Disc = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Disc; fileInfo.Tag.DiscCount = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.DiscCount;
fileInfo.Tag.Disc = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Disc;
fileInfo.Tag.Performers = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Performers;
fileInfo.Tag.AlbumArtists = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.AlbumArtists;
fileInfo.Tag.Album = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Album;
fileInfo.Tag.Year = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Year;
fileInfo.Tag.Genres = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Genres;
fileInfo.Tag.Pictures = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Pictures;
}
fileInfo.Tag.TrackCount = (uint)TrackCount;
fileInfo.Tag.Track = (uint)iTrack + 1;
fileInfo.Tag.Title = _tracks[iTrack]._fileInfo != null ? _tracks[iTrack]._fileInfo.Tag.Title : _tracks[iTrack].Title; fileInfo.Tag.Title = _tracks[iTrack]._fileInfo != null ? _tracks[iTrack]._fileInfo.Tag.Title : _tracks[iTrack].Title;
fileInfo.Tag.Performers = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Performers; if (fileInfo.Tag.Album == null && Title != "") fileInfo.Tag.Album = Title;
if (fileInfo.Tag.Performers.Length == 0) fileInfo.Tag.Performers = new string[] { _tracks[iTrack].Artist != "" ? _tracks[iTrack].Artist : Artist }; if (fileInfo.Tag.Performers.Length == 0 && _tracks[iTrack].Artist != "") fileInfo.Tag.Performers = new string[] { _tracks[iTrack].Artist };
fileInfo.Tag.AlbumArtists = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.AlbumArtists; if (fileInfo.Tag.Performers.Length == 0 && Artist != "") fileInfo.Tag.Performers = new string[] { Artist };
if (fileInfo.Tag.AlbumArtists.Length == 0) fileInfo.Tag.AlbumArtists = new string[] { Artist }; if (fileInfo.Tag.AlbumArtists.Length == 0 && Artist != "") fileInfo.Tag.AlbumArtists = new string[] { Artist };
fileInfo.Tag.Album = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Album ?? Title; if (fileInfo.Tag.Genres.Length == 0 && Genre != "") fileInfo.Tag.Genres = new string[] { Genre };
uint year = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Year; if (fileInfo.Tag.Year == 0 && Year != "" && uint.TryParse(Year, out year))
fileInfo.Tag.Year = year != 0 ? year : ("" != Year && uint.TryParse(Year, out year)) ? year : 0; fileInfo.Tag.Year = year;
fileInfo.Tag.Genres = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Genres;
if (fileInfo.Tag.Genres.Length == 0) fileInfo.Tag.Genres = new string[] { Genre };
fileInfo.Tag.Pictures = (_tracks[iTrack]._fileInfo ?? _fileInfo).Tag.Pictures;
fileInfo.Save(); fileInfo.Save();
} }
} }
@@ -2366,7 +2601,7 @@ namespace CUETools.Processor
return destTags; return destTags;
} }
private NameValueCollection GenerateAlbumTags(int bestOffset, bool fWithCUE) private NameValueCollection GenerateAlbumTags(int bestOffset, bool fWithCUE, string logContents)
{ {
NameValueCollection destTags = new NameValueCollection(); NameValueCollection destTags = new NameValueCollection();
@@ -2426,11 +2661,8 @@ namespace CUETools.Processor
destTags.Remove("LOG"); destTags.Remove("LOG");
destTags.Remove("LOGFILE"); destTags.Remove("LOGFILE");
destTags.Remove("EACLOG"); destTags.Remove("EACLOG");
string logContents = LOGContents();
if (logContents != null) if (logContents != null)
destTags.Add("LOG", logContents); destTags.Add("LOG", logContents);
else if (_eacLog != null)
destTags.Add("LOG", _eacLog);
} }
if (_config.writeArTagsOnConvert) if (_config.writeArTagsOnConvert)
@@ -2631,6 +2863,8 @@ namespace CUETools.Processor
} }
if (_accurateRipMode != AccurateRipMode.None) if (_accurateRipMode != AccurateRipMode.None)
_arVerify.Write(sampleBuffer, copyCount); _arVerify.Write(sampleBuffer, copyCount);
if (iTrack > 0 || iIndex > 0)
Tracks[iTrack + (iIndex == 0 ? -1 : 0)].MeasurePeakLevel(sampleBuffer, copyCount);
currentOffset += copyCount; currentOffset += copyCount;
diskOffset += copyCount; diskOffset += copyCount;
@@ -2670,12 +2904,8 @@ namespace CUETools.Processor
{ {
if (_toc[_toc.FirstAudio + iTrack].ISRC != null) if (_toc[_toc.FirstAudio + iTrack].ISRC != null)
General.SetCUELine(_tracks[iTrack].Attributes, "ISRC", _toc[_toc.FirstAudio + iTrack].ISRC, false); General.SetCUELine(_tracks[iTrack].Attributes, "ISRC", _toc[_toc.FirstAudio + iTrack].ISRC, false);
//if (_toc[_toc.FirstAudio + iTrack].DCP || _toc[_toc.FirstAudio + iTrack].PreEmphasis) if (_toc[_toc.FirstAudio + iTrack].DCP || _toc[_toc.FirstAudio + iTrack].PreEmphasis)
//cueWriter.WriteLine(" FLAGS{0}{1}", audioSource.TOC[track].PreEmphasis ? " PRE" : "", audioSource.TOC[track].DCP ? " DCP" : ""); General.SetCUELine(_tracks[iTrack].Attributes, "FLAGS", (_toc[_toc.FirstAudio + iTrack].PreEmphasis ? " PRE" : "") + (_toc[_toc.FirstAudio + iTrack].DCP ? " DCP" : ""), false);
if (_toc[_toc.FirstAudio + iTrack].DCP)
General.SetCUELine(_tracks[iTrack].Attributes, "FLAGS", "DCP", false);
if (_toc[_toc.FirstAudio + iTrack].PreEmphasis)
General.SetCUELine(_tracks[iTrack].Attributes, "FLAGS", "PRE", false);
} }
} }
#endif #endif
@@ -3303,11 +3533,29 @@ namespace CUETools.Processor
public class TrackInfo { public class TrackInfo {
private List<CUELine> _attributes; private List<CUELine> _attributes;
private int _peakLevel;
public TagLib.File _fileInfo; public TagLib.File _fileInfo;
public TrackInfo() { public TrackInfo() {
_attributes = new List<CUELine>(); _attributes = new List<CUELine>();
_fileInfo = null; _fileInfo = null;
_peakLevel = 0;
}
public void MeasurePeakLevel(int[,] samplesBuffer, uint sampleCount)
{
for (uint i = 0; i < sampleCount; i++)
for (uint j = 0; j < 2; j++)
if (_peakLevel < Math.Abs(samplesBuffer[i, j]))
_peakLevel = Math.Abs(samplesBuffer[i, j]);
}
public int PeakLevel
{
get
{
return _peakLevel;
}
} }
public List<CUELine> Attributes { public List<CUELine> Attributes {

View File

@@ -201,10 +201,7 @@ namespace CUETools.Ripper.SCSI
m_device = new Device(m_logger); m_device = new Device(m_logger);
if (!m_device.Open(m_device_letter)) if (!m_device.Open(m_device_letter))
{ throw new Exception("Open failed: " + WinDev.Win32ErrorToString(m_device.LastError));
m_device = null;
throw new Exception("Open failed: SCSI error");
}
// Get device info // Get device info
st = m_device.Inquiry(out m_inqury_result); st = m_device.Inquiry(out m_inqury_result);
@@ -1088,6 +1085,14 @@ namespace CUETools.Ripper.SCSI
} }
} }
public string EACName
{
get
{
return m_inqury_result.VendorIdentification.TrimEnd(' ', '\0') + " " + m_inqury_result.ProductIdentification.TrimEnd(' ', '\0');
}
}
public ulong Position public ulong Position
{ {
get get

View File

@@ -481,6 +481,7 @@ Global
{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}.Release|x64.ActiveCfg = Release|x64 {5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}.Release|x64.ActiveCfg = Release|x64
{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}.Release|x64.Build.0 = Release|x64 {5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}.Release|x64.Build.0 = Release|x64
{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}.Release|x86.ActiveCfg = Release|Any CPU {5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}.Release|x86.ActiveCfg = Release|Any CPU
{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}.Release|x86.Build.0 = Release|Any CPU
{B3DF599C-1C8F-451D-91E4-DD766210DA1F}.Debug|Any CPU.ActiveCfg = Debug|Win32 {B3DF599C-1C8F-451D-91E4-DD766210DA1F}.Debug|Any CPU.ActiveCfg = Debug|Win32
{B3DF599C-1C8F-451D-91E4-DD766210DA1F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 {B3DF599C-1C8F-451D-91E4-DD766210DA1F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{B3DF599C-1C8F-451D-91E4-DD766210DA1F}.Debug|Mixed Platforms.Build.0 = Debug|x64 {B3DF599C-1C8F-451D-91E4-DD766210DA1F}.Debug|Mixed Platforms.Build.0 = Debug|x64

View File

@@ -12,12 +12,13 @@ namespace JDP {
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
if (args.Length > 1 && (args[0] == "/verify" || args[0] == "/convert" || args[0] == "/fix")) if (args.Length > 1 && (args[0] == "/verify" || args[0] == "/crc" || args[0] == "/convert" || args[0] == "/fix"))
{ {
frmBatch batch = new frmBatch(); frmBatch batch = new frmBatch();
batch.AccurateRip = batch.AccurateRip =
args[0] == "/convert" ? AccurateRipMode.VerifyAndConvert : args[0] == "/convert" ? AccurateRipMode.VerifyAndConvert :
args[0] == "/fix" ? AccurateRipMode.VerifyThenConvert : args[0] == "/fix" ? AccurateRipMode.VerifyThenConvert :
args[0] == "/crc" ? AccurateRipMode.VerifyPlusCRCs :
AccurateRipMode.Verify; AccurateRipMode.Verify;
if (args.Length == 2 && args[1][0] != '@') if (args.Length == 2 && args[1][0] != '@')

View File

@@ -37,62 +37,43 @@ namespace JDP
// //
// linkLabel1 // linkLabel1
// //
this.linkLabel1.AccessibleDescription = null;
this.linkLabel1.AccessibleName = null;
resources.ApplyResources(this.linkLabel1, "linkLabel1"); resources.ApplyResources(this.linkLabel1, "linkLabel1");
this.linkLabel1.Font = null;
this.linkLabel1.Name = "linkLabel1"; this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.TabStop = true; this.linkLabel1.TabStop = true;
this.linkLabel1.UseCompatibleTextRendering = true; this.linkLabel1.UseCompatibleTextRendering = true;
// //
// textBox1 // textBox1
// //
this.textBox1.AccessibleDescription = null;
this.textBox1.AccessibleName = null;
resources.ApplyResources(this.textBox1, "textBox1");
this.textBox1.BackColor = System.Drawing.SystemColors.Control; this.textBox1.BackColor = System.Drawing.SystemColors.Control;
this.textBox1.BackgroundImage = null;
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox1.Font = null; resources.ApplyResources(this.textBox1, "textBox1");
this.textBox1.Name = "textBox1"; this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true; this.textBox1.ReadOnly = true;
// //
// button1 // button1
// //
this.button1.AccessibleDescription = null;
this.button1.AccessibleName = null;
resources.ApplyResources(this.button1, "button1");
this.button1.BackgroundImage = null;
this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button1.Font = null; resources.ApplyResources(this.button1, "button1");
this.button1.Name = "button1"; this.button1.Name = "button1";
this.button1.UseVisualStyleBackColor = true; this.button1.UseVisualStyleBackColor = true;
// //
// linkLabel2 // linkLabel2
// //
this.linkLabel2.AccessibleDescription = null;
this.linkLabel2.AccessibleName = null;
resources.ApplyResources(this.linkLabel2, "linkLabel2"); resources.ApplyResources(this.linkLabel2, "linkLabel2");
this.linkLabel2.Font = null;
this.linkLabel2.Name = "linkLabel2"; this.linkLabel2.Name = "linkLabel2";
this.linkLabel2.TabStop = true; this.linkLabel2.TabStop = true;
this.linkLabel2.UseCompatibleTextRendering = true; this.linkLabel2.UseCompatibleTextRendering = true;
// //
// frmAbout // frmAbout
// //
this.AccessibleDescription = null;
this.AccessibleName = null;
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackgroundImage = null;
this.CancelButton = this.button1; this.CancelButton = this.button1;
this.Controls.Add(this.linkLabel2); this.Controls.Add(this.linkLabel2);
this.Controls.Add(this.button1); this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1); this.Controls.Add(this.textBox1);
this.Controls.Add(this.linkLabel1); this.Controls.Add(this.linkLabel1);
this.Font = null;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.Icon = null;
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.Name = "frmAbout"; this.Name = "frmAbout";

View File

@@ -117,92 +117,53 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="&gt;&gt;textBox1.Parent" xml:space="preserve"> <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<value>$this</value> <data name="linkLabel1.AutoSize" type="System.Boolean, mscorlib">
</data> <value>True</value>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="linkLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>265, 17</value>
</data>
<data name="&gt;&gt;button1.Name" xml:space="preserve">
<value>button1</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="linkLabel2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<value>180, 228</value>
</data>
<data name="&gt;&gt;linkLabel1.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="linkLabel2.LinkArea" type="System.Windows.Forms.LinkArea, System.Windows.Forms">
<value>36, 28</value>
</data>
<data name="&gt;&gt;textBox1.Name" xml:space="preserve">
<value>textBox1</value>
</data>
<data name="linkLabel1.LinkArea" type="System.Windows.Forms.LinkArea, System.Windows.Forms"> <data name="linkLabel1.LinkArea" type="System.Windows.Forms.LinkArea, System.Windows.Forms">
<value>27, 22</value> <value>27, 22</value>
</data> </data>
<data name="linkLabel2.Location" type="System.Drawing.Point, System.Drawing"> <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<value>46, 195</value> <data name="linkLabel1.Location" type="System.Drawing.Point, System.Drawing">
<value>87, 10</value>
</data> </data>
<data name="linkLabel2.Size" type="System.Drawing.Size, System.Drawing"> <data name="linkLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>346, 17</value> <value>265, 17</value>
</data> </data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve"> <data name="linkLabel1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;linkLabel1.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;linkLabel2.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="button1.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="&gt;&gt;textBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;button1.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;linkLabel2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="linkLabel2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</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>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>415, 151</value>
</data>
<data name="linkLabel2.Text" xml:space="preserve">
<value>Updates and support can be found at http://www.hydrogenaudio.org.</value>
</data>
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>439, 263</value>
</data>
<data name="linkLabel1.Text" xml:space="preserve"> <data name="linkLabel1.Text" xml:space="preserve">
<value>Copyright 2006-2008 Moitah http://www.moitah.net/.</value> <value>Copyright 2006-2008 Moitah http://www.moitah.net/.</value>
</data> </data>
<data name="&gt;&gt;linkLabel2.Name" xml:space="preserve"> <data name="linkLabel1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>linkLabel2</value> <value>MiddleCenter</value>
</data> </data>
<data name="button1.Text" xml:space="preserve"> <data name="&gt;&gt;linkLabel1.Name" xml:space="preserve">
<value>Close</value> <value>linkLabel1</value>
</data>
<data name="&gt;&gt;linkLabel1.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;linkLabel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;linkLabel1.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 41</value>
</data>
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>415, 151</value>
</data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data> </data>
<data name="textBox1.Text" xml:space="preserve"> <data name="textBox1.Text" xml:space="preserve">
<value>AccurateRip, Monkey's Audio, Apple Lossless, RAR archives, tags <value>AccurateRip, Monkey's Audio, Apple Lossless, RAR archives, tags
@@ -216,61 +177,100 @@ unrar.dll (c) Alexander Roshal
Unrar.cs (c) Michael A. McCloskey Unrar.cs (c) Michael A. McCloskey
hdcd.dll (c) Christopher Key</value> hdcd.dll (c) Christopher Key</value>
</data> </data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 41</value>
</data>
<data name="&gt;&gt;linkLabel1.Name" xml:space="preserve">
<value>linkLabel1</value>
</data>
<data name="linkLabel2.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>About CUETools v1.9.5</value>
</data>
<data name="linkLabel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="&gt;&gt;linkLabel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="textBox1.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms"> <data name="textBox1.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Center</value> <value>Center</value>
</data> </data>
<data name="linkLabel1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> <data name="&gt;&gt;textBox1.Name" xml:space="preserve">
<value>MiddleCenter</value> <value>textBox1</value>
</data> </data>
<data name="linkLabel1.TabIndex" type="System.Int32, mscorlib"> <data name="&gt;&gt;textBox1.Type" xml:space="preserve">
<value>0</value> <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms"> <data name="&gt;&gt;textBox1.Parent" xml:space="preserve">
<value>CenterParent</value>
</data>
<data name="&gt;&gt;button1.Parent" xml:space="preserve">
<value>$this</value> <value>$this</value>
</data> </data>
<data name="linkLabel1.Location" type="System.Drawing.Point, System.Drawing">
<value>87, 10</value>
</data>
<data name="linkLabel2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="&gt;&gt;textBox1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;textBox1.ZOrder" xml:space="preserve">
<value>2</value> <value>2</value>
</data> </data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<value>frmAbout</value> <value>180, 228</value>
</data> </data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib"> <data name="button1.Size" type="System.Drawing.Size, System.Drawing">
<value>2</value> <value>75, 23</value>
</data>
<data name="button1.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="button1.Text" xml:space="preserve">
<value>Close</value>
</data>
<data name="&gt;&gt;button1.Name" xml:space="preserve">
<value>button1</value>
</data>
<data name="&gt;&gt;button1.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;button1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="linkLabel2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="linkLabel2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="linkLabel2.LinkArea" type="System.Windows.Forms.LinkArea, System.Windows.Forms">
<value>36, 28</value>
</data>
<data name="linkLabel2.Location" type="System.Drawing.Point, System.Drawing">
<value>46, 195</value>
</data>
<data name="linkLabel2.Size" type="System.Drawing.Size, System.Drawing">
<value>346, 17</value>
</data>
<data name="linkLabel2.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="linkLabel2.Text" xml:space="preserve">
<value>Updates and support can be found at http://www.hydrogenaudio.org.</value>
</data>
<data name="linkLabel2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;linkLabel2.Name" xml:space="preserve">
<value>linkLabel2</value>
</data> </data>
<data name="&gt;&gt;linkLabel2.Type" xml:space="preserve"> <data name="&gt;&gt;linkLabel2.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;linkLabel2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;linkLabel2.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"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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>439, 263</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>About CUETools v1.9.5a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmAbout</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> </root>

View File

@@ -132,7 +132,7 @@ namespace JDP
else else
cueName = Path.GetFileNameWithoutExtension(pathIn) + ".cue"; cueName = Path.GetFileNameWithoutExtension(pathIn) + ".cue";
bool outputAudio = _accurateRip != AccurateRipMode.Verify; bool outputAudio = _accurateRip != AccurateRipMode.Verify && _accurateRip != AccurateRipMode.VerifyPlusCRCs;
cueSheet.Open(pathIn); cueSheet.Open(pathIn);
if (outputAudio) if (outputAudio)
{ {
@@ -173,7 +173,7 @@ namespace JDP
progressBar2.Value = 0; progressBar2.Value = 0;
if (cueSheet.IsCD) if (cueSheet.IsCD)
{ {
textBox1.Text += cueSheet.LOGContents(); textBox1.Text += cueSheet.LOGContents;
textBox1.Show(); textBox1.Show();
} }
else if (cueSheet.AccurateRip != AccurateRipMode.None) else if (cueSheet.AccurateRip != AccurateRipMode.None)
@@ -270,7 +270,7 @@ namespace JDP
if (_reducePriority) if (_reducePriority)
Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.Idle; Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.Idle;
if (_accurateRip != AccurateRipMode.Verify) if (_accurateRip != AccurateRipMode.Verify && _accurateRip != AccurateRipMode.VerifyPlusCRCs)
txtOutputFile.Show(); txtOutputFile.Show();
StartConvert(); StartConvert();

View File

@@ -104,125 +104,78 @@ namespace JDP {
// //
// btnConvert // btnConvert
// //
this.btnConvert.AccessibleDescription = null;
this.btnConvert.AccessibleName = null;
resources.ApplyResources(this.btnConvert, "btnConvert"); resources.ApplyResources(this.btnConvert, "btnConvert");
this.btnConvert.BackgroundImage = null;
this.btnConvert.Font = null;
this.btnConvert.Name = "btnConvert"; this.btnConvert.Name = "btnConvert";
this.toolTip1.SetToolTip(this.btnConvert, resources.GetString("btnConvert.ToolTip"));
this.btnConvert.UseVisualStyleBackColor = true; this.btnConvert.UseVisualStyleBackColor = true;
this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click); this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click);
// //
// grpCUEPaths // grpCUEPaths
// //
this.grpCUEPaths.AccessibleDescription = null;
this.grpCUEPaths.AccessibleName = null;
resources.ApplyResources(this.grpCUEPaths, "grpCUEPaths");
this.grpCUEPaths.BackgroundImage = null;
this.grpCUEPaths.Controls.Add(this.btnBrowseOutput); this.grpCUEPaths.Controls.Add(this.btnBrowseOutput);
this.grpCUEPaths.Controls.Add(this.btnBrowseInput); this.grpCUEPaths.Controls.Add(this.btnBrowseInput);
this.grpCUEPaths.Controls.Add(this.lblOutput); this.grpCUEPaths.Controls.Add(this.lblOutput);
this.grpCUEPaths.Controls.Add(this.lblInput); this.grpCUEPaths.Controls.Add(this.lblInput);
this.grpCUEPaths.Controls.Add(this.txtOutputPath); this.grpCUEPaths.Controls.Add(this.txtOutputPath);
this.grpCUEPaths.Controls.Add(this.txtInputPath); this.grpCUEPaths.Controls.Add(this.txtInputPath);
this.grpCUEPaths.Font = null; resources.ApplyResources(this.grpCUEPaths, "grpCUEPaths");
this.grpCUEPaths.Name = "grpCUEPaths"; this.grpCUEPaths.Name = "grpCUEPaths";
this.grpCUEPaths.TabStop = false; this.grpCUEPaths.TabStop = false;
this.toolTip1.SetToolTip(this.grpCUEPaths, resources.GetString("grpCUEPaths.ToolTip"));
// //
// btnBrowseOutput // btnBrowseOutput
// //
this.btnBrowseOutput.AccessibleDescription = null;
this.btnBrowseOutput.AccessibleName = null;
resources.ApplyResources(this.btnBrowseOutput, "btnBrowseOutput"); resources.ApplyResources(this.btnBrowseOutput, "btnBrowseOutput");
this.btnBrowseOutput.BackgroundImage = null;
this.btnBrowseOutput.Font = null;
this.btnBrowseOutput.Name = "btnBrowseOutput"; this.btnBrowseOutput.Name = "btnBrowseOutput";
this.toolTip1.SetToolTip(this.btnBrowseOutput, resources.GetString("btnBrowseOutput.ToolTip"));
this.btnBrowseOutput.UseVisualStyleBackColor = true; this.btnBrowseOutput.UseVisualStyleBackColor = true;
this.btnBrowseOutput.Click += new System.EventHandler(this.btnBrowseOutput_Click); this.btnBrowseOutput.Click += new System.EventHandler(this.btnBrowseOutput_Click);
// //
// btnBrowseInput // btnBrowseInput
// //
this.btnBrowseInput.AccessibleDescription = null;
this.btnBrowseInput.AccessibleName = null;
resources.ApplyResources(this.btnBrowseInput, "btnBrowseInput"); resources.ApplyResources(this.btnBrowseInput, "btnBrowseInput");
this.btnBrowseInput.BackgroundImage = null;
this.btnBrowseInput.Font = null;
this.btnBrowseInput.Name = "btnBrowseInput"; this.btnBrowseInput.Name = "btnBrowseInput";
this.toolTip1.SetToolTip(this.btnBrowseInput, resources.GetString("btnBrowseInput.ToolTip"));
this.btnBrowseInput.UseVisualStyleBackColor = true; this.btnBrowseInput.UseVisualStyleBackColor = true;
this.btnBrowseInput.Click += new System.EventHandler(this.btnBrowseInput_Click); this.btnBrowseInput.Click += new System.EventHandler(this.btnBrowseInput_Click);
// //
// lblOutput // lblOutput
// //
this.lblOutput.AccessibleDescription = null;
this.lblOutput.AccessibleName = null;
resources.ApplyResources(this.lblOutput, "lblOutput"); resources.ApplyResources(this.lblOutput, "lblOutput");
this.lblOutput.Font = null;
this.lblOutput.Name = "lblOutput"; this.lblOutput.Name = "lblOutput";
this.toolTip1.SetToolTip(this.lblOutput, resources.GetString("lblOutput.ToolTip"));
// //
// lblInput // lblInput
// //
this.lblInput.AccessibleDescription = null;
this.lblInput.AccessibleName = null;
resources.ApplyResources(this.lblInput, "lblInput"); resources.ApplyResources(this.lblInput, "lblInput");
this.lblInput.Font = null;
this.lblInput.Name = "lblInput"; this.lblInput.Name = "lblInput";
this.toolTip1.SetToolTip(this.lblInput, resources.GetString("lblInput.ToolTip"));
// //
// txtOutputPath // txtOutputPath
// //
this.txtOutputPath.AccessibleDescription = null;
this.txtOutputPath.AccessibleName = null;
this.txtOutputPath.AllowDrop = true; this.txtOutputPath.AllowDrop = true;
resources.ApplyResources(this.txtOutputPath, "txtOutputPath"); resources.ApplyResources(this.txtOutputPath, "txtOutputPath");
this.txtOutputPath.BackgroundImage = null;
this.txtOutputPath.Font = null;
this.txtOutputPath.Name = "txtOutputPath"; this.txtOutputPath.Name = "txtOutputPath";
this.toolTip1.SetToolTip(this.txtOutputPath, resources.GetString("txtOutputPath.ToolTip"));
this.txtOutputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop); this.txtOutputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop);
this.txtOutputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter); this.txtOutputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter);
// //
// txtInputPath // txtInputPath
// //
this.txtInputPath.AccessibleDescription = null;
this.txtInputPath.AccessibleName = null;
this.txtInputPath.AllowDrop = true; this.txtInputPath.AllowDrop = true;
resources.ApplyResources(this.txtInputPath, "txtInputPath"); resources.ApplyResources(this.txtInputPath, "txtInputPath");
this.txtInputPath.BackgroundImage = null;
this.txtInputPath.Font = null;
this.txtInputPath.Name = "txtInputPath"; this.txtInputPath.Name = "txtInputPath";
this.toolTip1.SetToolTip(this.txtInputPath, resources.GetString("txtInputPath.ToolTip"));
this.txtInputPath.TextChanged += new System.EventHandler(this.txtInputPath_TextChanged); this.txtInputPath.TextChanged += new System.EventHandler(this.txtInputPath_TextChanged);
this.txtInputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop); this.txtInputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop);
this.txtInputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter); this.txtInputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter);
// //
// grpOutputStyle // grpOutputStyle
// //
this.grpOutputStyle.AccessibleDescription = null;
this.grpOutputStyle.AccessibleName = null;
resources.ApplyResources(this.grpOutputStyle, "grpOutputStyle");
this.grpOutputStyle.BackgroundImage = null;
this.grpOutputStyle.Controls.Add(this.rbEmbedCUE); this.grpOutputStyle.Controls.Add(this.rbEmbedCUE);
this.grpOutputStyle.Controls.Add(this.rbGapsLeftOut); this.grpOutputStyle.Controls.Add(this.rbGapsLeftOut);
this.grpOutputStyle.Controls.Add(this.rbGapsPrepended); this.grpOutputStyle.Controls.Add(this.rbGapsPrepended);
this.grpOutputStyle.Controls.Add(this.rbGapsAppended); this.grpOutputStyle.Controls.Add(this.rbGapsAppended);
this.grpOutputStyle.Controls.Add(this.rbSingleFile); this.grpOutputStyle.Controls.Add(this.rbSingleFile);
this.grpOutputStyle.Font = null; resources.ApplyResources(this.grpOutputStyle, "grpOutputStyle");
this.grpOutputStyle.Name = "grpOutputStyle"; this.grpOutputStyle.Name = "grpOutputStyle";
this.grpOutputStyle.TabStop = false; this.grpOutputStyle.TabStop = false;
this.toolTip1.SetToolTip(this.grpOutputStyle, resources.GetString("grpOutputStyle.ToolTip"));
// //
// rbEmbedCUE // rbEmbedCUE
// //
this.rbEmbedCUE.AccessibleDescription = null;
this.rbEmbedCUE.AccessibleName = null;
resources.ApplyResources(this.rbEmbedCUE, "rbEmbedCUE"); resources.ApplyResources(this.rbEmbedCUE, "rbEmbedCUE");
this.rbEmbedCUE.BackgroundImage = null;
this.rbEmbedCUE.Font = null;
this.rbEmbedCUE.Name = "rbEmbedCUE"; this.rbEmbedCUE.Name = "rbEmbedCUE";
this.rbEmbedCUE.TabStop = true; this.rbEmbedCUE.TabStop = true;
this.toolTip1.SetToolTip(this.rbEmbedCUE, resources.GetString("rbEmbedCUE.ToolTip")); this.toolTip1.SetToolTip(this.rbEmbedCUE, resources.GetString("rbEmbedCUE.ToolTip"));
@@ -231,45 +184,29 @@ namespace JDP {
// //
// rbGapsLeftOut // rbGapsLeftOut
// //
this.rbGapsLeftOut.AccessibleDescription = null;
this.rbGapsLeftOut.AccessibleName = null;
resources.ApplyResources(this.rbGapsLeftOut, "rbGapsLeftOut"); resources.ApplyResources(this.rbGapsLeftOut, "rbGapsLeftOut");
this.rbGapsLeftOut.BackgroundImage = null;
this.rbGapsLeftOut.Font = null;
this.rbGapsLeftOut.Name = "rbGapsLeftOut"; this.rbGapsLeftOut.Name = "rbGapsLeftOut";
this.toolTip1.SetToolTip(this.rbGapsLeftOut, resources.GetString("rbGapsLeftOut.ToolTip")); this.toolTip1.SetToolTip(this.rbGapsLeftOut, resources.GetString("rbGapsLeftOut.ToolTip"));
this.rbGapsLeftOut.UseVisualStyleBackColor = true; this.rbGapsLeftOut.UseVisualStyleBackColor = true;
// //
// rbGapsPrepended // rbGapsPrepended
// //
this.rbGapsPrepended.AccessibleDescription = null;
this.rbGapsPrepended.AccessibleName = null;
resources.ApplyResources(this.rbGapsPrepended, "rbGapsPrepended"); resources.ApplyResources(this.rbGapsPrepended, "rbGapsPrepended");
this.rbGapsPrepended.BackgroundImage = null;
this.rbGapsPrepended.Font = null;
this.rbGapsPrepended.Name = "rbGapsPrepended"; this.rbGapsPrepended.Name = "rbGapsPrepended";
this.toolTip1.SetToolTip(this.rbGapsPrepended, resources.GetString("rbGapsPrepended.ToolTip")); this.toolTip1.SetToolTip(this.rbGapsPrepended, resources.GetString("rbGapsPrepended.ToolTip"));
this.rbGapsPrepended.UseVisualStyleBackColor = true; this.rbGapsPrepended.UseVisualStyleBackColor = true;
// //
// rbGapsAppended // rbGapsAppended
// //
this.rbGapsAppended.AccessibleDescription = null;
this.rbGapsAppended.AccessibleName = null;
resources.ApplyResources(this.rbGapsAppended, "rbGapsAppended"); resources.ApplyResources(this.rbGapsAppended, "rbGapsAppended");
this.rbGapsAppended.BackgroundImage = null;
this.rbGapsAppended.Font = null;
this.rbGapsAppended.Name = "rbGapsAppended"; this.rbGapsAppended.Name = "rbGapsAppended";
this.toolTip1.SetToolTip(this.rbGapsAppended, resources.GetString("rbGapsAppended.ToolTip")); this.toolTip1.SetToolTip(this.rbGapsAppended, resources.GetString("rbGapsAppended.ToolTip"));
this.rbGapsAppended.UseVisualStyleBackColor = true; this.rbGapsAppended.UseVisualStyleBackColor = true;
// //
// rbSingleFile // rbSingleFile
// //
this.rbSingleFile.AccessibleDescription = null;
this.rbSingleFile.AccessibleName = null;
resources.ApplyResources(this.rbSingleFile, "rbSingleFile"); resources.ApplyResources(this.rbSingleFile, "rbSingleFile");
this.rbSingleFile.BackgroundImage = null;
this.rbSingleFile.Checked = true; this.rbSingleFile.Checked = true;
this.rbSingleFile.Font = null;
this.rbSingleFile.Name = "rbSingleFile"; this.rbSingleFile.Name = "rbSingleFile";
this.rbSingleFile.TabStop = true; this.rbSingleFile.TabStop = true;
this.toolTip1.SetToolTip(this.rbSingleFile, resources.GetString("rbSingleFile.ToolTip")); this.toolTip1.SetToolTip(this.rbSingleFile, resources.GetString("rbSingleFile.ToolTip"));
@@ -277,22 +214,13 @@ namespace JDP {
// //
// btnAbout // btnAbout
// //
this.btnAbout.AccessibleDescription = null;
this.btnAbout.AccessibleName = null;
resources.ApplyResources(this.btnAbout, "btnAbout"); resources.ApplyResources(this.btnAbout, "btnAbout");
this.btnAbout.BackgroundImage = null;
this.btnAbout.Font = null;
this.btnAbout.Name = "btnAbout"; this.btnAbout.Name = "btnAbout";
this.toolTip1.SetToolTip(this.btnAbout, resources.GetString("btnAbout.ToolTip"));
this.btnAbout.UseVisualStyleBackColor = true; this.btnAbout.UseVisualStyleBackColor = true;
this.btnAbout.Click += new System.EventHandler(this.btnAbout_Click); this.btnAbout.Click += new System.EventHandler(this.btnAbout_Click);
// //
// grpOutputPathGeneration // grpOutputPathGeneration
// //
this.grpOutputPathGeneration.AccessibleDescription = null;
this.grpOutputPathGeneration.AccessibleName = null;
resources.ApplyResources(this.grpOutputPathGeneration, "grpOutputPathGeneration");
this.grpOutputPathGeneration.BackgroundImage = null;
this.grpOutputPathGeneration.Controls.Add(this.txtCustomFormat); this.grpOutputPathGeneration.Controls.Add(this.txtCustomFormat);
this.grpOutputPathGeneration.Controls.Add(this.rbCustomFormat); this.grpOutputPathGeneration.Controls.Add(this.rbCustomFormat);
this.grpOutputPathGeneration.Controls.Add(this.txtCreateSubdirectory); this.grpOutputPathGeneration.Controls.Add(this.txtCreateSubdirectory);
@@ -300,100 +228,60 @@ namespace JDP {
this.grpOutputPathGeneration.Controls.Add(this.rbCreateSubdirectory); this.grpOutputPathGeneration.Controls.Add(this.rbCreateSubdirectory);
this.grpOutputPathGeneration.Controls.Add(this.rbAppendFilename); this.grpOutputPathGeneration.Controls.Add(this.rbAppendFilename);
this.grpOutputPathGeneration.Controls.Add(this.txtAppendFilename); this.grpOutputPathGeneration.Controls.Add(this.txtAppendFilename);
this.grpOutputPathGeneration.Font = null; resources.ApplyResources(this.grpOutputPathGeneration, "grpOutputPathGeneration");
this.grpOutputPathGeneration.Name = "grpOutputPathGeneration"; this.grpOutputPathGeneration.Name = "grpOutputPathGeneration";
this.grpOutputPathGeneration.TabStop = false; this.grpOutputPathGeneration.TabStop = false;
this.toolTip1.SetToolTip(this.grpOutputPathGeneration, resources.GetString("grpOutputPathGeneration.ToolTip"));
// //
// txtCustomFormat // txtCustomFormat
// //
this.txtCustomFormat.AccessibleDescription = null;
this.txtCustomFormat.AccessibleName = null;
resources.ApplyResources(this.txtCustomFormat, "txtCustomFormat"); resources.ApplyResources(this.txtCustomFormat, "txtCustomFormat");
this.txtCustomFormat.BackgroundImage = null;
this.txtCustomFormat.Font = null;
this.txtCustomFormat.Name = "txtCustomFormat"; this.txtCustomFormat.Name = "txtCustomFormat";
this.toolTip1.SetToolTip(this.txtCustomFormat, resources.GetString("txtCustomFormat.ToolTip"));
this.txtCustomFormat.TextChanged += new System.EventHandler(this.txtCustomFormat_TextChanged); this.txtCustomFormat.TextChanged += new System.EventHandler(this.txtCustomFormat_TextChanged);
// //
// rbCustomFormat // rbCustomFormat
// //
this.rbCustomFormat.AccessibleDescription = null;
this.rbCustomFormat.AccessibleName = null;
resources.ApplyResources(this.rbCustomFormat, "rbCustomFormat"); resources.ApplyResources(this.rbCustomFormat, "rbCustomFormat");
this.rbCustomFormat.BackgroundImage = null;
this.rbCustomFormat.Font = null;
this.rbCustomFormat.Name = "rbCustomFormat"; this.rbCustomFormat.Name = "rbCustomFormat";
this.rbCustomFormat.TabStop = true; this.rbCustomFormat.TabStop = true;
this.toolTip1.SetToolTip(this.rbCustomFormat, resources.GetString("rbCustomFormat.ToolTip"));
this.rbCustomFormat.UseVisualStyleBackColor = true; this.rbCustomFormat.UseVisualStyleBackColor = true;
this.rbCustomFormat.CheckedChanged += new System.EventHandler(this.rbCustomFormat_CheckedChanged); this.rbCustomFormat.CheckedChanged += new System.EventHandler(this.rbCustomFormat_CheckedChanged);
// //
// txtCreateSubdirectory // txtCreateSubdirectory
// //
this.txtCreateSubdirectory.AccessibleDescription = null;
this.txtCreateSubdirectory.AccessibleName = null;
resources.ApplyResources(this.txtCreateSubdirectory, "txtCreateSubdirectory"); resources.ApplyResources(this.txtCreateSubdirectory, "txtCreateSubdirectory");
this.txtCreateSubdirectory.BackgroundImage = null;
this.txtCreateSubdirectory.Font = null;
this.txtCreateSubdirectory.Name = "txtCreateSubdirectory"; this.txtCreateSubdirectory.Name = "txtCreateSubdirectory";
this.toolTip1.SetToolTip(this.txtCreateSubdirectory, resources.GetString("txtCreateSubdirectory.ToolTip"));
this.txtCreateSubdirectory.TextChanged += new System.EventHandler(this.txtCreateSubdirectory_TextChanged); this.txtCreateSubdirectory.TextChanged += new System.EventHandler(this.txtCreateSubdirectory_TextChanged);
// //
// rbDontGenerate // rbDontGenerate
// //
this.rbDontGenerate.AccessibleDescription = null;
this.rbDontGenerate.AccessibleName = null;
resources.ApplyResources(this.rbDontGenerate, "rbDontGenerate"); resources.ApplyResources(this.rbDontGenerate, "rbDontGenerate");
this.rbDontGenerate.BackgroundImage = null;
this.rbDontGenerate.Font = null;
this.rbDontGenerate.Name = "rbDontGenerate"; this.rbDontGenerate.Name = "rbDontGenerate";
this.toolTip1.SetToolTip(this.rbDontGenerate, resources.GetString("rbDontGenerate.ToolTip"));
this.rbDontGenerate.UseVisualStyleBackColor = true; this.rbDontGenerate.UseVisualStyleBackColor = true;
// //
// rbCreateSubdirectory // rbCreateSubdirectory
// //
this.rbCreateSubdirectory.AccessibleDescription = null;
this.rbCreateSubdirectory.AccessibleName = null;
resources.ApplyResources(this.rbCreateSubdirectory, "rbCreateSubdirectory"); resources.ApplyResources(this.rbCreateSubdirectory, "rbCreateSubdirectory");
this.rbCreateSubdirectory.BackgroundImage = null;
this.rbCreateSubdirectory.Checked = true; this.rbCreateSubdirectory.Checked = true;
this.rbCreateSubdirectory.Font = null;
this.rbCreateSubdirectory.Name = "rbCreateSubdirectory"; this.rbCreateSubdirectory.Name = "rbCreateSubdirectory";
this.rbCreateSubdirectory.TabStop = true; this.rbCreateSubdirectory.TabStop = true;
this.toolTip1.SetToolTip(this.rbCreateSubdirectory, resources.GetString("rbCreateSubdirectory.ToolTip"));
this.rbCreateSubdirectory.UseVisualStyleBackColor = true; this.rbCreateSubdirectory.UseVisualStyleBackColor = true;
this.rbCreateSubdirectory.CheckedChanged += new System.EventHandler(this.rbCreateSubdirectory_CheckedChanged); this.rbCreateSubdirectory.CheckedChanged += new System.EventHandler(this.rbCreateSubdirectory_CheckedChanged);
// //
// rbAppendFilename // rbAppendFilename
// //
this.rbAppendFilename.AccessibleDescription = null;
this.rbAppendFilename.AccessibleName = null;
resources.ApplyResources(this.rbAppendFilename, "rbAppendFilename"); resources.ApplyResources(this.rbAppendFilename, "rbAppendFilename");
this.rbAppendFilename.BackgroundImage = null;
this.rbAppendFilename.Font = null;
this.rbAppendFilename.Name = "rbAppendFilename"; this.rbAppendFilename.Name = "rbAppendFilename";
this.toolTip1.SetToolTip(this.rbAppendFilename, resources.GetString("rbAppendFilename.ToolTip"));
this.rbAppendFilename.UseVisualStyleBackColor = true; this.rbAppendFilename.UseVisualStyleBackColor = true;
this.rbAppendFilename.CheckedChanged += new System.EventHandler(this.rbAppendFilename_CheckedChanged); this.rbAppendFilename.CheckedChanged += new System.EventHandler(this.rbAppendFilename_CheckedChanged);
// //
// txtAppendFilename // txtAppendFilename
// //
this.txtAppendFilename.AccessibleDescription = null;
this.txtAppendFilename.AccessibleName = null;
resources.ApplyResources(this.txtAppendFilename, "txtAppendFilename"); resources.ApplyResources(this.txtAppendFilename, "txtAppendFilename");
this.txtAppendFilename.BackgroundImage = null;
this.txtAppendFilename.Font = null;
this.txtAppendFilename.Name = "txtAppendFilename"; this.txtAppendFilename.Name = "txtAppendFilename";
this.toolTip1.SetToolTip(this.txtAppendFilename, resources.GetString("txtAppendFilename.ToolTip"));
this.txtAppendFilename.TextChanged += new System.EventHandler(this.txtAppendFilename_TextChanged); this.txtAppendFilename.TextChanged += new System.EventHandler(this.txtAppendFilename_TextChanged);
// //
// grpAudioOutput // grpAudioOutput
// //
this.grpAudioOutput.AccessibleDescription = null;
this.grpAudioOutput.AccessibleName = null;
resources.ApplyResources(this.grpAudioOutput, "grpAudioOutput");
this.grpAudioOutput.BackgroundImage = null;
this.grpAudioOutput.Controls.Add(this.btnCodec); this.grpAudioOutput.Controls.Add(this.btnCodec);
this.grpAudioOutput.Controls.Add(this.rbUDC1); this.grpAudioOutput.Controls.Add(this.rbUDC1);
this.grpAudioOutput.Controls.Add(this.rbTTA); this.grpAudioOutput.Controls.Add(this.rbTTA);
@@ -403,56 +291,36 @@ namespace JDP {
this.grpAudioOutput.Controls.Add(this.rbWavPack); this.grpAudioOutput.Controls.Add(this.rbWavPack);
this.grpAudioOutput.Controls.Add(this.rbWAV); this.grpAudioOutput.Controls.Add(this.rbWAV);
this.grpAudioOutput.Controls.Add(this.rbFLAC); this.grpAudioOutput.Controls.Add(this.rbFLAC);
this.grpAudioOutput.Font = null; resources.ApplyResources(this.grpAudioOutput, "grpAudioOutput");
this.grpAudioOutput.Name = "grpAudioOutput"; this.grpAudioOutput.Name = "grpAudioOutput";
this.grpAudioOutput.TabStop = false; this.grpAudioOutput.TabStop = false;
this.toolTip1.SetToolTip(this.grpAudioOutput, resources.GetString("grpAudioOutput.ToolTip"));
// //
// btnCodec // btnCodec
// //
this.btnCodec.AccessibleDescription = null;
this.btnCodec.AccessibleName = null;
resources.ApplyResources(this.btnCodec, "btnCodec"); resources.ApplyResources(this.btnCodec, "btnCodec");
this.btnCodec.BackgroundImage = null;
this.btnCodec.Font = null;
this.btnCodec.Name = "btnCodec"; this.btnCodec.Name = "btnCodec";
this.toolTip1.SetToolTip(this.btnCodec, resources.GetString("btnCodec.ToolTip"));
this.btnCodec.UseVisualStyleBackColor = true; this.btnCodec.UseVisualStyleBackColor = true;
this.btnCodec.Click += new System.EventHandler(this.btnCodec_Click); this.btnCodec.Click += new System.EventHandler(this.btnCodec_Click);
// //
// rbUDC1 // rbUDC1
// //
this.rbUDC1.AccessibleDescription = null;
this.rbUDC1.AccessibleName = null;
resources.ApplyResources(this.rbUDC1, "rbUDC1"); resources.ApplyResources(this.rbUDC1, "rbUDC1");
this.rbUDC1.BackgroundImage = null;
this.rbUDC1.Font = null;
this.rbUDC1.Name = "rbUDC1"; this.rbUDC1.Name = "rbUDC1";
this.rbUDC1.TabStop = true; this.rbUDC1.TabStop = true;
this.toolTip1.SetToolTip(this.rbUDC1, resources.GetString("rbUDC1.ToolTip"));
this.rbUDC1.UseVisualStyleBackColor = true; this.rbUDC1.UseVisualStyleBackColor = true;
this.rbUDC1.CheckedChanged += new System.EventHandler(this.rbUDC1_CheckedChanged); this.rbUDC1.CheckedChanged += new System.EventHandler(this.rbUDC1_CheckedChanged);
// //
// rbTTA // rbTTA
// //
this.rbTTA.AccessibleDescription = null;
this.rbTTA.AccessibleName = null;
resources.ApplyResources(this.rbTTA, "rbTTA"); resources.ApplyResources(this.rbTTA, "rbTTA");
this.rbTTA.BackgroundImage = null;
this.rbTTA.Font = null;
this.rbTTA.Name = "rbTTA"; this.rbTTA.Name = "rbTTA";
this.rbTTA.TabStop = true; this.rbTTA.TabStop = true;
this.toolTip1.SetToolTip(this.rbTTA, resources.GetString("rbTTA.ToolTip"));
this.rbTTA.UseVisualStyleBackColor = true; this.rbTTA.UseVisualStyleBackColor = true;
this.rbTTA.CheckedChanged += new System.EventHandler(this.rbTTA_CheckedChanged); this.rbTTA.CheckedChanged += new System.EventHandler(this.rbTTA_CheckedChanged);
// //
// chkLossyWAV // chkLossyWAV
// //
this.chkLossyWAV.AccessibleDescription = null;
this.chkLossyWAV.AccessibleName = null;
resources.ApplyResources(this.chkLossyWAV, "chkLossyWAV"); resources.ApplyResources(this.chkLossyWAV, "chkLossyWAV");
this.chkLossyWAV.BackgroundImage = null;
this.chkLossyWAV.Font = null;
this.chkLossyWAV.Name = "chkLossyWAV"; this.chkLossyWAV.Name = "chkLossyWAV";
this.toolTip1.SetToolTip(this.chkLossyWAV, resources.GetString("chkLossyWAV.ToolTip")); this.toolTip1.SetToolTip(this.chkLossyWAV, resources.GetString("chkLossyWAV.ToolTip"));
this.chkLossyWAV.UseVisualStyleBackColor = true; this.chkLossyWAV.UseVisualStyleBackColor = true;
@@ -460,24 +328,15 @@ namespace JDP {
// //
// rbAPE // rbAPE
// //
this.rbAPE.AccessibleDescription = null;
this.rbAPE.AccessibleName = null;
resources.ApplyResources(this.rbAPE, "rbAPE"); resources.ApplyResources(this.rbAPE, "rbAPE");
this.rbAPE.BackgroundImage = null;
this.rbAPE.Font = null;
this.rbAPE.Name = "rbAPE"; this.rbAPE.Name = "rbAPE";
this.rbAPE.TabStop = true; this.rbAPE.TabStop = true;
this.toolTip1.SetToolTip(this.rbAPE, resources.GetString("rbAPE.ToolTip"));
this.rbAPE.UseVisualStyleBackColor = true; this.rbAPE.UseVisualStyleBackColor = true;
this.rbAPE.CheckedChanged += new System.EventHandler(this.rbAPE_CheckedChanged); this.rbAPE.CheckedChanged += new System.EventHandler(this.rbAPE_CheckedChanged);
// //
// rbNoAudio // rbNoAudio
// //
this.rbNoAudio.AccessibleDescription = null;
this.rbNoAudio.AccessibleName = null;
resources.ApplyResources(this.rbNoAudio, "rbNoAudio"); resources.ApplyResources(this.rbNoAudio, "rbNoAudio");
this.rbNoAudio.BackgroundImage = null;
this.rbNoAudio.Font = null;
this.rbNoAudio.Name = "rbNoAudio"; this.rbNoAudio.Name = "rbNoAudio";
this.toolTip1.SetToolTip(this.rbNoAudio, resources.GetString("rbNoAudio.ToolTip")); this.toolTip1.SetToolTip(this.rbNoAudio, resources.GetString("rbNoAudio.ToolTip"));
this.rbNoAudio.UseVisualStyleBackColor = true; this.rbNoAudio.UseVisualStyleBackColor = true;
@@ -485,84 +344,50 @@ namespace JDP {
// //
// rbWavPack // rbWavPack
// //
this.rbWavPack.AccessibleDescription = null;
this.rbWavPack.AccessibleName = null;
resources.ApplyResources(this.rbWavPack, "rbWavPack"); resources.ApplyResources(this.rbWavPack, "rbWavPack");
this.rbWavPack.BackgroundImage = null;
this.rbWavPack.Font = null;
this.rbWavPack.Name = "rbWavPack"; this.rbWavPack.Name = "rbWavPack";
this.toolTip1.SetToolTip(this.rbWavPack, resources.GetString("rbWavPack.ToolTip"));
this.rbWavPack.UseVisualStyleBackColor = true; this.rbWavPack.UseVisualStyleBackColor = true;
this.rbWavPack.CheckedChanged += new System.EventHandler(this.rbWavPack_CheckedChanged); this.rbWavPack.CheckedChanged += new System.EventHandler(this.rbWavPack_CheckedChanged);
// //
// rbWAV // rbWAV
// //
this.rbWAV.AccessibleDescription = null;
this.rbWAV.AccessibleName = null;
resources.ApplyResources(this.rbWAV, "rbWAV"); resources.ApplyResources(this.rbWAV, "rbWAV");
this.rbWAV.BackgroundImage = null;
this.rbWAV.Checked = true; this.rbWAV.Checked = true;
this.rbWAV.Font = null;
this.rbWAV.Name = "rbWAV"; this.rbWAV.Name = "rbWAV";
this.rbWAV.TabStop = true; this.rbWAV.TabStop = true;
this.toolTip1.SetToolTip(this.rbWAV, resources.GetString("rbWAV.ToolTip"));
this.rbWAV.UseVisualStyleBackColor = true; this.rbWAV.UseVisualStyleBackColor = true;
this.rbWAV.CheckedChanged += new System.EventHandler(this.rbWAV_CheckedChanged); this.rbWAV.CheckedChanged += new System.EventHandler(this.rbWAV_CheckedChanged);
// //
// rbFLAC // rbFLAC
// //
this.rbFLAC.AccessibleDescription = null;
this.rbFLAC.AccessibleName = null;
resources.ApplyResources(this.rbFLAC, "rbFLAC"); resources.ApplyResources(this.rbFLAC, "rbFLAC");
this.rbFLAC.BackgroundImage = null;
this.rbFLAC.Font = null;
this.rbFLAC.Name = "rbFLAC"; this.rbFLAC.Name = "rbFLAC";
this.toolTip1.SetToolTip(this.rbFLAC, resources.GetString("rbFLAC.ToolTip"));
this.rbFLAC.UseVisualStyleBackColor = true; this.rbFLAC.UseVisualStyleBackColor = true;
this.rbFLAC.CheckedChanged += new System.EventHandler(this.rbFLAC_CheckedChanged); this.rbFLAC.CheckedChanged += new System.EventHandler(this.rbFLAC_CheckedChanged);
// //
// btnBatch // btnBatch
// //
this.btnBatch.AccessibleDescription = null;
this.btnBatch.AccessibleName = null;
resources.ApplyResources(this.btnBatch, "btnBatch"); resources.ApplyResources(this.btnBatch, "btnBatch");
this.btnBatch.BackgroundImage = null;
this.btnBatch.Font = null;
this.btnBatch.Name = "btnBatch"; this.btnBatch.Name = "btnBatch";
this.toolTip1.SetToolTip(this.btnBatch, resources.GetString("btnBatch.ToolTip"));
this.btnBatch.UseVisualStyleBackColor = true; this.btnBatch.UseVisualStyleBackColor = true;
this.btnBatch.Click += new System.EventHandler(this.btnBatch_Click); this.btnBatch.Click += new System.EventHandler(this.btnBatch_Click);
// //
// btnFilenameCorrector // btnFilenameCorrector
// //
this.btnFilenameCorrector.AccessibleDescription = null;
this.btnFilenameCorrector.AccessibleName = null;
resources.ApplyResources(this.btnFilenameCorrector, "btnFilenameCorrector"); resources.ApplyResources(this.btnFilenameCorrector, "btnFilenameCorrector");
this.btnFilenameCorrector.BackgroundImage = null;
this.btnFilenameCorrector.Font = null;
this.btnFilenameCorrector.Name = "btnFilenameCorrector"; this.btnFilenameCorrector.Name = "btnFilenameCorrector";
this.toolTip1.SetToolTip(this.btnFilenameCorrector, resources.GetString("btnFilenameCorrector.ToolTip"));
this.btnFilenameCorrector.UseVisualStyleBackColor = true; this.btnFilenameCorrector.UseVisualStyleBackColor = true;
this.btnFilenameCorrector.Click += new System.EventHandler(this.btnFilenameCorrector_Click); this.btnFilenameCorrector.Click += new System.EventHandler(this.btnFilenameCorrector_Click);
// //
// btnSettings // btnSettings
// //
this.btnSettings.AccessibleDescription = null;
this.btnSettings.AccessibleName = null;
resources.ApplyResources(this.btnSettings, "btnSettings"); resources.ApplyResources(this.btnSettings, "btnSettings");
this.btnSettings.BackgroundImage = null;
this.btnSettings.Font = null;
this.btnSettings.Name = "btnSettings"; this.btnSettings.Name = "btnSettings";
this.toolTip1.SetToolTip(this.btnSettings, resources.GetString("btnSettings.ToolTip"));
this.btnSettings.UseVisualStyleBackColor = true; this.btnSettings.UseVisualStyleBackColor = true;
this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click); this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click);
// //
// grpAccurateRip // grpAccurateRip
// //
this.grpAccurateRip.AccessibleDescription = null;
this.grpAccurateRip.AccessibleName = null;
resources.ApplyResources(this.grpAccurateRip, "grpAccurateRip");
this.grpAccurateRip.BackgroundImage = null;
this.grpAccurateRip.Controls.Add(this.txtPreGapLength); this.grpAccurateRip.Controls.Add(this.txtPreGapLength);
this.grpAccurateRip.Controls.Add(this.label2); this.grpAccurateRip.Controls.Add(this.label2);
this.grpAccurateRip.Controls.Add(this.rbArPlusCRC); this.grpAccurateRip.Controls.Add(this.rbArPlusCRC);
@@ -572,41 +397,28 @@ namespace JDP {
this.grpAccurateRip.Controls.Add(this.rbArApplyOffset); this.grpAccurateRip.Controls.Add(this.rbArApplyOffset);
this.grpAccurateRip.Controls.Add(this.rbArVerify); this.grpAccurateRip.Controls.Add(this.rbArVerify);
this.grpAccurateRip.Controls.Add(this.rbArNone); this.grpAccurateRip.Controls.Add(this.rbArNone);
this.grpAccurateRip.Font = null; resources.ApplyResources(this.grpAccurateRip, "grpAccurateRip");
this.grpAccurateRip.Name = "grpAccurateRip"; this.grpAccurateRip.Name = "grpAccurateRip";
this.grpAccurateRip.TabStop = false; this.grpAccurateRip.TabStop = false;
this.toolTip1.SetToolTip(this.grpAccurateRip, resources.GetString("grpAccurateRip.ToolTip"));
// //
// txtPreGapLength // txtPreGapLength
// //
this.txtPreGapLength.AccessibleDescription = null;
this.txtPreGapLength.AccessibleName = null;
resources.ApplyResources(this.txtPreGapLength, "txtPreGapLength");
this.txtPreGapLength.BackgroundImage = null;
this.txtPreGapLength.Culture = new System.Globalization.CultureInfo(""); this.txtPreGapLength.Culture = new System.Globalization.CultureInfo("");
this.txtPreGapLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals; this.txtPreGapLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
this.txtPreGapLength.Font = null;
this.txtPreGapLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite; this.txtPreGapLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite;
resources.ApplyResources(this.txtPreGapLength, "txtPreGapLength");
this.txtPreGapLength.Name = "txtPreGapLength"; this.txtPreGapLength.Name = "txtPreGapLength";
this.txtPreGapLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals; this.txtPreGapLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
this.toolTip1.SetToolTip(this.txtPreGapLength, resources.GetString("txtPreGapLength.ToolTip")); this.toolTip1.SetToolTip(this.txtPreGapLength, resources.GetString("txtPreGapLength.ToolTip"));
// //
// label2 // label2
// //
this.label2.AccessibleDescription = null;
this.label2.AccessibleName = null;
resources.ApplyResources(this.label2, "label2"); resources.ApplyResources(this.label2, "label2");
this.label2.Font = null;
this.label2.Name = "label2"; this.label2.Name = "label2";
this.toolTip1.SetToolTip(this.label2, resources.GetString("label2.ToolTip"));
// //
// rbArPlusCRC // rbArPlusCRC
// //
this.rbArPlusCRC.AccessibleDescription = null;
this.rbArPlusCRC.AccessibleName = null;
resources.ApplyResources(this.rbArPlusCRC, "rbArPlusCRC"); resources.ApplyResources(this.rbArPlusCRC, "rbArPlusCRC");
this.rbArPlusCRC.BackgroundImage = null;
this.rbArPlusCRC.Font = null;
this.rbArPlusCRC.Name = "rbArPlusCRC"; this.rbArPlusCRC.Name = "rbArPlusCRC";
this.toolTip1.SetToolTip(this.rbArPlusCRC, resources.GetString("rbArPlusCRC.ToolTip")); this.toolTip1.SetToolTip(this.rbArPlusCRC, resources.GetString("rbArPlusCRC.ToolTip"));
this.rbArPlusCRC.UseVisualStyleBackColor = true; this.rbArPlusCRC.UseVisualStyleBackColor = true;
@@ -614,46 +426,29 @@ namespace JDP {
// //
// rbArAndEncode // rbArAndEncode
// //
this.rbArAndEncode.AccessibleDescription = null;
this.rbArAndEncode.AccessibleName = null;
resources.ApplyResources(this.rbArAndEncode, "rbArAndEncode"); resources.ApplyResources(this.rbArAndEncode, "rbArAndEncode");
this.rbArAndEncode.BackgroundImage = null;
this.rbArAndEncode.Font = null;
this.rbArAndEncode.Name = "rbArAndEncode"; this.rbArAndEncode.Name = "rbArAndEncode";
this.rbArAndEncode.TabStop = true; this.rbArAndEncode.TabStop = true;
this.toolTip1.SetToolTip(this.rbArAndEncode, resources.GetString("rbArAndEncode.ToolTip"));
this.rbArAndEncode.UseVisualStyleBackColor = true; this.rbArAndEncode.UseVisualStyleBackColor = true;
// //
// label1 // label1
// //
this.label1.AccessibleDescription = null;
this.label1.AccessibleName = null;
resources.ApplyResources(this.label1, "label1"); resources.ApplyResources(this.label1, "label1");
this.label1.Font = null;
this.label1.Name = "label1"; this.label1.Name = "label1";
this.toolTip1.SetToolTip(this.label1, resources.GetString("label1.ToolTip"));
// //
// txtDataTrackLength // txtDataTrackLength
// //
this.txtDataTrackLength.AccessibleDescription = null;
this.txtDataTrackLength.AccessibleName = null;
resources.ApplyResources(this.txtDataTrackLength, "txtDataTrackLength");
this.txtDataTrackLength.BackgroundImage = null;
this.txtDataTrackLength.Culture = new System.Globalization.CultureInfo(""); this.txtDataTrackLength.Culture = new System.Globalization.CultureInfo("");
this.txtDataTrackLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals; this.txtDataTrackLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
this.txtDataTrackLength.Font = null;
this.txtDataTrackLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite; this.txtDataTrackLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite;
resources.ApplyResources(this.txtDataTrackLength, "txtDataTrackLength");
this.txtDataTrackLength.Name = "txtDataTrackLength"; this.txtDataTrackLength.Name = "txtDataTrackLength";
this.txtDataTrackLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals; this.txtDataTrackLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
this.toolTip1.SetToolTip(this.txtDataTrackLength, resources.GetString("txtDataTrackLength.ToolTip")); this.toolTip1.SetToolTip(this.txtDataTrackLength, resources.GetString("txtDataTrackLength.ToolTip"));
// //
// rbArApplyOffset // rbArApplyOffset
// //
this.rbArApplyOffset.AccessibleDescription = null;
this.rbArApplyOffset.AccessibleName = null;
resources.ApplyResources(this.rbArApplyOffset, "rbArApplyOffset"); resources.ApplyResources(this.rbArApplyOffset, "rbArApplyOffset");
this.rbArApplyOffset.BackgroundImage = null;
this.rbArApplyOffset.Font = null;
this.rbArApplyOffset.Name = "rbArApplyOffset"; this.rbArApplyOffset.Name = "rbArApplyOffset";
this.toolTip1.SetToolTip(this.rbArApplyOffset, resources.GetString("rbArApplyOffset.ToolTip")); this.toolTip1.SetToolTip(this.rbArApplyOffset, resources.GetString("rbArApplyOffset.ToolTip"));
this.rbArApplyOffset.UseVisualStyleBackColor = true; this.rbArApplyOffset.UseVisualStyleBackColor = true;
@@ -661,11 +456,7 @@ namespace JDP {
// //
// rbArVerify // rbArVerify
// //
this.rbArVerify.AccessibleDescription = null;
this.rbArVerify.AccessibleName = null;
resources.ApplyResources(this.rbArVerify, "rbArVerify"); resources.ApplyResources(this.rbArVerify, "rbArVerify");
this.rbArVerify.BackgroundImage = null;
this.rbArVerify.Font = null;
this.rbArVerify.Name = "rbArVerify"; this.rbArVerify.Name = "rbArVerify";
this.toolTip1.SetToolTip(this.rbArVerify, resources.GetString("rbArVerify.ToolTip")); this.toolTip1.SetToolTip(this.rbArVerify, resources.GetString("rbArVerify.ToolTip"));
this.rbArVerify.UseVisualStyleBackColor = true; this.rbArVerify.UseVisualStyleBackColor = true;
@@ -673,12 +464,8 @@ namespace JDP {
// //
// rbArNone // rbArNone
// //
this.rbArNone.AccessibleDescription = null;
this.rbArNone.AccessibleName = null;
resources.ApplyResources(this.rbArNone, "rbArNone"); resources.ApplyResources(this.rbArNone, "rbArNone");
this.rbArNone.BackgroundImage = null;
this.rbArNone.Checked = true; this.rbArNone.Checked = true;
this.rbArNone.Font = null;
this.rbArNone.Name = "rbArNone"; this.rbArNone.Name = "rbArNone";
this.rbArNone.TabStop = true; this.rbArNone.TabStop = true;
this.toolTip1.SetToolTip(this.rbArNone, resources.GetString("rbArNone.ToolTip")); this.toolTip1.SetToolTip(this.rbArNone, resources.GetString("rbArNone.ToolTip"));
@@ -686,44 +473,32 @@ namespace JDP {
// //
// statusStrip1 // statusStrip1
// //
this.statusStrip1.AccessibleDescription = null;
this.statusStrip1.AccessibleName = null;
resources.ApplyResources(this.statusStrip1, "statusStrip1");
this.statusStrip1.BackgroundImage = null;
this.statusStrip1.Font = null;
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel1, this.toolStripStatusLabel1,
this.toolStripProgressBar1, this.toolStripProgressBar1,
this.toolStripProgressBar2}); this.toolStripProgressBar2});
resources.ApplyResources(this.statusStrip1, "statusStrip1");
this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.SizingGrip = false; this.statusStrip1.SizingGrip = false;
this.toolTip1.SetToolTip(this.statusStrip1, resources.GetString("statusStrip1.ToolTip"));
// //
// toolStripStatusLabel1 // toolStripStatusLabel1
// //
this.toolStripStatusLabel1.AccessibleDescription = null;
this.toolStripStatusLabel1.AccessibleName = null;
resources.ApplyResources(this.toolStripStatusLabel1, "toolStripStatusLabel1");
this.toolStripStatusLabel1.BackgroundImage = null;
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
resources.ApplyResources(this.toolStripStatusLabel1, "toolStripStatusLabel1");
this.toolStripStatusLabel1.Spring = true; this.toolStripStatusLabel1.Spring = true;
// //
// toolStripProgressBar1 // toolStripProgressBar1
// //
this.toolStripProgressBar1.AccessibleDescription = null;
this.toolStripProgressBar1.AccessibleName = null;
resources.ApplyResources(this.toolStripProgressBar1, "toolStripProgressBar1");
this.toolStripProgressBar1.AutoToolTip = true; this.toolStripProgressBar1.AutoToolTip = true;
this.toolStripProgressBar1.Name = "toolStripProgressBar1"; this.toolStripProgressBar1.Name = "toolStripProgressBar1";
resources.ApplyResources(this.toolStripProgressBar1, "toolStripProgressBar1");
this.toolStripProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Continuous; this.toolStripProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
// //
// toolStripProgressBar2 // toolStripProgressBar2
// //
this.toolStripProgressBar2.AccessibleDescription = null;
this.toolStripProgressBar2.AccessibleName = null;
resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2");
this.toolStripProgressBar2.AutoToolTip = true; this.toolStripProgressBar2.AutoToolTip = true;
this.toolStripProgressBar2.Name = "toolStripProgressBar2"; this.toolStripProgressBar2.Name = "toolStripProgressBar2";
resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2");
this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous; this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
// //
// toolTip1 // toolTip1
@@ -734,109 +509,64 @@ namespace JDP {
// //
// btnCUECreator // btnCUECreator
// //
this.btnCUECreator.AccessibleDescription = null;
this.btnCUECreator.AccessibleName = null;
resources.ApplyResources(this.btnCUECreator, "btnCUECreator"); resources.ApplyResources(this.btnCUECreator, "btnCUECreator");
this.btnCUECreator.BackgroundImage = null;
this.btnCUECreator.Font = null;
this.btnCUECreator.Name = "btnCUECreator"; this.btnCUECreator.Name = "btnCUECreator";
this.toolTip1.SetToolTip(this.btnCUECreator, resources.GetString("btnCUECreator.ToolTip"));
this.btnCUECreator.UseVisualStyleBackColor = true; this.btnCUECreator.UseVisualStyleBackColor = true;
this.btnCUECreator.Click += new System.EventHandler(this.btnCUECreator_Click); this.btnCUECreator.Click += new System.EventHandler(this.btnCUECreator_Click);
// //
// btnStop // btnStop
// //
this.btnStop.AccessibleDescription = null;
this.btnStop.AccessibleName = null;
resources.ApplyResources(this.btnStop, "btnStop"); resources.ApplyResources(this.btnStop, "btnStop");
this.btnStop.BackgroundImage = null;
this.btnStop.Font = null;
this.btnStop.Name = "btnStop"; this.btnStop.Name = "btnStop";
this.toolTip1.SetToolTip(this.btnStop, resources.GetString("btnStop.ToolTip"));
this.btnStop.UseVisualStyleBackColor = true; this.btnStop.UseVisualStyleBackColor = true;
this.btnStop.Click += new System.EventHandler(this.btnStop_Click); this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
// //
// btnPause // btnPause
// //
this.btnPause.AccessibleDescription = null;
this.btnPause.AccessibleName = null;
resources.ApplyResources(this.btnPause, "btnPause"); resources.ApplyResources(this.btnPause, "btnPause");
this.btnPause.BackgroundImage = null;
this.btnPause.Font = null;
this.btnPause.Name = "btnPause"; this.btnPause.Name = "btnPause";
this.toolTip1.SetToolTip(this.btnPause, resources.GetString("btnPause.ToolTip"));
this.btnPause.UseVisualStyleBackColor = true; this.btnPause.UseVisualStyleBackColor = true;
this.btnPause.Click += new System.EventHandler(this.btnPause_Click); this.btnPause.Click += new System.EventHandler(this.btnPause_Click);
// //
// btnResume // btnResume
// //
this.btnResume.AccessibleDescription = null;
this.btnResume.AccessibleName = null;
resources.ApplyResources(this.btnResume, "btnResume"); resources.ApplyResources(this.btnResume, "btnResume");
this.btnResume.BackgroundImage = null;
this.btnResume.Font = null;
this.btnResume.Name = "btnResume"; this.btnResume.Name = "btnResume";
this.toolTip1.SetToolTip(this.btnResume, resources.GetString("btnResume.ToolTip"));
this.btnResume.UseVisualStyleBackColor = true; this.btnResume.UseVisualStyleBackColor = true;
this.btnResume.Click += new System.EventHandler(this.btnPause_Click); this.btnResume.Click += new System.EventHandler(this.btnPause_Click);
// //
// groupBox1 // groupBox1
// //
this.groupBox1.AccessibleDescription = null;
this.groupBox1.AccessibleName = null;
resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.BackgroundImage = null;
this.groupBox1.Controls.Add(this.rbFreedbAlways); this.groupBox1.Controls.Add(this.rbFreedbAlways);
this.groupBox1.Controls.Add(this.rbFreedbIf); this.groupBox1.Controls.Add(this.rbFreedbIf);
this.groupBox1.Controls.Add(this.rbFreedbNever); this.groupBox1.Controls.Add(this.rbFreedbNever);
this.groupBox1.Font = null; resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false; this.groupBox1.TabStop = false;
this.toolTip1.SetToolTip(this.groupBox1, resources.GetString("groupBox1.ToolTip"));
// //
// rbFreedbAlways // rbFreedbAlways
// //
this.rbFreedbAlways.AccessibleDescription = null;
this.rbFreedbAlways.AccessibleName = null;
resources.ApplyResources(this.rbFreedbAlways, "rbFreedbAlways"); resources.ApplyResources(this.rbFreedbAlways, "rbFreedbAlways");
this.rbFreedbAlways.BackgroundImage = null;
this.rbFreedbAlways.Font = null;
this.rbFreedbAlways.Name = "rbFreedbAlways"; this.rbFreedbAlways.Name = "rbFreedbAlways";
this.rbFreedbAlways.TabStop = true; this.rbFreedbAlways.TabStop = true;
this.toolTip1.SetToolTip(this.rbFreedbAlways, resources.GetString("rbFreedbAlways.ToolTip"));
this.rbFreedbAlways.UseVisualStyleBackColor = true; this.rbFreedbAlways.UseVisualStyleBackColor = true;
// //
// rbFreedbIf // rbFreedbIf
// //
this.rbFreedbIf.AccessibleDescription = null;
this.rbFreedbIf.AccessibleName = null;
resources.ApplyResources(this.rbFreedbIf, "rbFreedbIf"); resources.ApplyResources(this.rbFreedbIf, "rbFreedbIf");
this.rbFreedbIf.BackgroundImage = null;
this.rbFreedbIf.Font = null;
this.rbFreedbIf.Name = "rbFreedbIf"; this.rbFreedbIf.Name = "rbFreedbIf";
this.rbFreedbIf.TabStop = true; this.rbFreedbIf.TabStop = true;
this.toolTip1.SetToolTip(this.rbFreedbIf, resources.GetString("rbFreedbIf.ToolTip"));
this.rbFreedbIf.UseVisualStyleBackColor = true; this.rbFreedbIf.UseVisualStyleBackColor = true;
// //
// rbFreedbNever // rbFreedbNever
// //
this.rbFreedbNever.AccessibleDescription = null;
this.rbFreedbNever.AccessibleName = null;
resources.ApplyResources(this.rbFreedbNever, "rbFreedbNever"); resources.ApplyResources(this.rbFreedbNever, "rbFreedbNever");
this.rbFreedbNever.BackgroundImage = null;
this.rbFreedbNever.Font = null;
this.rbFreedbNever.Name = "rbFreedbNever"; this.rbFreedbNever.Name = "rbFreedbNever";
this.rbFreedbNever.TabStop = true; this.rbFreedbNever.TabStop = true;
this.toolTip1.SetToolTip(this.rbFreedbNever, resources.GetString("rbFreedbNever.ToolTip"));
this.rbFreedbNever.UseVisualStyleBackColor = true; this.rbFreedbNever.UseVisualStyleBackColor = true;
// //
// contextMenuStripUDC // contextMenuStripUDC
// //
this.contextMenuStripUDC.AccessibleDescription = null;
this.contextMenuStripUDC.AccessibleName = null;
resources.ApplyResources(this.contextMenuStripUDC, "contextMenuStripUDC");
this.contextMenuStripUDC.BackgroundImage = null;
this.contextMenuStripUDC.Font = null;
this.contextMenuStripUDC.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.contextMenuStripUDC.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem2, this.toolStripMenuItem2,
this.tAKToolStripMenuItem, this.tAKToolStripMenuItem,
@@ -846,77 +576,48 @@ namespace JDP {
this.mP3ToolStripMenuItem, this.mP3ToolStripMenuItem,
this.oGGToolStripMenuItem}); this.oGGToolStripMenuItem});
this.contextMenuStripUDC.Name = "contextMenuStripUDC"; this.contextMenuStripUDC.Name = "contextMenuStripUDC";
this.toolTip1.SetToolTip(this.contextMenuStripUDC, resources.GetString("contextMenuStripUDC.ToolTip")); resources.ApplyResources(this.contextMenuStripUDC, "contextMenuStripUDC");
this.contextMenuStripUDC.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStripUDC_ItemClicked); this.contextMenuStripUDC.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStripUDC_ItemClicked);
// //
// toolStripMenuItem2 // toolStripMenuItem2
// //
this.toolStripMenuItem2.AccessibleDescription = null;
this.toolStripMenuItem2.AccessibleName = null;
resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2"); resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2");
this.toolStripMenuItem2.BackgroundImage = null;
this.toolStripMenuItem2.Name = "toolStripMenuItem2"; this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.ShortcutKeyDisplayString = null;
// //
// tAKToolStripMenuItem // tAKToolStripMenuItem
// //
this.tAKToolStripMenuItem.AccessibleDescription = null;
this.tAKToolStripMenuItem.AccessibleName = null;
resources.ApplyResources(this.tAKToolStripMenuItem, "tAKToolStripMenuItem");
this.tAKToolStripMenuItem.BackgroundImage = null;
this.tAKToolStripMenuItem.Name = "tAKToolStripMenuItem"; this.tAKToolStripMenuItem.Name = "tAKToolStripMenuItem";
this.tAKToolStripMenuItem.ShortcutKeyDisplayString = null; resources.ApplyResources(this.tAKToolStripMenuItem, "tAKToolStripMenuItem");
// //
// toolStripMenuItem1 // toolStripMenuItem1
// //
this.toolStripMenuItem1.AccessibleDescription = null;
this.toolStripMenuItem1.AccessibleName = null;
resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
this.toolStripMenuItem1.BackgroundImage = null;
this.toolStripMenuItem1.Name = "toolStripMenuItem1"; this.toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.ShortcutKeyDisplayString = null; resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
// //
// toolStripSeparator1 // toolStripSeparator1
// //
this.toolStripSeparator1.AccessibleDescription = null;
this.toolStripSeparator1.AccessibleName = null;
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
this.toolStripSeparator1.Name = "toolStripSeparator1"; this.toolStripSeparator1.Name = "toolStripSeparator1";
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
// //
// toolStripMenuItem3 // toolStripMenuItem3
// //
this.toolStripMenuItem3.AccessibleDescription = null;
this.toolStripMenuItem3.AccessibleName = null;
resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3"); resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
this.toolStripMenuItem3.BackgroundImage = null;
this.toolStripMenuItem3.Name = "toolStripMenuItem3"; this.toolStripMenuItem3.Name = "toolStripMenuItem3";
this.toolStripMenuItem3.ShortcutKeyDisplayString = null;
// //
// mP3ToolStripMenuItem // mP3ToolStripMenuItem
// //
this.mP3ToolStripMenuItem.AccessibleDescription = null;
this.mP3ToolStripMenuItem.AccessibleName = null;
resources.ApplyResources(this.mP3ToolStripMenuItem, "mP3ToolStripMenuItem");
this.mP3ToolStripMenuItem.BackgroundImage = null;
this.mP3ToolStripMenuItem.Name = "mP3ToolStripMenuItem"; this.mP3ToolStripMenuItem.Name = "mP3ToolStripMenuItem";
this.mP3ToolStripMenuItem.ShortcutKeyDisplayString = null; resources.ApplyResources(this.mP3ToolStripMenuItem, "mP3ToolStripMenuItem");
// //
// oGGToolStripMenuItem // oGGToolStripMenuItem
// //
this.oGGToolStripMenuItem.AccessibleDescription = null;
this.oGGToolStripMenuItem.AccessibleName = null;
resources.ApplyResources(this.oGGToolStripMenuItem, "oGGToolStripMenuItem");
this.oGGToolStripMenuItem.BackgroundImage = null;
this.oGGToolStripMenuItem.Name = "oGGToolStripMenuItem"; this.oGGToolStripMenuItem.Name = "oGGToolStripMenuItem";
this.oGGToolStripMenuItem.ShortcutKeyDisplayString = null; resources.ApplyResources(this.oGGToolStripMenuItem, "oGGToolStripMenuItem");
// //
// frmCUETools // frmCUETools
// //
this.AccessibleDescription = null;
this.AccessibleName = null;
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackgroundImage = null;
this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnResume); this.Controls.Add(this.btnResume);
this.Controls.Add(this.btnPause); this.Controls.Add(this.btnPause);
@@ -936,7 +637,6 @@ namespace JDP {
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false; this.MaximizeBox = false;
this.Name = "frmCUETools"; this.Name = "frmCUETools";
this.toolTip1.SetToolTip(this, resources.GetString("$this.ToolTip"));
this.Load += new System.EventHandler(this.frmCUETools_Load); this.Load += new System.EventHandler(this.frmCUETools_Load);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmCUETools_FormClosed); this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmCUETools_FormClosed);
this.grpCUEPaths.ResumeLayout(false); this.grpCUEPaths.ResumeLayout(false);

View File

@@ -412,7 +412,7 @@ namespace JDP {
if (cueSheet.IsCD) if (cueSheet.IsCD)
{ {
frmReport reportForm = new frmReport(); frmReport reportForm = new frmReport();
reportForm.Message = cueSheet.LOGContents(); reportForm.Message = cueSheet.LOGContents;
CenterSubForm(reportForm); CenterSubForm(reportForm);
reportForm.ShowDialog(this); reportForm.ShowDialog(this);
} }

File diff suppressed because it is too large Load Diff

View File

@@ -150,13 +150,14 @@ namespace JDP
CDEntry cdEntry = item as CDEntry; CDEntry cdEntry = item as CDEntry;
listTracks.Items.Clear(); listTracks.Items.Clear();
foreach (Freedb.Track track in cdEntry.Tracks) for (int i = 0; i < cdEntry.Tracks.Count; i++)
{ {
listTracks.Items.Add(new ListViewItem(new string[] { listTracks.Items.Add(new ListViewItem(new string[] {
track.Title, cdEntry.Tracks[i].Title,
(listTracks.Items.Count + 1).ToString(), (i + 1).ToString(),
CDImageLayout.TimeToString((uint)track.FrameOffset - 150), CDImageLayout.TimeToString((uint)cdEntry.Tracks[i].FrameOffset - 150),
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].LengthMSF CDImageLayout.TimeToString((i + 1 < cdEntry.Tracks.Count) ? (uint) (cdEntry.Tracks[i + 1].FrameOffset - cdEntry.Tracks[i].FrameOffset) :
(CUE == null || i >= CUE.TOC.TrackCount) ? 0 : CUE.TOC[i + 1].Length)
})); }));
} }
AutoResizeTracks(); AutoResizeTracks();

View File

@@ -796,6 +796,19 @@ FLAC_API FLAC__bool FLAC__stream_decoder_set_ogg_serial_number(FLAC__StreamDecod
*/ */
FLAC_API FLAC__bool FLAC__stream_decoder_set_md5_checking(FLAC__StreamDecoder *decoder, FLAC__bool value); FLAC_API FLAC__bool FLAC__stream_decoder_set_md5_checking(FLAC__StreamDecoder *decoder, FLAC__bool value);
/** Set the "disable_asm" flag. If \c true, the decoder will
* not use assembler code.
*
* \default \c false
* \param decoder A decoder instance to set.
* \param value Flag value (see above).
* \assert
* \code decoder != NULL \endcode
* \retval FLAC__bool
* \c false if the decoder is already initialized, else \c true.
*/
FLAC_API FLAC__bool FLAC__stream_decoder_set_disable_asm(FLAC__StreamDecoder *decoder, FLAC__bool value);
/** Direct the decoder to pass on all metadata blocks of type \a type. /** Direct the decoder to pass on all metadata blocks of type \a type.
* *
* \default By default, only the \c STREAMINFO block is returned via the * \default By default, only the \c STREAMINFO block is returned via the

View File

@@ -742,6 +742,8 @@ FLAC_API FLAC__bool FLAC__stream_encoder_set_ogg_serial_number(FLAC__StreamEncod
*/ */
FLAC_API FLAC__bool FLAC__stream_encoder_set_verify(FLAC__StreamEncoder *encoder, FLAC__bool value); FLAC_API FLAC__bool FLAC__stream_encoder_set_verify(FLAC__StreamEncoder *encoder, FLAC__bool value);
FLAC_API FLAC__bool FLAC__stream_encoder_set_disable_asm(FLAC__StreamEncoder *encoder, FLAC__bool value);
/** Set the <A HREF="../format.html#subset">Subset</A> flag. If \c true, /** Set the <A HREF="../format.html#subset">Subset</A> flag. If \c true,
* the encoder will comply with the Subset and will check the * the encoder will comply with the Subset and will check the
* settings during FLAC__stream_encoder_init_*() to see if all settings * settings during FLAC__stream_encoder_init_*() to see if all settings

View File

@@ -151,6 +151,7 @@ typedef struct FLAC__StreamDecoderPrivate {
#if FLAC__HAS_OGG #if FLAC__HAS_OGG
FLAC__bool is_ogg; FLAC__bool is_ogg;
#endif #endif
FLAC__bool disable_asm;
FLAC__StreamDecoderReadCallback read_callback; FLAC__StreamDecoderReadCallback read_callback;
FLAC__StreamDecoderSeekCallback seek_callback; FLAC__StreamDecoderSeekCallback seek_callback;
FLAC__StreamDecoderTellCallback tell_callback; FLAC__StreamDecoderTellCallback tell_callback;
@@ -408,7 +409,12 @@ static FLAC__StreamDecoderInitStatus init_stream_internal_(
/* /*
* get the CPU info and set the function pointers * get the CPU info and set the function pointers
*/ */
FLAC__cpu_info(&decoder->private_->cpuinfo); if (decoder->private_->disable_asm)
{
decoder->private_->cpuinfo.type = FLAC__CPUINFO_TYPE_UNKNOWN;
decoder->private_->cpuinfo.use_asm = false;
} else
FLAC__cpu_info(&decoder->private_->cpuinfo);
/* first default to the non-asm routines */ /* first default to the non-asm routines */
decoder->private_->local_lpc_restore_signal = FLAC__lpc_restore_signal; decoder->private_->local_lpc_restore_signal = FLAC__lpc_restore_signal;
decoder->private_->local_lpc_restore_signal_64bit = FLAC__lpc_restore_signal_wide; decoder->private_->local_lpc_restore_signal_64bit = FLAC__lpc_restore_signal_wide;
@@ -753,6 +759,16 @@ FLAC_API FLAC__bool FLAC__stream_decoder_set_md5_checking(FLAC__StreamDecoder *d
return true; return true;
} }
FLAC_API FLAC__bool FLAC__stream_decoder_set_disable_asm(FLAC__StreamDecoder *decoder, FLAC__bool value)
{
FLAC__ASSERT(0 != decoder);
FLAC__ASSERT(0 != decoder->protected_);
if(decoder->protected_->state != FLAC__STREAM_DECODER_UNINITIALIZED)
return false;
decoder->private_->disable_asm = value;
return true;
}
FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond(FLAC__StreamDecoder *decoder, FLAC__MetadataType type) FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond(FLAC__StreamDecoder *decoder, FLAC__MetadataType type)
{ {
FLAC__ASSERT(0 != decoder); FLAC__ASSERT(0 != decoder);

View File

@@ -330,6 +330,7 @@ static FILE *get_binary_stdout_(void);
***********************************************************************/ ***********************************************************************/
typedef struct FLAC__StreamEncoderPrivate { typedef struct FLAC__StreamEncoderPrivate {
FLAC__bool disable_asm;
unsigned input_capacity; /* current size (in samples) of the signal and residual buffers */ unsigned input_capacity; /* current size (in samples) of the signal and residual buffers */
FLAC__int32 *integer_signal[FLAC__MAX_CHANNELS]; /* the integer version of the input signal */ FLAC__int32 *integer_signal[FLAC__MAX_CHANNELS]; /* the integer version of the input signal */
FLAC__int32 *integer_signal_mid_side[2]; /* the integer version of the mid-side input signal (stereo only) */ FLAC__int32 *integer_signal_mid_side[2]; /* the integer version of the mid-side input signal (stereo only) */
@@ -891,7 +892,12 @@ static FLAC__StreamEncoderInitStatus init_stream_internal_(
/* /*
* get the CPU info and set the function pointers * get the CPU info and set the function pointers
*/ */
FLAC__cpu_info(&encoder->private_->cpuinfo); if (encoder->private_->disable_asm)
{
encoder->private_->cpuinfo.type = FLAC__CPUINFO_TYPE_UNKNOWN;
encoder->private_->cpuinfo.use_asm = false;
} else
FLAC__cpu_info(&encoder->private_->cpuinfo);
/* first default to the non-asm routines */ /* first default to the non-asm routines */
#ifndef FLAC__INTEGER_ONLY_LIBRARY #ifndef FLAC__INTEGER_ONLY_LIBRARY
encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation; encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation;
@@ -1431,6 +1437,16 @@ FLAC_API FLAC__bool FLAC__stream_encoder_set_do_md5(FLAC__StreamEncoder *encoder
return true; return true;
} }
FLAC_API FLAC__bool FLAC__stream_encoder_set_disable_asm(FLAC__StreamEncoder *encoder, FLAC__bool value)
{
FLAC__ASSERT(0 != encoder);
FLAC__ASSERT(0 != encoder->protected_);
if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)
return false;
encoder->private_->disable_asm = value;
return true;
}
FLAC_API FLAC__bool FLAC__stream_encoder_set_channels(FLAC__StreamEncoder *encoder, unsigned value) FLAC_API FLAC__bool FLAC__stream_encoder_set_channels(FLAC__StreamEncoder *encoder, unsigned value)
{ {
FLAC__ASSERT(0 != encoder); FLAC__ASSERT(0 != encoder);