LossyWAV support in CUETools.

Option to decode HDCD to 16-bit lossyWAV.
20-bit (in addition to 24-bit) HDCD decoding support
This commit is contained in:
chudov
2008-11-22 15:10:33 +00:00
parent bb73da55d0
commit b5008007cf
16 changed files with 941 additions and 1219 deletions

View File

@@ -284,10 +284,10 @@ namespace APEDotNet {
public: public:
APEWriter(String^ path, Int32 bitsPerSample, Int32 channelCount, Int32 sampleRate) APEWriter(String^ path, Int32 bitsPerSample, Int32 channelCount, Int32 sampleRate)
{ {
if (bitsPerSample != 16 && bitsPerSample != 24)
throw gcnew Exception("Bits per sample must be 16 or 24.");
if (channelCount != 1 && channelCount != 2) if (channelCount != 1 && channelCount != 2)
throw gcnew Exception("Only stereo and mono audio formats are allowed."); throw gcnew Exception("Only stereo and mono audio formats are allowed.");
if (bitsPerSample != 16 && bitsPerSample != 24)
throw gcnew Exception("Monkey's Audio doesn't support selected bits per sample value.");
_path = path; _path = path;
_tags = gcnew NameValueCollection(); _tags = gcnew NameValueCollection();
@@ -374,6 +374,11 @@ namespace APEDotNet {
} }
} }
virtual property int BitsPerSample
{
int get() { return _bitsPerSample; }
}
virtual void Write(array<Int32,2>^ buff, UInt32 sampleCount) virtual void Write(array<Int32,2>^ buff, UInt32 sampleCount)
{ {
if (_sampleBuffer == nullptr || _sampleBuffer.Length < sampleCount * _blockAlign) if (_sampleBuffer == nullptr || _sampleBuffer.Length < sampleCount * _blockAlign)

View File

@@ -29,8 +29,8 @@ namespace ArCueDotNet
try try
{ {
CUESheet cueSheet = new CUESheet(config); CUESheet cueSheet = new CUESheet(config);
cueSheet.Open(pathIn); cueSheet.Open(pathIn, false);
cueSheet.GenerateFilenames(OutputAudioFormat.NoAudio, pathIn, false); cueSheet.GenerateFilenames(OutputAudioFormat.NoAudio, pathIn);
cueSheet.AccurateRip = true; cueSheet.AccurateRip = true;
cueSheet.WriteAudioFiles(Path.GetDirectoryName(pathIn), CUEStyle.SingleFile); cueSheet.WriteAudioFiles(Path.GetDirectoryName(pathIn), CUEStyle.SingleFile);
cueSheet.GenerateAccurateRipLog(sw); cueSheet.GenerateAccurateRipLog(sw);

View File

@@ -51,6 +51,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnRarDotNet", "..\UnRarDotN
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LossyWAVDotNet", "..\LossyWAVDotNet\LossyWAVDotNet.csproj", "{8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LossyWAVDotNet", "..\LossyWAVDotNet\LossyWAVDotNet.csproj", "{8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LossyWAVSharp", "..\LossyWAVSharp\LossyWAVSharp.csproj", "{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@@ -226,6 +228,18 @@ Global
{8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}.Release|x64.Build.0 = Release|x64 {8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}.Release|x64.Build.0 = Release|x64
{8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}.Release|x86.ActiveCfg = Release|x86 {8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}.Release|x86.ActiveCfg = Release|x86
{8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}.Release|x86.Build.0 = Release|x86 {8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}.Release|x86.Build.0 = Release|x86
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Debug|x64.ActiveCfg = Debug|x64
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Debug|x64.Build.0 = Debug|x64
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Debug|x86.ActiveCfg = Debug|x86
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Debug|x86.Build.0 = Debug|x86
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Release|Any CPU.Build.0 = Release|Any CPU
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Release|x64.ActiveCfg = Release|x64
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Release|x64.Build.0 = Release|x64
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Release|x86.ActiveCfg = Release|x86
{A574F3B1-E38B-4EE4-9394-49D6E2DF52EA}.Release|x86.Build.0 = Release|x86
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@@ -139,7 +139,7 @@ namespace JDP
cueName = Path.GetFileNameWithoutExtension(pathIn) + ".cue"; cueName = Path.GetFileNameWithoutExtension(pathIn) + ".cue";
bool outputAudio = _accurateOffset || !_accurateRip; bool outputAudio = _accurateOffset || !_accurateRip;
cueSheet.Open(pathIn); cueSheet.Open(pathIn, _lossyWAV);
if (outputAudio) if (outputAudio)
{ {
bool pathFound = false; bool pathFound = false;
@@ -159,7 +159,7 @@ namespace JDP
} }
else else
pathOut = Path.Combine(Path.GetDirectoryName(pathIn), cueName); pathOut = Path.Combine(Path.GetDirectoryName(pathIn), cueName);
cueSheet.GenerateFilenames(_audioFormat, pathOut, _lossyWAV); cueSheet.GenerateFilenames(_audioFormat, pathOut);
if (outputAudio) if (outputAudio)
{ {
if (_cueStyle == CUEStyle.SingleFileWithCUE) if (_cueStyle == CUEStyle.SingleFileWithCUE)

View File

@@ -371,6 +371,7 @@ namespace JDP {
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;
this.rbArApplyOffset.CheckedChanged += new System.EventHandler(this.rbArApplyOffset_CheckedChanged);
// //
// rbArVerify // rbArVerify
// //

View File

@@ -246,11 +246,11 @@ namespace JDP {
cueSheet = new CUESheet(_config); cueSheet = new CUESheet(_config);
cueSheet.PasswordRequired += new ArchivePasswordRequiredHandler(PasswordRequired); cueSheet.PasswordRequired += new ArchivePasswordRequiredHandler(PasswordRequired);
cueSheet.WriteOffset = _writeOffset; cueSheet.WriteOffset = _writeOffset;
cueSheet.Open(pathIn); cueSheet.Open(pathIn, chkLossyWAV.Checked);
UpdateOutputPath(cueSheet.Artist != "" ? cueSheet.Artist : "Unknown Artist", cueSheet.Title != "" ? cueSheet.Title : "Unknown Title"); UpdateOutputPath(cueSheet.Artist != "" ? cueSheet.Artist : "Unknown Artist", cueSheet.Title != "" ? cueSheet.Title : "Unknown Title");
pathOut = txtOutputPath.Text; pathOut = txtOutputPath.Text;
cueSheet.GenerateFilenames(SelectedOutputAudioFormat, pathOut, chkLossyWAV.Checked); cueSheet.GenerateFilenames(SelectedOutputAudioFormat, pathOut);
outDir = Path.GetDirectoryName(pathOut); outDir = Path.GetDirectoryName(pathOut);
if (cueStyle == CUEStyle.SingleFileWithCUE) if (cueStyle == CUEStyle.SingleFileWithCUE)
cueSheet.SingleFilename = Path.GetFileName (pathOut); cueSheet.SingleFilename = Path.GetFileName (pathOut);
@@ -774,8 +774,13 @@ namespace JDP {
ext = General.FormatExtension (SelectedOutputAudioFormat); ext = General.FormatExtension (SelectedOutputAudioFormat);
if (chkLossyWAV.Checked) if (chkLossyWAV.Checked)
ext = ".lossy" + ext; ext = ".lossy" + ext;
if (_config.detectHDCD && _config.decodeHDCD) if (_config.detectHDCD && _config.decodeHDCD && (!chkLossyWAV.Checked || !_config.decodeHDCDtoLW16))
ext = ".24bit" + ext; {
if (_config.decodeHDCDto24bit)
ext = ".24bit" + ext;
else
ext = ".20bit" + ext;
}
if (rbCreateSubdirectory.Checked) { if (rbCreateSubdirectory.Checked) {
pathOut = Path.Combine(Path.Combine(dir, txtCreateSubdirectory.Text), file + ext); pathOut = Path.Combine(Path.Combine(dir, txtCreateSubdirectory.Text), file + ext);
@@ -920,6 +925,12 @@ namespace JDP {
updateOutputStyles(); updateOutputStyles();
UpdateOutputPath(); UpdateOutputPath();
} }
private void rbArApplyOffset_CheckedChanged(object sender, EventArgs e)
{
UpdateOutputPath();
SetupControls(false);
}
} }
enum OutputPathGeneration { enum OutputPathGeneration {

View File

@@ -143,102 +143,6 @@
<data name="&gt;&gt;btnConvert.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnConvert.ZOrder" xml:space="preserve">
<value>14</value> <value>14</value>
</data> </data>
<data name="&gt;&gt;btnBrowseOutput.Name" xml:space="preserve">
<value>btnBrowseOutput</value>
</data>
<data name="&gt;&gt;btnBrowseOutput.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;btnBrowseOutput.Parent" xml:space="preserve">
<value>grpCUEPaths</value>
</data>
<data name="&gt;&gt;btnBrowseOutput.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;btnBrowseInput.Name" xml:space="preserve">
<value>btnBrowseInput</value>
</data>
<data name="&gt;&gt;btnBrowseInput.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;btnBrowseInput.Parent" xml:space="preserve">
<value>grpCUEPaths</value>
</data>
<data name="&gt;&gt;btnBrowseInput.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;lblOutput.Name" xml:space="preserve">
<value>lblOutput</value>
</data>
<data name="&gt;&gt;lblOutput.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblOutput.Parent" xml:space="preserve">
<value>grpCUEPaths</value>
</data>
<data name="&gt;&gt;lblOutput.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;lblInput.Name" xml:space="preserve">
<value>lblInput</value>
</data>
<data name="&gt;&gt;lblInput.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblInput.Parent" xml:space="preserve">
<value>grpCUEPaths</value>
</data>
<data name="&gt;&gt;lblInput.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;txtOutputPath.Name" xml:space="preserve">
<value>txtOutputPath</value>
</data>
<data name="&gt;&gt;txtOutputPath.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;txtOutputPath.Parent" xml:space="preserve">
<value>grpCUEPaths</value>
</data>
<data name="&gt;&gt;txtOutputPath.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="&gt;&gt;txtInputPath.Name" xml:space="preserve">
<value>txtInputPath</value>
</data>
<data name="&gt;&gt;txtInputPath.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;txtInputPath.Parent" xml:space="preserve">
<value>grpCUEPaths</value>
</data>
<data name="&gt;&gt;txtInputPath.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="grpCUEPaths.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 4</value>
</data>
<data name="grpCUEPaths.Size" type="System.Drawing.Size, System.Drawing">
<value>535, 84</value>
</data>
<data name="grpCUEPaths.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="grpCUEPaths.Text" xml:space="preserve">
<value>CUE Paths</value>
</data>
<data name="&gt;&gt;grpCUEPaths.Name" xml:space="preserve">
<value>grpCUEPaths</value>
</data>
<data name="&gt;&gt;grpCUEPaths.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;grpCUEPaths.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;grpCUEPaths.ZOrder" xml:space="preserve">
<value>13</value>
</data>
<data name="btnBrowseOutput.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnBrowseOutput.Location" type="System.Drawing.Point, System.Drawing">
<value>452, 49</value> <value>452, 49</value>
</data> </data>
@@ -383,93 +287,30 @@
<data name="&gt;&gt;txtInputPath.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtInputPath.ZOrder" xml:space="preserve">
<value>5</value> <value>5</value>
</data> </data>
<data name="&gt;&gt;rbEmbedCUE.Name" xml:space="preserve"> <data name="grpCUEPaths.Location" type="System.Drawing.Point, System.Drawing">
<value>rbEmbedCUE</value> <value>8, 4</value>
</data> </data>
<data name="&gt;&gt;rbEmbedCUE.Type" xml:space="preserve"> <data name="grpCUEPaths.Size" type="System.Drawing.Size, System.Drawing">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>535, 84</value>
</data> </data>
<data name="&gt;&gt;rbEmbedCUE.Parent" xml:space="preserve"> <data name="grpCUEPaths.TabIndex" type="System.Int32, mscorlib">
<value>grpOutputStyle</value>
</data>
<data name="&gt;&gt;rbEmbedCUE.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<data name="&gt;&gt;rbGapsLeftOut.Name" xml:space="preserve"> <data name="grpCUEPaths.Text" xml:space="preserve">
<value>rbGapsLeftOut</value> <value>CUE Paths</value>
</data> </data>
<data name="&gt;&gt;rbGapsLeftOut.Type" xml:space="preserve"> <data name="&gt;&gt;grpCUEPaths.Name" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>grpCUEPaths</value>
</data> </data>
<data name="&gt;&gt;rbGapsLeftOut.Parent" xml:space="preserve"> <data name="&gt;&gt;grpCUEPaths.Type" xml:space="preserve">
<value>grpOutputStyle</value>
</data>
<data name="&gt;&gt;rbGapsLeftOut.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;rbGapsPrepended.Name" xml:space="preserve">
<value>rbGapsPrepended</value>
</data>
<data name="&gt;&gt;rbGapsPrepended.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbGapsPrepended.Parent" xml:space="preserve">
<value>grpOutputStyle</value>
</data>
<data name="&gt;&gt;rbGapsPrepended.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;rbGapsAppended.Name" xml:space="preserve">
<value>rbGapsAppended</value>
</data>
<data name="&gt;&gt;rbGapsAppended.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbGapsAppended.Parent" xml:space="preserve">
<value>grpOutputStyle</value>
</data>
<data name="&gt;&gt;rbGapsAppended.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;rbSingleFile.Name" xml:space="preserve">
<value>rbSingleFile</value>
</data>
<data name="&gt;&gt;rbSingleFile.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbSingleFile.Parent" xml:space="preserve">
<value>grpOutputStyle</value>
</data>
<data name="&gt;&gt;rbSingleFile.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="grpOutputStyle.Location" type="System.Drawing.Point, System.Drawing">
<value>108, 211</value>
</data>
<data name="grpOutputStyle.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 137</value>
</data>
<data name="grpOutputStyle.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="grpOutputStyle.Text" xml:space="preserve">
<value>CUE Style</value>
</data>
<data name="&gt;&gt;grpOutputStyle.Name" xml:space="preserve">
<value>grpOutputStyle</value>
</data>
<data name="&gt;&gt;grpOutputStyle.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;grpOutputStyle.Parent" xml:space="preserve"> <data name="&gt;&gt;grpCUEPaths.Parent" xml:space="preserve">
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;grpOutputStyle.ZOrder" xml:space="preserve"> <data name="&gt;&gt;grpCUEPaths.ZOrder" xml:space="preserve">
<value>12</value> <value>13</value>
</data> </data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>153, 8</value>
</metadata>
<data name="rbEmbedCUE.AutoSize" type="System.Boolean, mscorlib"> <data name="rbEmbedCUE.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
@@ -489,6 +330,9 @@
<data name="rbEmbedCUE.Text" xml:space="preserve"> <data name="rbEmbedCUE.Text" xml:space="preserve">
<value>&amp;Embedded</value> <value>&amp;Embedded</value>
</data> </data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>153, 8</value>
</metadata>
<data name="rbEmbedCUE.ToolTip" xml:space="preserve"> <data name="rbEmbedCUE.ToolTip" xml:space="preserve">
<value>Create single file with embedded CUE sheet.</value> <value>Create single file with embedded CUE sheet.</value>
</data> </data>
@@ -624,6 +468,30 @@
<data name="&gt;&gt;rbSingleFile.ZOrder" xml:space="preserve"> <data name="&gt;&gt;rbSingleFile.ZOrder" xml:space="preserve">
<value>4</value> <value>4</value>
</data> </data>
<data name="grpOutputStyle.Location" type="System.Drawing.Point, System.Drawing">
<value>108, 211</value>
</data>
<data name="grpOutputStyle.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 137</value>
</data>
<data name="grpOutputStyle.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="grpOutputStyle.Text" xml:space="preserve">
<value>CUE Style</value>
</data>
<data name="&gt;&gt;grpOutputStyle.Name" xml:space="preserve">
<value>grpOutputStyle</value>
</data>
<data name="&gt;&gt;grpOutputStyle.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;grpOutputStyle.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;grpOutputStyle.ZOrder" xml:space="preserve">
<value>12</value>
</data>
<data name="btnAbout.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>412, 152</value> <value>412, 152</value>
</data> </data>
@@ -648,114 +516,6 @@
<data name="&gt;&gt;btnAbout.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnAbout.ZOrder" xml:space="preserve">
<value>11</value> <value>11</value>
</data> </data>
<data name="&gt;&gt;txtCustomFormat.Name" xml:space="preserve">
<value>txtCustomFormat</value>
</data>
<data name="&gt;&gt;txtCustomFormat.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;txtCustomFormat.Parent" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;txtCustomFormat.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;rbCustomFormat.Name" xml:space="preserve">
<value>rbCustomFormat</value>
</data>
<data name="&gt;&gt;rbCustomFormat.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbCustomFormat.Parent" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;rbCustomFormat.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;txtCreateSubdirectory.Name" xml:space="preserve">
<value>txtCreateSubdirectory</value>
</data>
<data name="&gt;&gt;txtCreateSubdirectory.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;txtCreateSubdirectory.Parent" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;txtCreateSubdirectory.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;rbDontGenerate.Name" xml:space="preserve">
<value>rbDontGenerate</value>
</data>
<data name="&gt;&gt;rbDontGenerate.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbDontGenerate.Parent" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;rbDontGenerate.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;rbCreateSubdirectory.Name" xml:space="preserve">
<value>rbCreateSubdirectory</value>
</data>
<data name="&gt;&gt;rbCreateSubdirectory.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbCreateSubdirectory.Parent" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;rbCreateSubdirectory.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="&gt;&gt;rbAppendFilename.Name" xml:space="preserve">
<value>rbAppendFilename</value>
</data>
<data name="&gt;&gt;rbAppendFilename.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbAppendFilename.Parent" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;rbAppendFilename.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="&gt;&gt;txtAppendFilename.Name" xml:space="preserve">
<value>txtAppendFilename</value>
</data>
<data name="&gt;&gt;txtAppendFilename.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;txtAppendFilename.Parent" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;txtAppendFilename.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="grpOutputPathGeneration.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 92</value>
</data>
<data name="grpOutputPathGeneration.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 115</value>
</data>
<data name="grpOutputPathGeneration.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="grpOutputPathGeneration.Text" xml:space="preserve">
<value>Output Path</value>
</data>
<data name="&gt;&gt;grpOutputPathGeneration.Name" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;grpOutputPathGeneration.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;grpOutputPathGeneration.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;grpOutputPathGeneration.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="txtCustomFormat.Location" type="System.Drawing.Point, System.Drawing"> <data name="txtCustomFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>140, 62</value> <value>140, 62</value>
</data> </data>
@@ -936,6 +696,30 @@
<data name="&gt;&gt;txtAppendFilename.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtAppendFilename.ZOrder" xml:space="preserve">
<value>6</value> <value>6</value>
</data> </data>
<data name="grpOutputPathGeneration.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 92</value>
</data>
<data name="grpOutputPathGeneration.Size" type="System.Drawing.Size, System.Drawing">
<value>380, 115</value>
</data>
<data name="grpOutputPathGeneration.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="grpOutputPathGeneration.Text" xml:space="preserve">
<value>Output Path</value>
</data>
<data name="&gt;&gt;grpOutputPathGeneration.Name" xml:space="preserve">
<value>grpOutputPathGeneration</value>
</data>
<data name="&gt;&gt;grpOutputPathGeneration.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;grpOutputPathGeneration.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;grpOutputPathGeneration.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="chkLossyWAV.AutoSize" type="System.Boolean, mscorlib"> <data name="chkLossyWAV.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
@@ -951,9 +735,6 @@
<data name="chkLossyWAV.Text" xml:space="preserve"> <data name="chkLossyWAV.Text" xml:space="preserve">
<value>LossyWAV</value> <value>LossyWAV</value>
</data> </data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>153, 8</value>
</metadata>
<data name="chkLossyWAV.ToolTip" xml:space="preserve"> <data name="chkLossyWAV.ToolTip" xml:space="preserve">
<value>Create a pair of files - .lossy.wav(flac,etc) and .lwcdf.wav(flac,etc). Lossy file contains (lossy) compressed music, but together with the lwcdf (correction) file the original audio can be reconstructed.</value> <value>Create a pair of files - .lossy.wav(flac,etc) and .lwcdf.wav(flac,etc). Lossy file contains (lossy) compressed music, but together with the lwcdf (correction) file the original audio can be reconstructed.</value>
</data> </data>
@@ -1203,90 +984,6 @@
<data name="&gt;&gt;btnSettings.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnSettings.ZOrder" xml:space="preserve">
<value>6</value> <value>6</value>
</data> </data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>grpAccurateRip</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;txtDataTrackLength.Name" xml:space="preserve">
<value>txtDataTrackLength</value>
</data>
<data name="&gt;&gt;txtDataTrackLength.Type" xml:space="preserve">
<value>System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtDataTrackLength.Parent" xml:space="preserve">
<value>grpAccurateRip</value>
</data>
<data name="&gt;&gt;txtDataTrackLength.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;rbArApplyOffset.Name" xml:space="preserve">
<value>rbArApplyOffset</value>
</data>
<data name="&gt;&gt;rbArApplyOffset.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbArApplyOffset.Parent" xml:space="preserve">
<value>grpAccurateRip</value>
</data>
<data name="&gt;&gt;rbArApplyOffset.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;rbArVerify.Name" xml:space="preserve">
<value>rbArVerify</value>
</data>
<data name="&gt;&gt;rbArVerify.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbArVerify.Parent" xml:space="preserve">
<value>grpAccurateRip</value>
</data>
<data name="&gt;&gt;rbArVerify.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;rbArNone.Name" xml:space="preserve">
<value>rbArNone</value>
</data>
<data name="&gt;&gt;rbArNone.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rbArNone.Parent" xml:space="preserve">
<value>grpAccurateRip</value>
</data>
<data name="&gt;&gt;rbArNone.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="grpAccurateRip.Location" type="System.Drawing.Point, System.Drawing">
<value>244, 211</value>
</data>
<data name="grpAccurateRip.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 137</value>
</data>
<data name="grpAccurateRip.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="grpAccurateRip.Text" xml:space="preserve">
<value>AccurateRip</value>
</data>
<data name="&gt;&gt;grpAccurateRip.Name" xml:space="preserve">
<value>grpAccurateRip</value>
</data>
<data name="&gt;&gt;grpAccurateRip.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;grpAccurateRip.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;grpAccurateRip.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib"> <data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
@@ -1434,9 +1131,51 @@
<data name="&gt;&gt;rbArNone.ZOrder" xml:space="preserve"> <data name="&gt;&gt;rbArNone.ZOrder" xml:space="preserve">
<value>4</value> <value>4</value>
</data> </data>
<data name="grpAccurateRip.Location" type="System.Drawing.Point, System.Drawing">
<value>244, 211</value>
</data>
<data name="grpAccurateRip.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 137</value>
</data>
<data name="grpAccurateRip.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="grpAccurateRip.Text" xml:space="preserve">
<value>AccurateRip</value>
</data>
<data name="&gt;&gt;grpAccurateRip.Name" xml:space="preserve">
<value>grpAccurateRip</value>
</data>
<data name="&gt;&gt;grpAccurateRip.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;grpAccurateRip.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;grpAccurateRip.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<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, 359</value> <value>0, 359</value>
</metadata> </metadata>
<data name="toolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>252, 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="statusStrip1.Location" type="System.Drawing.Point, System.Drawing"> <data name="statusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 359</value> <value>0, 359</value>
</data> </data>
@@ -1461,24 +1200,6 @@
<data name="&gt;&gt;statusStrip1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;statusStrip1.ZOrder" xml:space="preserve">
<value>4</value> <value>4</value>
</data> </data>
<data name="toolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>252, 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="btnCUECreator.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <data name="btnCUECreator.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value> <value>NoControl</value>
</data> </data>

View File

@@ -69,6 +69,8 @@ namespace JDP {
this.chkWriteARTagsOnVerify = new System.Windows.Forms.CheckBox(); this.chkWriteARTagsOnVerify = new System.Windows.Forms.CheckBox();
this.chkHDCDDecode = new System.Windows.Forms.CheckBox(); this.chkHDCDDecode = new System.Windows.Forms.CheckBox();
this.chkHDCDStopLooking = new System.Windows.Forms.CheckBox(); this.chkHDCDStopLooking = new System.Windows.Forms.CheckBox();
this.chkHDCD24bit = new System.Windows.Forms.CheckBox();
this.chkHDCDLW16 = new System.Windows.Forms.CheckBox();
this.grpAudioFilenames = new System.Windows.Forms.GroupBox(); this.grpAudioFilenames = new System.Windows.Forms.GroupBox();
this.chkKeepOriginalFilenames = new System.Windows.Forms.CheckBox(); this.chkKeepOriginalFilenames = new System.Windows.Forms.CheckBox();
this.txtSpecialExceptions = new System.Windows.Forms.TextBox(); this.txtSpecialExceptions = new System.Windows.Forms.TextBox();
@@ -699,6 +701,7 @@ namespace JDP {
this.chkHDCDDecode.Name = "chkHDCDDecode"; this.chkHDCDDecode.Name = "chkHDCDDecode";
this.toolTip1.SetToolTip(this.chkHDCDDecode, resources.GetString("chkHDCDDecode.ToolTip")); this.toolTip1.SetToolTip(this.chkHDCDDecode, resources.GetString("chkHDCDDecode.ToolTip"));
this.chkHDCDDecode.UseVisualStyleBackColor = true; this.chkHDCDDecode.UseVisualStyleBackColor = true;
this.chkHDCDDecode.CheckedChanged += new System.EventHandler(this.chkHDCDDecode_CheckedChanged);
// //
// chkHDCDStopLooking // chkHDCDStopLooking
// //
@@ -711,6 +714,28 @@ namespace JDP {
this.toolTip1.SetToolTip(this.chkHDCDStopLooking, resources.GetString("chkHDCDStopLooking.ToolTip")); this.toolTip1.SetToolTip(this.chkHDCDStopLooking, resources.GetString("chkHDCDStopLooking.ToolTip"));
this.chkHDCDStopLooking.UseVisualStyleBackColor = true; this.chkHDCDStopLooking.UseVisualStyleBackColor = true;
// //
// chkHDCD24bit
//
this.chkHDCD24bit.AccessibleDescription = null;
this.chkHDCD24bit.AccessibleName = null;
resources.ApplyResources(this.chkHDCD24bit, "chkHDCD24bit");
this.chkHDCD24bit.BackgroundImage = null;
this.chkHDCD24bit.Font = null;
this.chkHDCD24bit.Name = "chkHDCD24bit";
this.toolTip1.SetToolTip(this.chkHDCD24bit, resources.GetString("chkHDCD24bit.ToolTip"));
this.chkHDCD24bit.UseVisualStyleBackColor = true;
//
// chkHDCDLW16
//
this.chkHDCDLW16.AccessibleDescription = null;
this.chkHDCDLW16.AccessibleName = null;
resources.ApplyResources(this.chkHDCDLW16, "chkHDCDLW16");
this.chkHDCDLW16.BackgroundImage = null;
this.chkHDCDLW16.Font = null;
this.chkHDCDLW16.Name = "chkHDCDLW16";
this.toolTip1.SetToolTip(this.chkHDCDLW16, resources.GetString("chkHDCDLW16.ToolTip"));
this.chkHDCDLW16.UseVisualStyleBackColor = true;
//
// grpAudioFilenames // grpAudioFilenames
// //
this.grpAudioFilenames.AccessibleDescription = null; this.grpAudioFilenames.AccessibleDescription = null;
@@ -1039,6 +1064,8 @@ namespace JDP {
this.grpHDCD.AccessibleName = null; this.grpHDCD.AccessibleName = null;
resources.ApplyResources(this.grpHDCD, "grpHDCD"); resources.ApplyResources(this.grpHDCD, "grpHDCD");
this.grpHDCD.BackgroundImage = null; this.grpHDCD.BackgroundImage = null;
this.grpHDCD.Controls.Add(this.chkHDCD24bit);
this.grpHDCD.Controls.Add(this.chkHDCDLW16);
this.grpHDCD.Controls.Add(this.chkHDCDStopLooking); this.grpHDCD.Controls.Add(this.chkHDCDStopLooking);
this.grpHDCD.Controls.Add(this.chkHDCDDecode); this.grpHDCD.Controls.Add(this.chkHDCDDecode);
this.grpHDCD.Font = null; this.grpHDCD.Font = null;
@@ -1189,6 +1216,8 @@ namespace JDP {
private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.NumericUpDown numericLossyWAVQuality; private System.Windows.Forms.NumericUpDown numericLossyWAVQuality;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private System.Windows.Forms.CheckBox chkHDCDLW16;
private System.Windows.Forms.CheckBox chkHDCD24bit;
} }
} }

View File

@@ -66,6 +66,8 @@ namespace JDP {
chkCreateCUEFileWhenEmbedded.Checked = _config.createCUEFileWhenEmbedded; chkCreateCUEFileWhenEmbedded.Checked = _config.createCUEFileWhenEmbedded;
chkTruncateExtra4206Samples.Checked = _config.truncate4608ExtraSamples; chkTruncateExtra4206Samples.Checked = _config.truncate4608ExtraSamples;
numericLossyWAVQuality.Value = _config.lossyWAVQuality; numericLossyWAVQuality.Value = _config.lossyWAVQuality;
chkHDCDLW16.Checked = _config.decodeHDCDtoLW16;
chkHDCD24bit.Checked = _config.decodeHDCDto24bit;
} }
private void frmSettings_FormClosing(object sender, FormClosingEventArgs e) { private void frmSettings_FormClosing(object sender, FormClosingEventArgs e) {
@@ -138,6 +140,8 @@ namespace JDP {
_config.createM3U = chkCreateM3U.Checked; _config.createM3U = chkCreateM3U.Checked;
_config.createCUEFileWhenEmbedded = chkCreateCUEFileWhenEmbedded.Checked; _config.createCUEFileWhenEmbedded = chkCreateCUEFileWhenEmbedded.Checked;
_config.truncate4608ExtraSamples = chkTruncateExtra4206Samples.Checked; _config.truncate4608ExtraSamples = chkTruncateExtra4206Samples.Checked;
_config.decodeHDCDtoLW16 = chkHDCDLW16.Checked;
_config.decodeHDCDto24bit = chkHDCD24bit.Checked;
} }
private void chkArFixOffset_CheckedChanged(object sender, EventArgs e) private void chkArFixOffset_CheckedChanged(object sender, EventArgs e)
@@ -172,5 +176,11 @@ namespace JDP {
{ {
txtSpecialExceptions.Enabled = chkRemoveSpecial.Checked; txtSpecialExceptions.Enabled = chkRemoveSpecial.Checked;
} }
private void chkHDCDDecode_CheckedChanged(object sender, EventArgs e)
{
chkHDCDLW16.Enabled = chkHDCDDecode.Checked;
chkHDCD24bit.Enabled = chkHDCDDecode.Checked;
}
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -120,8 +120,8 @@
<data name="btnCancel.Text" xml:space="preserve"> <data name="btnCancel.Text" xml:space="preserve">
<value>Отмена</value> <value>Отмена</value>
</data> </data>
<data name="btnCancel.ToolTip" xml:space="preserve"> <data name="grpGeneral.Text" xml:space="preserve">
<value /> <value>Общие</value>
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="chkReducePriority.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkReducePriority.Size" type="System.Drawing.Size, System.Drawing">
@@ -130,9 +130,6 @@
<data name="chkReducePriority.Text" xml:space="preserve"> <data name="chkReducePriority.Text" xml:space="preserve">
<value>Понизить приоритет процесса</value> <value>Понизить приоритет процесса</value>
</data> </data>
<data name="chkReducePriority.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkTruncateExtra4206Samples.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkTruncateExtra4206Samples.Size" type="System.Drawing.Size, System.Drawing">
<value>202, 17</value> <value>202, 17</value>
</data> </data>
@@ -148,27 +145,18 @@
<data name="chkCreateCUEFileWhenEmbedded.Text" xml:space="preserve"> <data name="chkCreateCUEFileWhenEmbedded.Text" xml:space="preserve">
<value>Создавать .cue даже при встраивании</value> <value>Создавать .cue даже при встраивании</value>
</data> </data>
<data name="chkCreateCUEFileWhenEmbedded.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkCreateM3U.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkCreateM3U.Size" type="System.Drawing.Size, System.Drawing">
<value>166, 17</value> <value>166, 17</value>
</data> </data>
<data name="chkCreateM3U.Text" xml:space="preserve"> <data name="chkCreateM3U.Text" xml:space="preserve">
<value>Создавать плейлисты .m3u</value> <value>Создавать плейлисты .m3u</value>
</data> </data>
<data name="chkCreateM3U.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkFillUpCUE.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkFillUpCUE.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 17</value> <value>221, 17</value>
</data> </data>
<data name="chkFillUpCUE.Text" xml:space="preserve"> <data name="chkFillUpCUE.Text" xml:space="preserve">
<value>Пополнить .cue информацией из тэгов</value> <value>Пополнить .cue информацией из тэгов</value>
</data> </data>
<data name="chkFillUpCUE.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEmbedLog.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkEmbedLog.Size" type="System.Drawing.Size, System.Drawing">
<value>156, 17</value> <value>156, 17</value>
</data> </data>
@@ -178,9 +166,6 @@
<data name="chkEmbedLog.ToolTip" xml:space="preserve"> <data name="chkEmbedLog.ToolTip" xml:space="preserve">
<value>Работает, если .log лежит в той же папке и имеет то же имя, что и исходный файл</value> <value>Работает, если .log лежит в той же папке и имеет то же имя, что и исходный файл</value>
</data> </data>
<data name="numericWriteOffset.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkAutoCorrectFilenames.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkAutoCorrectFilenames.Size" type="System.Drawing.Size, System.Drawing">
<value>213, 17</value> <value>213, 17</value>
</data> </data>
@@ -196,30 +181,15 @@
<data name="chkPreserveHTOA.Text" xml:space="preserve"> <data name="chkPreserveHTOA.Text" xml:space="preserve">
<value>Сохранять HTOA при разбивке на треки</value> <value>Сохранять HTOA при разбивке на треки</value>
</data> </data>
<data name="chkPreserveHTOA.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblWriteOffset.Size" type="System.Drawing.Size, System.Drawing"> <data name="lblWriteOffset.Size" type="System.Drawing.Size, System.Drawing">
<value>114, 13</value> <value>114, 13</value>
</data> </data>
<data name="lblWriteOffset.Text" xml:space="preserve"> <data name="lblWriteOffset.Text" xml:space="preserve">
<value>Смещение (сэмплов):</value> <value>Смещение (сэмплов):</value>
</data> </data>
<data name="lblWriteOffset.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpGeneral.Text" xml:space="preserve">
<value>Общие</value>
</data>
<data name="grpGeneral.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numericFLACCompressionLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="numericFLACCompressionLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>113, 44</value> <value>113, 44</value>
</data> </data>
<data name="numericFLACCompressionLevel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblFLACCompressionLevel.Location" type="System.Drawing.Point, System.Drawing"> <data name="lblFLACCompressionLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>9, 46</value> <value>9, 46</value>
</data> </data>
@@ -229,83 +199,50 @@
<data name="lblFLACCompressionLevel.Text" xml:space="preserve"> <data name="lblFLACCompressionLevel.Text" xml:space="preserve">
<value>Уровень сжатия:</value> <value>Уровень сжатия:</value>
</data> </data>
<data name="lblFLACCompressionLevel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkFLACVerify.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkFLACVerify.Size" type="System.Drawing.Size, System.Drawing">
<value>94, 17</value> <value>94, 17</value>
</data> </data>
<data name="chkFLACVerify.Text" xml:space="preserve"> <data name="chkFLACVerify.Text" xml:space="preserve">
<value>Верификация</value> <value>Верификация</value>
</data> </data>
<data name="chkFLACVerify.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpFLAC.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnOK.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkWVStoreMD5.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkWVStoreMD5.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 17</value> <value>119, 17</value>
</data> </data>
<data name="chkWVStoreMD5.Text" xml:space="preserve"> <data name="chkWVStoreMD5.Text" xml:space="preserve">
<value>MD5-хеширование</value> <value>MD5-хеширование</value>
</data> </data>
<data name="chkWVStoreMD5.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numWVExtraMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkWVExtraMode.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkWVExtraMode.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 17</value> <value>89, 17</value>
</data> </data>
<data name="chkWVExtraMode.Text" xml:space="preserve"> <data name="chkWVExtraMode.Text" xml:space="preserve">
<value>Доп. режим:</value> <value>Доп. режим:</value>
</data> </data>
<data name="chkWVExtraMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWVVeryHigh.Size" type="System.Drawing.Size, System.Drawing"> <data name="rbWVVeryHigh.Size" type="System.Drawing.Size, System.Drawing">
<value>103, 17</value> <value>103, 17</value>
</data> </data>
<data name="rbWVVeryHigh.Text" xml:space="preserve"> <data name="rbWVVeryHigh.Text" xml:space="preserve">
<value>Очень высокий</value> <value>Очень высокий</value>
</data> </data>
<data name="rbWVVeryHigh.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWVHigh.Size" type="System.Drawing.Size, System.Drawing"> <data name="rbWVHigh.Size" type="System.Drawing.Size, System.Drawing">
<value>68, 17</value> <value>68, 17</value>
</data> </data>
<data name="rbWVHigh.Text" xml:space="preserve"> <data name="rbWVHigh.Text" xml:space="preserve">
<value>Высокий</value> <value>Высокий</value>
</data> </data>
<data name="rbWVHigh.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWVNormal.Size" type="System.Drawing.Size, System.Drawing"> <data name="rbWVNormal.Size" type="System.Drawing.Size, System.Drawing">
<value>69, 17</value> <value>69, 17</value>
</data> </data>
<data name="rbWVNormal.Text" xml:space="preserve"> <data name="rbWVNormal.Text" xml:space="preserve">
<value>Средний</value> <value>Средний</value>
</data> </data>
<data name="rbWVNormal.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWVFast.Size" type="System.Drawing.Size, System.Drawing"> <data name="rbWVFast.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 17</value> <value>70, 17</value>
</data> </data>
<data name="rbWVFast.Text" xml:space="preserve"> <data name="rbWVFast.Text" xml:space="preserve">
<value>Быстрый</value> <value>Быстрый</value>
</data> </data>
<data name="rbWVFast.ToolTip" xml:space="preserve"> <data name="groupBox1.Text" xml:space="preserve">
<value /> <value>Проверить и записать</value>
</data>
<data name="grpWavPack.ToolTip" xml:space="preserve">
<value />
</data> </data>
<data name="chkEncodeWhenZeroOffset.Location" type="System.Drawing.Point, System.Drawing"> <data name="chkEncodeWhenZeroOffset.Location" type="System.Drawing.Point, System.Drawing">
<value>150, 77</value> <value>150, 77</value>
@@ -316,9 +253,6 @@
<data name="chkEncodeWhenZeroOffset.Text" xml:space="preserve"> <data name="chkEncodeWhenZeroOffset.Text" xml:space="preserve">
<value>и нулевым смещением</value> <value>и нулевым смещением</value>
</data> </data>
<data name="chkEncodeWhenZeroOffset.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkArFixOffset.Location" type="System.Drawing.Point, System.Drawing"> <data name="chkArFixOffset.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 100</value> <value>6, 100</value>
</data> </data>
@@ -328,9 +262,6 @@
<data name="chkArFixOffset.Text" xml:space="preserve"> <data name="chkArFixOffset.Text" xml:space="preserve">
<value>Исправлять смещение если</value> <value>Исправлять смещение если</value>
</data> </data>
<data name="chkArFixOffset.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkWriteArLogOnConvert.Location" type="System.Drawing.Point, System.Drawing"> <data name="chkWriteArLogOnConvert.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 181</value> <value>6, 181</value>
</data> </data>
@@ -340,9 +271,6 @@
<data name="chkWriteArLogOnConvert.Text" xml:space="preserve"> <data name="chkWriteArLogOnConvert.Text" xml:space="preserve">
<value>Записывать отчет AccurateRip</value> <value>Записывать отчет AccurateRip</value>
</data> </data>
<data name="chkWriteArLogOnConvert.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkWriteArTagsOnConvert.Location" type="System.Drawing.Point, System.Drawing"> <data name="chkWriteArTagsOnConvert.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 164</value> <value>6, 164</value>
</data> </data>
@@ -364,15 +292,9 @@
<data name="labelEncodeWhenPercent.Text" xml:space="preserve"> <data name="labelEncodeWhenPercent.Text" xml:space="preserve">
<value>% проверенных треков &gt;=</value> <value>% проверенных треков &gt;=</value>
</data> </data>
<data name="labelEncodeWhenPercent.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numEncodeWhenPercent.Location" type="System.Drawing.Point, System.Drawing"> <data name="numEncodeWhenPercent.Location" type="System.Drawing.Point, System.Drawing">
<value>250, 35</value> <value>250, 35</value>
</data> </data>
<data name="numEncodeWhenPercent.ToolTip" xml:space="preserve">
<value />
</data>
<data name="labelEncodeWhenConfidence.Location" type="System.Drawing.Point, System.Drawing"> <data name="labelEncodeWhenConfidence.Location" type="System.Drawing.Point, System.Drawing">
<value>125, 58</value> <value>125, 58</value>
</data> </data>
@@ -382,24 +304,15 @@
<data name="labelEncodeWhenConfidence.Text" xml:space="preserve"> <data name="labelEncodeWhenConfidence.Text" xml:space="preserve">
<value>с достоверностью &gt;=</value> <value>с достоверностью &gt;=</value>
</data> </data>
<data name="labelEncodeWhenConfidence.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numEncodeWhenConfidence.Location" type="System.Drawing.Point, System.Drawing"> <data name="numEncodeWhenConfidence.Location" type="System.Drawing.Point, System.Drawing">
<value>250, 56</value> <value>250, 56</value>
</data> </data>
<data name="numEncodeWhenConfidence.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkArNoUnverifiedAudio.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkArNoUnverifiedAudio.Size" type="System.Drawing.Size, System.Drawing">
<value>176, 17</value> <value>176, 17</value>
</data> </data>
<data name="chkArNoUnverifiedAudio.Text" xml:space="preserve"> <data name="chkArNoUnverifiedAudio.Text" xml:space="preserve">
<value>Конвертировать только если</value> <value>Конвертировать только если</value>
</data> </data>
<data name="chkArNoUnverifiedAudio.ToolTip" xml:space="preserve">
<value />
</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="labelFixWhenConfidence.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="labelFixWhenConfidence.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value> <value>Top, Right</value>
@@ -417,15 +330,9 @@
<data name="labelFixWhenConfidence.Text" xml:space="preserve"> <data name="labelFixWhenConfidence.Text" xml:space="preserve">
<value>с достоверностью &gt;=</value> <value>с достоверностью &gt;=</value>
</data> </data>
<data name="labelFixWhenConfidence.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numFixWhenConfidence.Location" type="System.Drawing.Point, System.Drawing"> <data name="numFixWhenConfidence.Location" type="System.Drawing.Point, System.Drawing">
<value>251, 137</value> <value>251, 137</value>
</data> </data>
<data name="numFixWhenConfidence.ToolTip" xml:space="preserve">
<value />
</data>
<data name="labelFixWhenPercent.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="labelFixWhenPercent.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value> <value>Top, Right</value>
</data> </data>
@@ -441,21 +348,9 @@
<data name="labelFixWhenPercent.Text" xml:space="preserve"> <data name="labelFixWhenPercent.Text" xml:space="preserve">
<value>% проверенных треков &gt;=</value> <value>% проверенных треков &gt;=</value>
</data> </data>
<data name="labelFixWhenPercent.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numFixWhenPercent.Location" type="System.Drawing.Point, System.Drawing"> <data name="numFixWhenPercent.Location" type="System.Drawing.Point, System.Drawing">
<value>250, 116</value> <value>250, 116</value>
</data> </data>
<data name="numFixWhenPercent.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox1.Text" xml:space="preserve">
<value>Проверить и записать</value>
</data>
<data name="groupBox1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkFilenamesANSISafe.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkFilenamesANSISafe.Size" type="System.Drawing.Size, System.Drawing">
<value>207, 17</value> <value>207, 17</value>
</data> </data>
@@ -478,10 +373,10 @@
<value>Добавлять тэги ACCURATERIPCOUNT/ACCURATERIPCOUNTALLOFFSETS/ACCURATERIPTOTAL в исходные файлы. Можно настроить foobar2000 на их отображение, чтобы видеть качество рипа и популярность дисков в вашей библиотеке.</value> <value>Добавлять тэги ACCURATERIPCOUNT/ACCURATERIPCOUNTALLOFFSETS/ACCURATERIPTOTAL в исходные файлы. Можно настроить foobar2000 на их отображение, чтобы видеть качество рипа и популярность дисков в вашей библиотеке.</value>
</data> </data>
<data name="chkHDCDDecode.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkHDCDDecode.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 17</value> <value>146, 17</value>
</data> </data>
<data name="chkHDCDDecode.Text" xml:space="preserve"> <data name="chkHDCDDecode.Text" xml:space="preserve">
<value>Декодировать в 24 бита</value> <value>Декодировать в 20 бит</value>
</data> </data>
<data name="chkHDCDDecode.ToolTip" xml:space="preserve"> <data name="chkHDCDDecode.ToolTip" xml:space="preserve">
<value>Декодирование HDCD - необратимый процесс. Результирующие файлы не могут быть записаны на CD. Создаются файлы с разрешением 24 бита, но подлинное разрешение составляет 20 бит.</value> <value>Декодирование HDCD - необратимый процесс. Результирующие файлы не могут быть записаны на CD. Создаются файлы с разрешением 24 бита, но подлинное разрешение составляет 20 бит.</value>
@@ -495,39 +390,45 @@
<data name="chkHDCDStopLooking.ToolTip" xml:space="preserve"> <data name="chkHDCDStopLooking.ToolTip" xml:space="preserve">
<value>Прекращать поиск HDCD-кодировки, если её не обнаружено в первых 10 секундах аудио данных.</value> <value>Прекращать поиск HDCD-кодировки, если её не обнаружено в первых 10 секундах аудио данных.</value>
</data> </data>
<data name="chkHDCD24bit.Size" type="System.Drawing.Size, System.Drawing">
<value>170, 17</value>
</data>
<data name="chkHDCD24bit.Text" xml:space="preserve">
<value>Записывать 24 бит "lossless"</value>
</data>
<data name="chkHDCD24bit.ToolTip" xml:space="preserve">
<value>Когда не используется lossyWAV, расширить до 24 бит для совместимости</value>
</data>
<data name="chkHDCDLW16.Size" type="System.Drawing.Size, System.Drawing">
<value>176, 17</value>
</data>
<data name="chkHDCDLW16.Text" xml:space="preserve">
<value>Записывать 16 бит LossyWAV</value>
</data>
<data name="chkHDCDLW16.ToolTip" xml:space="preserve">
<value>При конвертации в lossyWAV, обрезать до 16 бит</value>
</data>
<data name="grpAudioFilenames.Text" xml:space="preserve">
<value>Имена аудиофайлов</value>
</data>
<data name="chkKeepOriginalFilenames.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkKeepOriginalFilenames.Size" type="System.Drawing.Size, System.Drawing">
<value>157, 17</value> <value>157, 17</value>
</data> </data>
<data name="chkKeepOriginalFilenames.Text" xml:space="preserve"> <data name="chkKeepOriginalFilenames.Text" xml:space="preserve">
<value>Сохранять оригинальные</value> <value>Сохранять оригинальные</value>
</data> </data>
<data name="chkKeepOriginalFilenames.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtSpecialExceptions.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkRemoveSpecial.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkRemoveSpecial.Size" type="System.Drawing.Size, System.Drawing">
<value>223, 17</value> <value>223, 17</value>
</data> </data>
<data name="chkRemoveSpecial.Text" xml:space="preserve"> <data name="chkRemoveSpecial.Text" xml:space="preserve">
<value>Удалять специальные символы кроме:</value> <value>Удалять специальные символы кроме:</value>
</data> </data>
<data name="chkRemoveSpecial.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkReplaceSpaces.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkReplaceSpaces.Size" type="System.Drawing.Size, System.Drawing">
<value>209, 17</value> <value>209, 17</value>
</data> </data>
<data name="chkReplaceSpaces.Text" xml:space="preserve"> <data name="chkReplaceSpaces.Text" xml:space="preserve">
<value>Заменять пробелы подчеркиванями</value> <value>Заменять пробелы подчеркиванями</value>
</data> </data>
<data name="chkReplaceSpaces.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtTrackFilenameFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblTrackFilenameFormat.Location" type="System.Drawing.Point, System.Drawing"> <data name="lblTrackFilenameFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 75</value> <value>10, 75</value>
</data> </data>
@@ -537,47 +438,26 @@
<data name="lblTrackFilenameFormat.Text" xml:space="preserve"> <data name="lblTrackFilenameFormat.Text" xml:space="preserve">
<value>Трек:</value> <value>Трек:</value>
</data> </data>
<data name="lblTrackFilenameFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblSingleFilenameFormat.Size" type="System.Drawing.Size, System.Drawing"> <data name="lblSingleFilenameFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 13</value> <value>75, 13</value>
</data> </data>
<data name="lblSingleFilenameFormat.Text" xml:space="preserve"> <data name="lblSingleFilenameFormat.Text" xml:space="preserve">
<value>Образ диска:</value> <value>Образ диска:</value>
</data> </data>
<data name="lblSingleFilenameFormat.ToolTip" xml:space="preserve"> <data name="tabPage3.Text" xml:space="preserve">
<value /> <value>Форматы</value>
</data> </data>
<data name="txtSingleFilenameFormat.ToolTip" xml:space="preserve"> <data name="grpHDCD.Text" xml:space="preserve">
<value /> <value>Параметры</value>
</data> </data>
<data name="grpAudioFilenames.Text" xml:space="preserve"> <data name="chkHDCDDetect.Size" type="System.Drawing.Size, System.Drawing">
<value>Имена аудиофайлов</value> <value>120, 17</value>
</data> </data>
<data name="grpAudioFilenames.ToolTip" xml:space="preserve"> <data name="chkHDCDDetect.Text" xml:space="preserve">
<value /> <value>Определять HDCD</value>
</data> </data>
<data name="rbAPEinsane.ToolTip" xml:space="preserve"> <data name="groupBox3.Text" xml:space="preserve">
<value /> <value>При проверке</value>
</data>
<data name="rbAPEextrahigh.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbAPEhigh.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbAPEnormal.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbAPEfast.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage1.ToolTip" xml:space="preserve">
<value />
</data> </data>
<data name="chkWriteARLogOnVerify.Location" type="System.Drawing.Point, System.Drawing"> <data name="chkWriteARLogOnVerify.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 181</value> <value>5, 181</value>
@@ -588,64 +468,13 @@
<data name="chkWriteARLogOnVerify.Text" xml:space="preserve"> <data name="chkWriteARLogOnVerify.Text" xml:space="preserve">
<value>Записывать отчет AccurateRip</value> <value>Записывать отчет AccurateRip</value>
</data> </data>
<data name="chkWriteARLogOnVerify.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox3.Text" xml:space="preserve">
<value>При проверке</value>
</data>
<data name="groupBox3.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numericLossyWAVQuality.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing"> <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 13</value> <value>59, 13</value>
</data> </data>
<data name="label1.Text" xml:space="preserve"> <data name="label1.Text" xml:space="preserve">
<value>Качество:</value> <value>Качество:</value>
</data> </data>
<data name="label1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox4.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage3.Text" xml:space="preserve">
<value>Форматы</value>
</data>
<data name="tabPage3.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpHDCD.Text" xml:space="preserve">
<value>Параметры</value>
</data>
<data name="grpHDCD.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkHDCDDetect.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 17</value>
</data>
<data name="chkHDCDDetect.Text" xml:space="preserve">
<value>Определять HDCD</value>
</data>
<data name="chkHDCDDetect.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage4.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabControl1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="$this.Text" xml:space="preserve"> <data name="$this.Text" xml:space="preserve">
<value>Продвинутые настройки</value> <value>Продвинутые настройки</value>
</data> </data>
<data name="$this.ToolTip" xml:space="preserve">
<value />
</data>
</root> </root>

View File

@@ -80,17 +80,22 @@ namespace CUEToolsLib {
return dest; return dest;
} }
public static IAudioDest GetAudioDest(string path, int bitsPerSample, int channelCount, int sampleRate, long finalSampleCount, CUEConfig config) public static IAudioDest GetAudioDest(string path, long finalSampleCount, CUEConfig config)
{ {
string extension = Path.GetExtension(path).ToLower(); string extension = Path.GetExtension(path).ToLower();
string filename = Path.GetFileNameWithoutExtension(path); string filename = Path.GetFileNameWithoutExtension(path);
if (Path.GetExtension(filename).ToLower() != ".lossy") if (Path.GetExtension(filename).ToLower() != ".lossy")
return GetAudioDest(path, bitsPerSample, channelCount, sampleRate, finalSampleCount, extension, config); {
int bitsPerSample = (config.detectHDCD && config.decodeHDCD) ? (config.decodeHDCDto24bit ? 24 : 20) : 16;
return GetAudioDest(path, bitsPerSample, 2, 44100, finalSampleCount, extension, config);
}
string lwcdfPath = Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(filename) + ".lwcdf" + extension); string lwcdfPath = Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(filename) + ".lwcdf" + extension);
IAudioDest lossyDest = GetAudioDest(path, bitsPerSample, channelCount, sampleRate, finalSampleCount, extension, config); int destBitsPerSample = (config.detectHDCD && config.decodeHDCD) ? ((!config.decodeHDCDtoLW16 && config.decodeHDCDto24bit) ? 24 : 20) : 16;
IAudioDest lwcdfDest = GetAudioDest(lwcdfPath, bitsPerSample, channelCount, sampleRate, finalSampleCount, extension, config); int lossyBitsPerSample = (config.detectHDCD && config.decodeHDCD && !config.decodeHDCDtoLW16) ? 24 : 16;
return new LossyWAVWriter(lossyDest, lwcdfDest, bitsPerSample, channelCount, sampleRate, config.lossyWAVQuality); IAudioDest lossyDest = GetAudioDest(path, lossyBitsPerSample, 2, 44100, finalSampleCount, extension, config);
IAudioDest lwcdfDest = GetAudioDest(lwcdfPath, destBitsPerSample, 2, 44100, finalSampleCount, extension, config);
return new LossyWAVWriter(lossyDest, lwcdfDest, destBitsPerSample, 2, 44100, config.lossyWAVQuality);
} }
} }
} }

View File

@@ -243,6 +243,8 @@ namespace CUEToolsLib
public bool createCUEFileWhenEmbedded; public bool createCUEFileWhenEmbedded;
public bool truncate4608ExtraSamples; public bool truncate4608ExtraSamples;
public int lossyWAVQuality; public int lossyWAVQuality;
public bool decodeHDCDtoLW16;
public bool decodeHDCDto24bit;
public CUEConfig() public CUEConfig()
{ {
@@ -284,6 +286,8 @@ namespace CUEToolsLib
createCUEFileWhenEmbedded = false; createCUEFileWhenEmbedded = false;
truncate4608ExtraSamples = true; truncate4608ExtraSamples = true;
lossyWAVQuality = 5; lossyWAVQuality = 5;
decodeHDCDtoLW16 = false;
decodeHDCDto24bit = true;
} }
public void Save (SettingsWriter sw) public void Save (SettingsWriter sw)
@@ -326,6 +330,8 @@ namespace CUEToolsLib
sw.Save("CreateCUEFileWhenEmbedded", createCUEFileWhenEmbedded); sw.Save("CreateCUEFileWhenEmbedded", createCUEFileWhenEmbedded);
sw.Save("Truncate4608ExtraSamples", truncate4608ExtraSamples); sw.Save("Truncate4608ExtraSamples", truncate4608ExtraSamples);
sw.Save("LossyWAVQuality", lossyWAVQuality); sw.Save("LossyWAVQuality", lossyWAVQuality);
sw.Save("DecodeHDCDToLossyWAV16", decodeHDCDtoLW16);
sw.Save("DecodeHDCDTo24bit", decodeHDCDto24bit);
} }
public void Load(SettingsReader sr) public void Load(SettingsReader sr)
@@ -368,6 +374,8 @@ namespace CUEToolsLib
createCUEFileWhenEmbedded = sr.LoadBoolean("CreateCUEFileWhenEmbedded") ?? false; createCUEFileWhenEmbedded = sr.LoadBoolean("CreateCUEFileWhenEmbedded") ?? false;
truncate4608ExtraSamples = sr.LoadBoolean("Truncate4608ExtraSamples") ?? true; truncate4608ExtraSamples = sr.LoadBoolean("Truncate4608ExtraSamples") ?? true;
lossyWAVQuality = sr.LoadInt32("LossyWAVQuality", 0, 10) ?? 5; lossyWAVQuality = sr.LoadInt32("LossyWAVQuality", 0, 10) ?? 5;
decodeHDCDtoLW16 = sr.LoadBoolean("DecodeHDCDToLossyWAV16") ?? false;
decodeHDCDto24bit = sr.LoadBoolean("DecodeHDCDTo24bit") ?? true;
} }
public string CleanseString (string s) public string CleanseString (string s)
@@ -440,6 +448,7 @@ namespace CUEToolsLib
private HttpStatusCode accResult; private HttpStatusCode accResult;
private const int _arOffsetRange = 5 * 588 - 1; private const int _arOffsetRange = 5 * 588 - 1;
private HDCDDotNet.HDCDDotNet hdcdDecoder; private HDCDDotNet.HDCDDotNet hdcdDecoder;
private bool _outputLossyWAV = false;
CUEConfig _config; CUEConfig _config;
string _cddbDiscIdTag; string _cddbDiscIdTag;
private bool _isArchive; private bool _isArchive;
@@ -478,11 +487,12 @@ namespace CUEToolsLib
accDisks = new List<AccDisk>(); accDisks = new List<AccDisk>();
} }
public void Open(string pathIn) public void Open(string pathIn, bool outputLossyWAV)
{ {
_outputLossyWAV = outputLossyWAV;
if (_config.detectHDCD) if (_config.detectHDCD)
{ {
try { hdcdDecoder = new HDCDDotNet.HDCDDotNet(2, 44100, _config.decodeHDCD); } try { hdcdDecoder = new HDCDDotNet.HDCDDotNet(2, 44100, ((_outputLossyWAV && _config.decodeHDCDtoLW16) || !_config.decodeHDCDto24bit) ? 20 : 24, _config.decodeHDCD); }
catch { } catch { }
} }
@@ -987,7 +997,7 @@ namespace CUEToolsLib
return null; return null;
} }
public void GenerateFilenames (OutputAudioFormat format, string outputPath, bool lossyWAV) public void GenerateFilenames (OutputAudioFormat format, string outputPath)
{ {
_cuePath = outputPath; _cuePath = outputPath;
@@ -1013,10 +1023,15 @@ namespace CUEToolsLib
replace.Add(null); replace.Add(null);
replace.Add(Path.GetFileNameWithoutExtension(outputPath)); replace.Add(Path.GetFileNameWithoutExtension(outputPath));
if (lossyWAV) if (_outputLossyWAV)
extension = ".lossy" + extension; extension = ".lossy" + extension;
if (_config.detectHDCD && hdcdDecoder != null && _config.decodeHDCD) if (_config.detectHDCD && _config.decodeHDCD && (!_outputLossyWAV || !_config.decodeHDCDtoLW16))
extension = ".24bit" + extension; {
if (_config.decodeHDCDto24bit )
extension = ".24bit" + extension;
else
extension = ".20bit" + extension;
}
if (_config.keepOriginalFilenames && HasSingleFilename) if (_config.keepOriginalFilenames && HasSingleFilename)
{ {
@@ -2124,7 +2139,6 @@ namespace CUEToolsLib
int iSource = -1; int iSource = -1;
int iDest = -1; int iDest = -1;
uint samplesRemSource = 0; uint samplesRemSource = 0;
int bitsPerSample = (_config.detectHDCD && hdcdDecoder != null && _config.decodeHDCD && !noOutput) ? 24 : 16;
if (_writeOffset != 0) if (_writeOffset != 0)
{ {
@@ -2178,7 +2192,7 @@ namespace CUEToolsLib
if (style == CUEStyle.SingleFile || style == CUEStyle.SingleFileWithCUE) if (style == CUEStyle.SingleFile || style == CUEStyle.SingleFileWithCUE)
{ {
iDest++; iDest++;
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput, bitsPerSample); audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput);
if (!noOutput) if (!noOutput)
SetAlbumTags(audioDest, bestOffset, style == CUEStyle.SingleFileWithCUE); SetAlbumTags(audioDest, bestOffset, style == CUEStyle.SingleFileWithCUE);
} }
@@ -2211,7 +2225,7 @@ namespace CUEToolsLib
hdcdDecoder.AudioDest = null; hdcdDecoder.AudioDest = null;
if (audioDest != null) if (audioDest != null)
audioDest.Close(); audioDest.Close();
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput, bitsPerSample); audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput);
if (!noOutput) if (!noOutput)
SetTrackTags(audioDest, iTrack, bestOffset); SetTrackTags(audioDest, iTrack, bestOffset);
} }
@@ -2238,7 +2252,7 @@ namespace CUEToolsLib
if (audioDest != null) if (audioDest != null)
audioDest.Close(); audioDest.Close();
iDest++; iDest++;
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput, bitsPerSample); audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput);
if (!noOutput) if (!noOutput)
SetTrackTags(audioDest, iTrack, bestOffset); SetTrackTags(audioDest, iTrack, bestOffset);
} }
@@ -2247,7 +2261,7 @@ namespace CUEToolsLib
discardOutput = !htoaToFile; discardOutput = !htoaToFile;
if (htoaToFile) { if (htoaToFile) {
iDest++; iDest++;
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput, bitsPerSample); audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput);
} }
} }
else if ((style == CUEStyle.GapsLeftOut) && (iIndex == 0)) { else if ((style == CUEStyle.GapsLeftOut) && (iIndex == 0)) {
@@ -2280,7 +2294,7 @@ namespace CUEToolsLib
audioSource.Read(sampleBuffer, copyCount); audioSource.Read(sampleBuffer, copyCount);
if (!discardOutput) if (!discardOutput)
{ {
if (!_config.detectHDCD || !_config.decodeHDCD || hdcdDecoder == null) if (!_config.detectHDCD || !_config.decodeHDCD)
audioDest.Write(sampleBuffer, copyCount); audioDest.Write(sampleBuffer, copyCount);
if (_config.detectHDCD && hdcdDecoder != null) if (_config.detectHDCD && hdcdDecoder != null)
{ {
@@ -2537,11 +2551,11 @@ namespace CUEToolsLib
} }
} }
private IAudioDest GetAudioDest(string path, int finalSampleCount, bool noOutput, int bitsPerSample) { private IAudioDest GetAudioDest(string path, int finalSampleCount, bool noOutput)
{
if (noOutput) if (noOutput)
return new DummyWriter(path, bitsPerSample, 2, 44100); return new DummyWriter(path, (_config.detectHDCD && _config.decodeHDCD) ? 24 : 16, 2, 44100);
return AudioReadWrite.GetAudioDest(path, finalSampleCount, _config);
return AudioReadWrite.GetAudioDest(path, bitsPerSample, 2, 44100, finalSampleCount, _config);
} }
private IAudioSource GetAudioSource(int sourceIndex) { private IAudioSource GetAudioSource(int sourceIndex) {

View File

@@ -455,8 +455,8 @@ namespace FLACDotNet {
public: public:
FLACWriter(String^ path, Int32 bitsPerSample, Int32 channelCount, Int32 sampleRate) FLACWriter(String^ path, Int32 bitsPerSample, Int32 channelCount, Int32 sampleRate)
{ {
if (bitsPerSample != 16 && bitsPerSample != 24) if (bitsPerSample < 16 || bitsPerSample > 24)
throw gcnew Exception("Bits per sample must be 16 or 24."); throw gcnew Exception("Bits per sample must be 16..24.");
_initialized = false; _initialized = false;
_path = path; _path = path;
@@ -526,6 +526,11 @@ namespace FLACDotNet {
} }
} }
virtual property int BitsPerSample
{
int get() { return _bitsPerSample; }
}
virtual bool SetTags (NameValueCollection^ tags) virtual bool SetTags (NameValueCollection^ tags)
{ {
_tags = tags; _tags = tags;

View File

@@ -28,7 +28,7 @@ namespace HDCDDotNet
public class HDCDDotNet public class HDCDDotNet
{ {
public HDCDDotNet (Int16 channels, Int32 sample_rate, bool decode) public HDCDDotNet (Int16 channels, Int32 sample_rate, Int32 output_bps, bool decode)
{ {
_decoder = IntPtr.Zero; _decoder = IntPtr.Zero;
#if !MONO #if !MONO
@@ -40,7 +40,7 @@ namespace HDCDDotNet
b &= hdcd_decoder_set_num_channels(_decoder, channels); b &= hdcd_decoder_set_num_channels(_decoder, channels);
b &= hdcd_decoder_set_sample_rate(_decoder, sample_rate); b &= hdcd_decoder_set_sample_rate(_decoder, sample_rate);
b &= hdcd_decoder_set_input_bps(_decoder, 16); b &= hdcd_decoder_set_input_bps(_decoder, 16);
b &= hdcd_decoder_set_output_bps(_decoder, 24); b &= hdcd_decoder_set_output_bps(_decoder, (short) output_bps);
if (!b) if (!b)
throw new Exception("Failed to set up HDCD _decoder parameters."); throw new Exception("Failed to set up HDCD _decoder parameters.");
_decoderCallback = decode ? new hdcd_decoder_write_callback(DecoderCallback) : null; _decoderCallback = decode ? new hdcd_decoder_write_callback(DecoderCallback) : null;

View File

@@ -314,8 +314,8 @@ namespace WavPackDotNet {
if (channelCount != 1 && channelCount != 2) if (channelCount != 1 && channelCount != 2)
throw gcnew Exception("Only stereo and mono audio formats are allowed."); throw gcnew Exception("Only stereo and mono audio formats are allowed.");
if (bitsPerSample != 16 && bitsPerSample != 24) if (bitsPerSample < 16 || bitsPerSample > 24)
throw gcnew Exception("Bits per sample must be 16 or 24."); throw gcnew Exception("Bits per sample must be 16..24.");
_path = path; _path = path;
_tags = gcnew NameValueCollection(); _tags = gcnew NameValueCollection();
@@ -394,6 +394,11 @@ namespace WavPackDotNet {
} }
} }
virtual property int BitsPerSample
{
int get() { return _bitsPerSample; }
}
virtual void Write(array<Int32, 2>^ sampleBuffer, UInt32 sampleCount) virtual void Write(array<Int32, 2>^ sampleBuffer, UInt32 sampleCount)
{ {
if (!_initialized) if (!_initialized)
@@ -407,9 +412,21 @@ namespace WavPackDotNet {
UpdateHash(_sampleBuffer, (int) sampleCount * _blockAlign); UpdateHash(_sampleBuffer, (int) sampleCount * _blockAlign);
} }
pin_ptr<Int32> pSampleBuffer = &sampleBuffer[0, 0]; if ((_bitsPerSample & 7) != 0)
if (!WavpackPackSamples(_wpc, (int32_t*)pSampleBuffer, sampleCount)) { {
throw gcnew Exception("An error occurred while encoding."); if (_shiftedSampleBuffer == nullptr || _shiftedSampleBuffer.GetLength(0) < sampleCount)
_shiftedSampleBuffer = gcnew array<int,2>(sampleCount, _channelCount);
for (int i = 0; i < sampleCount; i++)
for (int c = 0; c < _channelCount; c++)
_shiftedSampleBuffer[i,c] = sampleBuffer[i,c] << 8 - (_bitsPerSample & 7);
pin_ptr<Int32> pSampleBuffer = &_shiftedSampleBuffer[0, 0];
if (!WavpackPackSamples(_wpc, (int32_t*)pSampleBuffer, sampleCount))
throw gcnew Exception("An error occurred while encoding.");
} else
{
pin_ptr<Int32> pSampleBuffer = &sampleBuffer[0, 0];
if (!WavpackPackSamples(_wpc, (int32_t*)pSampleBuffer, sampleCount))
throw gcnew Exception("An error occurred while encoding.");
} }
_samplesWritten += sampleCount; _samplesWritten += sampleCount;
@@ -482,6 +499,7 @@ namespace WavPackDotNet {
bool _md5Sum; bool _md5Sum;
MD5^ _md5hasher; MD5^ _md5hasher;
array<unsigned char>^ _sampleBuffer; array<unsigned char>^ _sampleBuffer;
array<int,2>^ _shiftedSampleBuffer;
void Initialize() { void Initialize() {
WavpackConfig config; WavpackConfig config;