This commit is contained in:
chudov
2009-06-24 19:40:23 +00:00
parent 7f27f99406
commit b6c12bda14
28 changed files with 6280 additions and 5910 deletions

View File

@@ -43,10 +43,26 @@
<Compile Include="FileSystemTreeView.Designer.cs">
<DependentUpon>FileSystemTreeView.cs</DependentUpon>
</Compile>
<Compile Include="IIconManager.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="ShellIconMgr.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<SubType>Designer</SubType>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="Resources\folder.ico" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -42,7 +42,7 @@ namespace CUEControls
public partial class FileSystemTreeView : TreeView
{
private const string DummyNodeText = "DUMMY";
private ShellIconMgr m_icon_mgr;
private IIconManager m_icon_mgr;
private ExtraSpecialFolder[] m_extra_folders;
#region Public event declarations
@@ -65,7 +65,7 @@ namespace CUEControls
/// This property is the ICON manager for the icons
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public ShellIconMgr IconManager
public IIconManager IconManager
{
get
{
@@ -188,7 +188,11 @@ namespace CUEControls
string specialPath = m_icon_mgr.GetFolderPath(ExtraSpecialFolder.Desktop);
if (specialPath != null && path.StartsWith(specialPath.ToUpper()))
{
if (path == specialPath.ToUpper())
return desktop;
top = desktop;
}
foreach (TreeNode node in desktop.Nodes)
if (node.Tag is ExtraSpecialFolder)
@@ -332,6 +336,8 @@ namespace CUEControls
catch { }
break;
case ExtraSpecialFolder.MyComputer:
if (m_icon_mgr.GetFolderPath(path) == "/")
break;
foreach (DriveInfo di in DriveInfo.GetDrives())
try { node.Nodes.Add(NewNode(new DirectoryInfo(di.Name), true)); }
catch { }

View File

@@ -35,7 +35,7 @@ namespace CUEControls
/// represent the file. This class calls into the shell function SHGetFileInfo to get
/// the ICON assocaited with the file name given (or device name).
/// </summary>
public unsafe class ShellIconMgr
public unsafe class ShellIconMgr : IIconManager
{
#region external functions
[DllImport("Shell32.dll", CharSet = CharSet.Unicode)]
@@ -262,187 +262,6 @@ namespace CUEControls
#endregion
}
// see ShlObj.h
public enum ExtraSpecialFolder
{
// Summary:
// The logical Desktop rather than the physical file system location.
Desktop = 0,
//
// Summary:
// The directory that contains the user's program groups.
Programs = 2,
//
// Summary:
// The "My Documents" folder.
//
// Version 6.0. The virtual folder representing the My Documents
// desktop item. This is equivalent to CSIDL_MYDOCUMENTS.
// Previous to Version 6.0. The file system directory used to
// physically store a user's common repository of documents.
// A typical path is C:\Documents and Settings\username\My Documents.
// This should be distinguished from the virtual My Documents folder
// in the namespace. To access that virtual folder,
// use SHGetFolderLocation, which returns the ITEMIDLIST for the
// virtual location, or refer to the technique described in
// Managing the File System.
MyDocuments = 5,
//
// Summary:
// The directory that serves as a common repository for the user's favorite
// items.
Favorites = 6,
//
// Summary:
// The directory that corresponds to the user's Startup program group.
Startup = 7,
//
// Summary:
// The directory that contains the user's most recently used documents.
Recent = 8,
//
// Summary:
// The directory that contains the Send To menu items.
SendTo = 9,
//
// Summary:
// The directory that contains the Start menu items.
StartMenu = 11,
//
// Summary:
// The "My Music" folder.
MyMusic = 13,
//
// Summary:
// The directory used to physically store file objects on the desktop.
DesktopDirectory = 16,
//
// Summary:
// The "My Computer" folder.
MyComputer = 17,
//
// Summary:
// The directory that serves as a common repository for document templates.
Templates = 21,
//
// Summary:
// The directory that serves as a common repository for application-specific
// data for the current roaming user.
//
// Version 4.71. The file system directory that serves as
// a common repository for application-specific data.
// A typical path is C:\Documents and Settings\username\Application Data.
// This CSIDL is supported by the redistributable Shfolder.dll
// for systems that do not have the Microsoft Internet Explorer 4.0
// integrated Shell installed
ApplicationData = 26,
//
// Summary:
// The directory that serves as a common repository for application-specific
// data that is used by the current, non-roaming user.
//
// Version 5.0. The file system directory that serves as a data
// repository for local (nonroaming) applications. A typical path
// is C:\Documents and Settings\username\Local Settings\Application Data.
LocalApplicationData = 28,
//
// Summary:
// The directory that serves as a common repository for temporary Internet files.
//
// Version 4.72. The file system directory that serves as
// a common repository for temporary Internet files. A typical
// path is C:\Documents and Settings\username\Local Settings\Temporary Internet Files.
InternetCache = 32,
//
// Summary:
// The directory that serves as a common repository for Internet cookies.
//
// The file system directory that serves as a common repository
// for Internet cookies. A typical path is
// C:\Documents and Settings\username\Cookies.
Cookies = 33,
//
// Summary:
// The directory that serves as a common repository for Internet history items.
History = 34,
//
// Summary:
// The directory that serves as a common repository for application-specific
// data that is used by all users.
//
// Version 5.0. The file system directory containing
// application data for all users. A typical path is
// C:\Documents and Settings\All Users\Application Data.
CommonApplicationData = 35,
// Summary:
// The Windows directory.
//
// Version 5.0. The Windows directory or SYSROOT.
// This corresponds to the %windir% or %SYSTEMROOT% environment
// variables. A typical path is C:\Windows.
Windows = 0x0024,
//
// Summary:
// The System directory.
//
// Version 5.0. The Windows System folder. A typical
// path is C:\Windows\System32.
System = 37,
//
// Summary:
// The program files directory.
//
// Version 5.0. The Program Files folder. A typical
// path is C:\Program Files.
ProgramFiles = 38,
//
// Summary:
// The "My Pictures" folder.
//
// Version 5.0. The file system directory that serves as
// a common repository for image files. A typical path is
// C:\Documents and Settings\username\My Documents\My Pictures.
MyPictures = 39,
// User Profile
Profile = 0x0028,
//
// Summary:
// The directory for components that are shared across applications.
//
// Version 5.0. A folder for components that are shared across
// applications. A typical path is C:\Program Files\Common.
// Valid only for Windows NT, Windows 2000, and Windows XP systems.
// Not valid for Windows Millennium Edition (Windows Me).
CommonProgramFiles = 43,
// The file system directory that contains documents
// that are common to all users. A typical paths is
// C:\Documents and Settings\All Users\Documents.
// Valid for Windows NT systems and Microsoft Windows 95 and
// Windows 98 systems with Shfolder.dll installed.
CommonDocuments = 0x002e,
// Version 5.0. The file system directory containing
// administrative tools for all users of the computer.
CommonAdministrativeTools = 0x002f,
// Version 5.0. The file system directory that is used
// to store administrative tools for an individual user.
// The Microsoft Management Console (MMC) will save customized
// consoles to this directory, and it will roam with the user.
AdministrativeTools = 0x0030,
// Music common to all users
CommonMusic = 0x0035
// Version 5.0. Combine this CSIDL with any of the following CSIDLs
// to force the creation of the associated folder.
// CreateFlag = 0x8000
}
public enum SIGDN : uint
{
NORMALDISPLAY = 0,

View File

@@ -98,7 +98,6 @@ namespace CUERipper
//
// toolStripStatusAr
//
this.toolStripStatusAr.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
resources.ApplyResources(this.toolStripStatusAr, "toolStripStatusAr");
this.toolStripStatusAr.Name = "toolStripStatusAr";
//

View File

@@ -179,6 +179,9 @@
<data name="toolStripStatusAr.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 17</value>
</data>
<data name="toolStripStatusAr.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>Overlay</value>
</data>
<data name="toolStripStatusAr.ToolTipText" xml:space="preserve">
<value>Album found in AccurateRip database.</value>
</data>
@@ -227,6 +230,27 @@
<data name="listTracks.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</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>487, 272</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>4</value>
</data>
<data name="Title.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
@@ -257,27 +281,6 @@
<data name="Length.Width" type="System.Int32, mscorlib">
<value>70</value>
</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>487, 272</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>4</value>
</data>
<data name="buttonGo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
@@ -443,12 +446,6 @@
<metadata name="contextMenuStripRelease.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>285, 58</value>
</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">
<value>95, 26</value>
</data>
@@ -479,6 +476,12 @@
<data name="&gt;&gt;comboRelease.ZOrder" xml:space="preserve">
<value>2</value>
</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">
<value>181, 22</value>
</data>

View File

@@ -23,6 +23,24 @@ namespace CUETools.AccurateRip
Init();
}
/*
Like in the slow function, the outer loop enumerates samples, and the inner loops enumerate offsets.
I move the IF's out of the innter loop by breaking up offsets into three categories.
First range of offsets are those offsets, which can move our current sample into previous track.
Second range of offsets are those offsets, which don't move our current sample out of current track.
And the third range of offsets are those offsets, which move our current sample into next track.
The first boundary is the (positive) distance from the track start to the current sample. E.G. the 13th sample of a track (currentOffset + si == 13) will be moved into previous track by any offset > 13, and will stay in the current track when offset is <= 13.
The second boundary is the (negative) distance from the next track start to the current sample. (trackLength - (currentOffset + si)).
I use Max/Min functions to make sure the boundaries don't leave the offset range that i'm using.
For each range i calculate baseSum, which is an AR CRC of the current sample, using the last offset in this range.
All the other CRC's in this offset range are calculated by consequently adding sampleValue to the previous sum.
*/
unsafe private void CalculateAccurateRipCRCsSemifast(int* samples, uint count, int iTrack, uint currentOffset, uint previousOffset, uint trackLength)
{
fixed (uint* CRCsA = &_offsetedCRC[Math.Max(0, iTrack - 1), 0],

View File

@@ -26,6 +26,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>

View File

@@ -26,6 +26,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>

View File

@@ -731,19 +731,20 @@ namespace CUETools.Codecs
public class UserDefinedWriter : IAudioDest
{
string _path, _encoder, _encoderParams;
string _path, _encoder, _encoderParams, _encoderMode;
Process _encoderProcess;
WAVWriter wrt;
public UserDefinedWriter(string path, int bitsPerSample, int channelCount, int sampleRate, Stream IO, string encoder, string encoderParams)
public UserDefinedWriter(string path, int bitsPerSample, int channelCount, int sampleRate, Stream IO, string encoder, string encoderParams, string encoderMode)
{
_path = path;
_encoder = encoder;
_encoderParams = encoderParams;
_encoderMode = encoderMode;
_encoderProcess = new Process();
_encoderProcess.StartInfo.FileName = _encoder;
_encoderProcess.StartInfo.Arguments = _encoderParams.Replace("%O", "\"" + path + "\"");
_encoderProcess.StartInfo.Arguments = _encoderParams.Replace("%O", "\"" + path + "\"").Replace("%M", encoderMode);
_encoderProcess.StartInfo.CreateNoWindow = true;
_encoderProcess.StartInfo.RedirectStandardInput = true;
_encoderProcess.StartInfo.UseShellExecute = false;

View File

@@ -95,19 +95,19 @@ namespace CUETools.Processor
#if !MONO
case "FLACWriter":
dest = new FLACWriter(path, bitsPerSample, channelCount, sampleRate);
((FLACWriter)dest).CompressionLevel = (int)config.flacCompressionLevel;
((FLACWriter)dest).CompressionLevel = encoder.DefaultModeIndex;
((FLACWriter)dest).Verify = config.flacVerify;
((FLACWriter)dest).DisableAsm = config.disableAsm;
break;
case "WavPackWriter":
dest = new WavPackWriter(path, bitsPerSample, channelCount, sampleRate);
((WavPackWriter)dest).CompressionMode = config.wvCompressionMode;
((WavPackWriter)dest).CompressionMode = encoder.DefaultModeIndex;
((WavPackWriter)dest).ExtraMode = config.wvExtraMode;
((WavPackWriter)dest).MD5Sum = config.wvStoreMD5;
break;
case "APEWriter":
dest = new APEWriter(path, bitsPerSample, channelCount, sampleRate);
((APEWriter)dest).CompressionLevel = (int)config.apeCompressionLevel;
((APEWriter)dest).CompressionLevel = encoder.DefaultModeIndex;
break;
case "TTAWriter":
dest = new TTAWriter(path, bitsPerSample, channelCount, sampleRate);
@@ -116,7 +116,7 @@ namespace CUETools.Processor
default:
if (encoder.path == null)
throw new Exception("Unsupported audio type: " + path);
dest = new UserDefinedWriter(path, bitsPerSample, channelCount, sampleRate, null, encoder.path, encoder.parameters);
dest = new UserDefinedWriter(path, bitsPerSample, channelCount, sampleRate, null, encoder.path, encoder.parameters, encoder.default_mode);
break;
}
dest.FinalSampleCount = finalSampleCount;

View File

@@ -160,14 +160,14 @@
<Project>{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}</Project>
<Name>MusicBrainz</Name>
</ProjectReference>
<ProjectReference Include="..\UnRarDotNet\UnRarDotNet.csproj">
<Project>{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}</Project>
<Name>UnRarDotNet</Name>
</ProjectReference>
<ProjectReference Include="..\CUETools.Codecs.WavPack\CUETools.Codecs.WavPack.vcproj">
<Project>{CC2E74B6-534A-43D8-9F16-AC03FE955000}</Project>
<Name>CUETools.Codecs.WavPack</Name>
</ProjectReference>
<ProjectReference Include="..\UnRarDotNet\UnRarDotNet.csproj">
<Project>{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}</Project>
<Name>UnRarDotNet</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="frmProperties.resx">

View File

@@ -196,6 +196,110 @@ namespace CUETools.Processor
list.Remove(line);
}
class TitleFormatFunctionInfo
{
public string func;
public List<int> positions;
public List<bool> found;
public TitleFormatFunctionInfo(string _func, int position)
{
func = _func;
positions = new List<int>();
found = new List<bool>();
NextArg(position);
}
public void Found()
{
found[found.Count - 1] = true;
}
public void NextArg(int position)
{
positions.Add(position);
found.Add(false);
}
public string GetArg(StringBuilder sb, int no)
{
return sb.ToString().Substring(positions[no],
((no == positions.Count - 1) ? sb.Length : positions[no + 1]) - positions[no]);
}
public int GetIntArg(StringBuilder sb, int no)
{
int res;
return int.TryParse(GetArg(sb, no), out res) ? res : 0;
}
void Returns(StringBuilder sb, string res)
{
sb.Length = positions[0];
sb.Append(res);
}
public bool Finalise(StringBuilder sb)
{
switch (func)
{
case "[":
if (positions.Count != 1)
return false;
if (!found[0])
sb.Length = positions[0];
return true;
case "if":
if (positions.Count != 3)
return false;
Returns(sb, GetArg(sb, found[0] ? 1 : 2));
return true;
case "if2":
if (positions.Count != 2)
return false;
Returns(sb, GetArg(sb, found[0] ? 0 : 1));
return true;
case "if3":
if (positions.Count < 1)
return false;
for (int argno = 0; argno < positions.Count; argno++)
if (found[argno] || argno == positions.Count - 1)
{
Returns(sb, GetArg(sb, argno));
return true;
}
return false;
case "ifgreater":
if (positions.Count != 4)
return false;
Returns(sb, GetArg(sb, (GetIntArg(sb, 0) > GetIntArg(sb, 1)) ? 2 : 3));
return true;
case "iflonger":
if (positions.Count != 4)
return false;
Returns(sb, GetArg(sb, (GetArg(sb, 0).Length > GetIntArg(sb, 1)) ? 2 : 3));
return true;
case "ifequal":
if (positions.Count != 4)
return false;
Returns(sb, GetArg(sb, (GetIntArg(sb, 0) == GetIntArg(sb, 1)) ? 2 : 3));
return true;
case "len":
if (positions.Count != 1)
return false;
Returns(sb, GetArg(sb, 0).Length.ToString());
return true;
case "max":
if (positions.Count != 2)
return false;
Returns(sb, Math.Max(GetIntArg(sb, 0), GetIntArg(sb, 1)).ToString());
return true;
}
return false;
}
}
public static string ReplaceMultiple(string s, List<string> find, List<string> replace)
{
if (find.Count != replace.Count)
@@ -206,22 +310,98 @@ namespace CUETools.Processor
int iChar, iFind;
string f;
bool found;
List<TitleFormatFunctionInfo> formatFunctions = new List<TitleFormatFunctionInfo>();
bool quote = false;
sb = new StringBuilder();
for (iChar = 0; iChar < s.Length; iChar++)
{
found = false;
if (quote)
{
if (s[iChar] == '\'')
{
if (iChar > 0 && s[iChar-1] == '\'')
sb.Append(s[iChar]);
quote = false;
continue;
}
sb.Append(s[iChar]);
continue;
}
if (s[iChar] == '\'')
{
quote = true;
continue;
}
if (s[iChar] == '[')
{
formatFunctions.Add(new TitleFormatFunctionInfo("[", sb.Length));
continue;
}
if (s[iChar] == '$')
{
int funcEnd = s.IndexOf('(', iChar + 1);
if (funcEnd < 0)
return null;
formatFunctions.Add(new TitleFormatFunctionInfo(s.Substring(iChar + 1, funcEnd - iChar - 1), sb.Length));
iChar = funcEnd;
continue;
}
if (s[iChar] == ',')
{
if (formatFunctions.Count < 1)
return null;
formatFunctions[formatFunctions.Count - 1].NextArg(sb.Length);
continue;
}
if (s[iChar] == ']')
{
if (formatFunctions.Count < 1 ||
formatFunctions[formatFunctions.Count - 1].func != "["
|| !formatFunctions[formatFunctions.Count - 1].Finalise(sb))
return null;
formatFunctions.RemoveAt(formatFunctions.Count - 1);
continue;
}
if (s[iChar] == ')')
{
if (formatFunctions.Count < 1 ||
formatFunctions[formatFunctions.Count - 1].func == "["
|| !formatFunctions[formatFunctions.Count - 1].Finalise(sb))
return null;
formatFunctions.RemoveAt(formatFunctions.Count - 1);
continue;
}
for (iFind = 0; iFind < find.Count; iFind++)
{
f = find[iFind];
if ((f.Length <= (s.Length - iChar)) && (s.Substring(iChar, f.Length) == f))
{
if (replace[iFind] == null)
if (formatFunctions.Count > 0)
{
return null;
if (replace[iFind] != null)
{
formatFunctions[formatFunctions.Count - 1].Found();
sb.Append(replace[iFind]);
}
}
else
{
if (replace[iFind] != null)
sb.Append(replace[iFind]);
else
return null;
}
sb.Append(replace[iFind]);
iChar += f.Length - 1;
found = true;
break;
@@ -293,6 +473,8 @@ namespace CUETools.Processor
string _name,
string _extension,
bool _lossless,
string _supported_modes,
string _default_mode,
string _path,
string _parameters
)
@@ -300,6 +482,8 @@ namespace CUETools.Processor
name = _name;
extension = _extension;
lossless = _lossless;
supported_modes = _supported_modes;
default_mode = _default_mode;
path = _path;
parameters = _parameters;
className = null;
@@ -308,11 +492,15 @@ namespace CUETools.Processor
string _name,
string _extension,
bool _lossless,
string _supported_modes,
string _default_mode,
string _className)
{
name = _name;
extension = _extension;
lossless = _lossless;
supported_modes = _supported_modes;
default_mode = _default_mode;
path = null;
parameters = null;
className = _className;
@@ -326,7 +514,29 @@ namespace CUETools.Processor
public string path;
public string parameters;
public string className;
public string supported_modes;
public string default_mode;
public bool lossless;
public string[] SupportedModes
{
get
{
return supported_modes.Split(' ');
}
}
public int DefaultModeIndex
{
get
{
string[] modes = supported_modes.Split(' ');
if (modes == null || modes.Length < 2)
return -1;
for (int i = 0; i < modes.Length; i++)
if (modes[i] == default_mode)
return i;
return -1;
}
}
}
public class CUEToolsScript
@@ -364,10 +574,7 @@ namespace CUETools.Processor
public bool noUnverifiedOutput;
public bool autoCorrectFilenames;
public bool flacVerify;
public uint flacCompressionLevel;
public uint apeCompressionLevel;
public bool preserveHTOA;
public int wvCompressionMode;
public int wvExtraMode;
public bool wvStoreMD5;
public bool keepOriginalFilenames;
@@ -395,6 +602,7 @@ namespace CUETools.Processor
public bool decodeHDCDto24bit;
public bool disableAsm;
public bool oneInstance;
public bool checkForUpdates;
public string language;
public Dictionary<string, CUEToolsFormat> formats;
public Dictionary<string, CUEToolsUDC> encoders;
@@ -414,6 +622,7 @@ namespace CUETools.Processor
public bool fixOffsetToNearest;
public int maxAlbumArtSize;
public string arLogExtension;
public CUEStyle gapsHandling;
public CUEConfig()
{
@@ -431,10 +640,7 @@ namespace CUETools.Processor
autoCorrectFilenames = true;
flacVerify = false;
flacCompressionLevel = 8;
apeCompressionLevel = 2;
preserveHTOA = true;
wvCompressionMode = 1;
wvExtraMode = 0;
wvStoreMD5 = false;
keepOriginalFilenames = false;
@@ -463,6 +669,7 @@ namespace CUETools.Processor
disableAsm = false;
oneInstance = true;
checkForUpdates = true;
writeBasicTagsFromCUEData = true;
copyBasicTags = true;
@@ -477,6 +684,8 @@ namespace CUETools.Processor
fixOffsetToNearest = true;
arLogExtension = ".accurip";
gapsHandling = CUEStyle.GapsAppended;
language = Thread.CurrentThread.CurrentUICulture.Name;
formats = new Dictionary<string, CUEToolsFormat>();
@@ -492,33 +701,31 @@ namespace CUETools.Processor
encoders = new Dictionary<string, CUEToolsUDC>();
#if !MONO
encoders.Add("libFLAC", new CUEToolsUDC("libFLAC", "flac", true, "FLACWriter"));
encoders.Add("libwavpack", new CUEToolsUDC("libwavpack", "wv", true, "WavPackWriter"));
encoders.Add("MAC_SDK", new CUEToolsUDC("MAC_SDK", "ape", true, "APEWriter"));
encoders.Add("ttalib", new CUEToolsUDC("ttalib", "tta", true, "TTAWriter"));
encoders.Add("libFLAC", new CUEToolsUDC("libFLAC", "flac", true, "0 1 2 3 4 5 6 7 8", "5", "FLACWriter"));
encoders.Add("libwavpack", new CUEToolsUDC("libwavpack", "wv", true, "fast normal high high+", "normal", "WavPackWriter"));
encoders.Add("MAC_SDK", new CUEToolsUDC("MAC_SDK", "ape", true, "fast normal high extra insane", "high", "APEWriter"));
encoders.Add("ttalib", new CUEToolsUDC("ttalib", "tta", true, "", "", "TTAWriter"));
#endif
encoders.Add("builtin wav", new CUEToolsUDC("builtin wav", "wav", true, "WAVWriter"));
encoders.Add("flake", new CUEToolsUDC("flake", "flac", true, "flake.exe", "-10 - -o %O"));
encoders.Add("takc", new CUEToolsUDC("takc", "tak", true, "takc.exe", "-e -p4m -overwrite - %O"));
encoders.Add("ffmpeg alac", new CUEToolsUDC("ffmpeg alac", "m4a", true, "ffmpeg.exe", "-i - -f ipod -acodec alac -y %O"));
encoders.Add("lame -V2", new CUEToolsUDC("lame -V2", "mp3", false, "lame.exe", "--vbr-new -V2 - %O"));
encoders.Add("lame -V0", new CUEToolsUDC("lame -V0", "mp3", false, "lame.exe", "--vbr-new -V0 - %O"));
encoders.Add("lame 256", new CUEToolsUDC("lame 256", "mp3", false, "lame.exe", "-m s -q 0 -b 256 --noreplaygain - %O"));
encoders.Add("lame 320", new CUEToolsUDC("lame 320", "mp3", false, "lame.exe", "-m s -q 0 -b 320 --noreplaygain - %O"));
encoders.Add("oggenc", new CUEToolsUDC("oggenc", "ogg", false, "oggenc.exe", "-q 3 - -o %O"));
encoders.Add("nero aac", new CUEToolsUDC("nero aac", "m4a", false, "neroAacEnc.exe", "-q 0.4 -if - -of %O"));
encoders.Add("builtin wav", new CUEToolsUDC("builtin wav", "wav", true, "", "", "WAVWriter"));
encoders.Add("flake", new CUEToolsUDC("flake", "flac", true, "0 1 2 3 4 5 6 7 8 9 10 11 12", "10", "flake.exe", "-%M - -o %O"));
encoders.Add("takc", new CUEToolsUDC("takc", "tak", true, "0 1 2 2e 2m 3 3e 3m 4 4e 4m", "2", "takc.exe", "-e -p%M -overwrite - %O"));
encoders.Add("ffmpeg alac", new CUEToolsUDC("ffmpeg alac", "m4a", true, "", "", "ffmpeg.exe", "-i - -f ipod -acodec alac -y %O"));
encoders.Add("lame vbr", new CUEToolsUDC("lame -V2", "mp3", false, "V9 V8 V7 V6 V5 V4 V3 V2 V1 V0", "V2", "lame.exe", "--vbr-new -%M - %O"));
encoders.Add("lame cbr", new CUEToolsUDC("lame 320", "mp3", false, "96 128 192 256 320", "256", "lame.exe", "-m s -q 0 -b %M --noreplaygain - %O"));
encoders.Add("oggenc", new CUEToolsUDC("oggenc", "ogg", false, "-1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8", "3", "oggenc.exe", "-q %M - -o %O"));
encoders.Add("nero aac", new CUEToolsUDC("nero aac", "m4a", false, "0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9", "0.4", "neroAacEnc.exe", "-q %M -if - -of %O"));
decoders = new Dictionary<string, CUEToolsUDC>();
#if !MONO
decoders.Add("libFLAC", new CUEToolsUDC("libFLAC", "flac", true, "FLACReader"));
decoders.Add("libwavpack", new CUEToolsUDC("libwavpack", "wv", true, "WavPackReader"));
decoders.Add("MAC_SDK", new CUEToolsUDC("MAC_SDK", "ape", true, "APEReader"));
decoders.Add("ttalib", new CUEToolsUDC("ttalib", "tta", true, "TTAReader"));
decoders.Add("libFLAC", new CUEToolsUDC("libFLAC", "flac", true, "", "", "FLACReader"));
decoders.Add("libwavpack", new CUEToolsUDC("libwavpack", "wv", true, "", "", "WavPackReader"));
decoders.Add("MAC_SDK", new CUEToolsUDC("MAC_SDK", "ape", true, "", "", "APEReader"));
decoders.Add("ttalib", new CUEToolsUDC("ttalib", "tta", true, "", "", "TTAReader"));
#endif
decoders.Add("builtin wav", new CUEToolsUDC("builtin wav", "wav", true, "WAVReader"));
decoders.Add("builtin alac", new CUEToolsUDC("builtin alac", "m4a", true, "ALACReader"));
decoders.Add("takc", new CUEToolsUDC("takc", "tak", true, "takc.exe", "-d %I -"));
decoders.Add("ffmpeg alac", new CUEToolsUDC("ffmpeg alac", "m4a", true, "ffmpeg.exe", "%I -f wav -"));
decoders.Add("builtin wav", new CUEToolsUDC("builtin wav", "wav", true, "", "", "WAVReader"));
decoders.Add("builtin alac", new CUEToolsUDC("builtin alac", "m4a", true, "", "", "ALACReader"));
decoders.Add("takc", new CUEToolsUDC("takc", "tak", true, "", "", "takc.exe", "-d %I -"));
decoders.Add("ffmpeg alac", new CUEToolsUDC("ffmpeg alac", "m4a", true, "", "", "ffmpeg.exe", "%I -f wav -"));
scripts = new Dictionary<string, CUEToolsScript>();
scripts.Add("default", new CUEToolsScript("default", true,
@@ -567,6 +774,7 @@ return processor.Go();
public void Save (SettingsWriter sw)
{
sw.Save("Version", 203);
sw.Save("ArFixWhenConfidence", fixOffsetMinimumConfidence);
sw.Save("ArFixWhenPercent", fixOffsetMinimumTracksPercent);
sw.Save("ArEncodeWhenConfidence", encodeWhenConfidence);
@@ -581,10 +789,7 @@ return processor.Go();
sw.Save("PreserveHTOA", preserveHTOA);
sw.Save("AutoCorrectFilenames", autoCorrectFilenames);
sw.Save("FLACCompressionLevel", flacCompressionLevel);
sw.Save("APECompressionLevel", apeCompressionLevel);
sw.Save("FLACVerify", flacVerify);
sw.Save("WVCompressionMode", wvCompressionMode);
sw.Save("WVExtraMode", wvExtraMode);
sw.Save("WVStoreMD5", wvStoreMD5);
sw.Save("KeepOriginalFilenames", keepOriginalFilenames);
@@ -612,6 +817,7 @@ return processor.Go();
sw.Save("DecodeHDCDTo24bit", decodeHDCDto24bit);
sw.Save("DisableAsm", disableAsm);
sw.Save("OneInstance", oneInstance);
sw.Save("CheckForUpdates", checkForUpdates);
sw.Save("Language", language);
sw.Save("WriteBasicTagsFromCUEData", writeBasicTagsFromCUEData);
@@ -636,6 +842,8 @@ return processor.Go();
sw.Save(string.Format("ExternalEncoder{0}Path", nEncoders), encoder.Value.path);
sw.Save(string.Format("ExternalEncoder{0}Parameters", nEncoders), encoder.Value.parameters);
sw.Save(string.Format("ExternalEncoder{0}Lossless", nEncoders), encoder.Value.lossless);
sw.Save(string.Format("ExternalEncoder{0}Modes", nEncoders), encoder.Value.supported_modes);
sw.Save(string.Format("ExternalEncoder{0}Mode", nEncoders), encoder.Value.default_mode);
nEncoders++;
}
sw.Save("ExternalEncoders", nEncoders);
@@ -683,10 +891,14 @@ return processor.Go();
sw.Save("DefaultVerifyScript", defaultVerifyScript);
sw.Save("DefaultConvertScript", defaultConvertScript);
sw.Save("DefaultVerifyAndConvertScript", defaultVerifyAndConvertScript);
sw.Save("GapsHandling", (int)gapsHandling);
}
public void Load(SettingsReader sr)
{
int version = sr.LoadInt32("Version", null, null) ?? 202;
fixOffsetMinimumConfidence = sr.LoadUInt32("ArFixWhenConfidence", 1, 1000) ?? 2;
fixOffsetMinimumTracksPercent = sr.LoadUInt32("ArFixWhenPercent", 1, 100) ?? 51;
encodeWhenConfidence = sr.LoadUInt32("ArEncodeWhenConfidence", 1, 1000) ?? 2;
@@ -701,10 +913,7 @@ return processor.Go();
preserveHTOA = sr.LoadBoolean("PreserveHTOA") ?? true;
autoCorrectFilenames = sr.LoadBoolean("AutoCorrectFilenames") ?? true;
flacCompressionLevel = sr.LoadUInt32("FLACCompressionLevel", 0, 8) ?? 8;
flacVerify = sr.LoadBoolean("FLACVerify") ?? false;
apeCompressionLevel = sr.LoadUInt32("APECompressionLevel", 1, 5) ?? 2;
wvCompressionMode = sr.LoadInt32("WVCompressionMode", 0, 3) ?? 1;
wvExtraMode = sr.LoadInt32("WVExtraMode", 0, 6) ?? 0;
wvStoreMD5 = sr.LoadBoolean("WVStoreMD5") ?? false;
keepOriginalFilenames = sr.LoadBoolean("KeepOriginalFilenames") ?? false;
@@ -733,6 +942,7 @@ return processor.Go();
disableAsm = sr.LoadBoolean("DisableAsm") ?? false;
oneInstance = sr.LoadBoolean("OneInstance") ?? true;
checkForUpdates = sr.LoadBoolean("CheckForUpdates") ?? true;
writeBasicTagsFromCUEData = sr.LoadBoolean("WriteBasicTagsFromCUEData") ?? true;
copyBasicTags = sr.LoadBoolean("CopyBasicTags") ?? true;
@@ -755,10 +965,12 @@ return processor.Go();
string path = sr.Load(string.Format("ExternalEncoder{0}Path", nEncoders));
string parameters = sr.Load(string.Format("ExternalEncoder{0}Parameters", nEncoders));
bool lossless = sr.LoadBoolean(string.Format("ExternalEncoder{0}Lossless", nEncoders)) ?? true;
string supported_modes = sr.Load(string.Format("ExternalEncoder{0}Modes", nEncoders)) ?? "";
string default_mode = sr.Load(string.Format("ExternalEncoder{0}Mode", nEncoders)) ?? "";
CUEToolsUDC encoder;
if (!encoders.TryGetValue(name, out encoder))
encoders.Add(name, new CUEToolsUDC(name, extension, lossless, path, parameters));
else
encoders.Add(name, new CUEToolsUDC(name, extension, lossless, supported_modes, default_mode, path, parameters));
else if (version == 203)
{
if (encoder.path != null)
{
@@ -767,6 +979,8 @@ return processor.Go();
encoder.parameters = parameters;
encoder.lossless = lossless;
}
encoder.supported_modes = supported_modes;
encoder.default_mode = default_mode;
}
}
@@ -779,7 +993,7 @@ return processor.Go();
string parameters = sr.Load(string.Format("ExternalDecoder{0}Parameters", nDecoders));
CUEToolsUDC decoder;
if (!decoders.TryGetValue(name, out decoder))
decoders.Add(name, new CUEToolsUDC(name, extension, true, path, parameters));
decoders.Add(name, new CUEToolsUDC(name, extension, true, "", "", path, parameters));
else
{
decoder.extension = extension;
@@ -845,6 +1059,8 @@ return processor.Go();
defaultConvertScript = sr.Load("DefaultConvertScript") ?? "default";
defaultVerifyAndConvertScript = sr.Load("DefaultVerifyAndConvertScript") ?? "default";
gapsHandling = (CUEStyle?)sr.LoadInt32("GapsHandling", null, null) ?? gapsHandling;
language = sr.Load("Language") ?? Thread.CurrentThread.CurrentUICulture.Name;
}
@@ -1489,8 +1705,6 @@ return processor.Go();
pathAudio = LocateFile(_archiveCUEpath, line.Params[1], _archiveContents);
else
pathAudio = LocateFile(_inputDir, line.Params[1], null);
if (pathAudio == null)
throw new Exception("Unable to locate file \"" + line.Params[1] + "\".");
} else
{
pathAudio = _inputPath;
@@ -1499,18 +1713,31 @@ return processor.Go();
}
_sourcePaths.Add(pathAudio);
absoluteFileStartTime += fileTimeLengthFrames;
TagLib.File fileInfo;
fileTimeLengthSamples = GetSampleLength(pathAudio, out fileInfo);
if ((fileTimeLengthSamples % 588) == 492 && _config.truncate4608ExtraSamples)
if (pathAudio == null)
{
_truncated4608 = true;
fileTimeLengthSamples -= 4608;
throw new Exception("Unable to locate file \"" + line.Params[1] + "\".");
//fileTimeLengthFrames = 75 * 60 * 70;;
//fileTimeLengthSamples = fileTimeLengthFrames * 588;
//if (_hasEmbeddedCUESheet)
// _fileInfo = null;
//else
// _trackFileInfo = null;
}
fileTimeLengthFrames = (int)((fileTimeLengthSamples + 587) / 588);
if (_hasEmbeddedCUESheet)
_fileInfo = fileInfo;
else
_trackFileInfo = fileInfo;
{
TagLib.File fileInfo;
fileTimeLengthSamples = GetSampleLength(pathAudio, out fileInfo);
if ((fileTimeLengthSamples % 588) == 492 && _config.truncate4608ExtraSamples)
{
_truncated4608 = true;
fileTimeLengthSamples -= 4608;
}
fileTimeLengthFrames = (int)((fileTimeLengthSamples + 587) / 588);
if (_hasEmbeddedCUESheet)
_fileInfo = fileInfo;
else
_trackFileInfo = fileInfo;
}
seenFirstFileIndex = false;
}
}
@@ -1746,14 +1973,26 @@ return processor.Go();
if (value != null)
General.SetCUELine(_attributes, "REM", "GENRE", value, true);
}
if (_config.overwriteCUEData || TotalDiscs == "")
{
string value = GetCommonTag(delegate(TagLib.File file) { return file.Tag.DiscCount != 0 ? file.Tag.DiscCount.ToString() : null; });
if (value != null)
TotalDiscs = value;
}
if (_config.overwriteCUEData || DiscNumber == "")
{
string value = GetCommonTag(delegate(TagLib.File file) { return file.Tag.Disc != 0 ? file.Tag.Disc.ToString() : null; });
if (value != null)
DiscNumber = value;
}
for (i = 0; i < TrackCount; i++)
{
TrackInfo track = _tracks[i];
string artist = _hasTrackFilenames ? track._fileInfo.Tag.JoinedPerformers :
_hasEmbeddedCUESheet ? Tagging.TagListToSingleValue(Tagging.GetMiscTag(_fileInfo, String.Format("cue_track{0:00}_ARTIST", i + 1))) :
string artist = _hasTrackFilenames && track._fileInfo != null ? track._fileInfo.Tag.JoinedPerformers :
_hasEmbeddedCUESheet && _fileInfo != null ? Tagging.TagListToSingleValue(Tagging.GetMiscTag(_fileInfo, String.Format("cue_track{0:00}_ARTIST", i + 1))) :
null;
string title = _hasTrackFilenames ? track._fileInfo.Tag.Title :
_hasEmbeddedCUESheet ? Tagging.TagListToSingleValue(Tagging.GetMiscTag(_fileInfo, String.Format("cue_track{0:00}_TITLE", i + 1))) :
string title = _hasTrackFilenames && track._fileInfo != null ? track._fileInfo.Tag.Title :
_hasEmbeddedCUESheet && _fileInfo != null ? Tagging.TagListToSingleValue(Tagging.GetMiscTag(_fileInfo, String.Format("cue_track{0:00}_TITLE", i + 1))) :
null;
if ((_config.overwriteCUEData || track.Artist == "") && artist != null && artist != "")
track.Artist = artist;
@@ -1775,12 +2014,53 @@ return processor.Go();
// use pregaps from log
if (tocFromLog != null)
{
//int srcNo = (int) _toc[_toc.FirstAudio].LastIndex - (PreGapLength == 0 ? 1 : 0);
if (PreGapLength < tocFromLog.Pregap)
{
PreGapLength = tocFromLog.Pregap;
//srcNo ++;
}
int trNo;
for (trNo = 1; trNo < tocFromLog.AudioTracks && trNo < _toc.AudioTracks; trNo++)
{
if (_toc[_toc.FirstAudio + trNo].Pregap < tocFromLog[tocFromLog.FirstAudio + trNo].Pregap)
_toc[_toc.FirstAudio + trNo].Pregap = tocFromLog[tocFromLog.FirstAudio + trNo].Pregap;
}
//if (_toc[_toc.FirstAudio].Length > tocFromLog[tocFromLog.FirstAudio].Length)
//{
// uint offs = _toc[_toc.FirstAudio].Length - tocFromLog[tocFromLog.FirstAudio].Length;
// _toc[_toc.FirstAudio].Length -= offs;
// sourceInfo = _sources[srcNo];
// sourceInfo.Length -= offs * 588;
// _sources[srcNo] = sourceInfo;
// for (i = _toc.FirstAudio + 1; i <= _toc.TrackCount; i++)
// {
// _toc[i].Start -= offs;
// for (int j = 0; j <= _toc[i].LastIndex; j++)
// if (i != _toc.FirstAudio + 1 || j != 0 || _toc[i][0].Start == _toc[i][1].Start)
// _toc[i][j].Start -= offs;
// }
//}
//for (trNo = 1; trNo < tocFromLog.AudioTracks && trNo < _toc.AudioTracks; trNo++)
//{
// srcNo ++;
// if (_toc[_toc.FirstAudio + trNo].Length > tocFromLog[tocFromLog.FirstAudio + trNo].Length)
// {
// uint offs = _toc[_toc.FirstAudio + trNo].Length - tocFromLog[tocFromLog.FirstAudio + trNo].Length;
// _toc[_toc.FirstAudio + trNo].Length -= offs;
// sourceInfo = _sources[srcNo];
// sourceInfo.Length -= offs * 588;
// _sources[srcNo] = sourceInfo;
// for (i = _toc.FirstAudio + trNo + 1; i <= _toc.TrackCount; i++)
// {
// _toc[i].Start -= offs;
// for (int j = 0; j <= _toc[i].LastIndex; j++)
// if (i != _toc.FirstAudio + trNo + 1 || j != 0 || _toc[i][0].Start == _toc[i][1].Start)
// _toc[i][j].Start -= offs;
// }
// }
//}
}
// use data track length from log
@@ -2066,7 +2346,8 @@ return processor.Go();
for (int i = 0; i < TrackCount; i++)
{
TrackInfo track = _tracks[i];
string newValue = General.EmptyStringToNull(provider(track._fileInfo));
string newValue = track._fileInfo == null ? null:
General.EmptyStringToNull(provider(track._fileInfo));
if (tagValue == null)
tagValue = newValue;
else
@@ -2830,13 +3111,17 @@ return processor.Go();
// first, use cue sheet information
if (_config.writeBasicTagsFromCUEData)
{
uint year;
uint temp;
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.AlbumArtists.Length == 0 && Artist != "") fileInfo.Tag.AlbumArtists = new string[] { Artist };
if (fileInfo.Tag.Genres.Length == 0 && Genre != "") fileInfo.Tag.Genres = new string[] { Genre };
if (fileInfo.Tag.Year == 0 && Year != "" && uint.TryParse(Year, out year))
fileInfo.Tag.Year = year;
if (fileInfo.Tag.DiscCount == 0 && TotalDiscs != "" && uint.TryParse(TotalDiscs, out temp))
fileInfo.Tag.DiscCount = temp;
if (fileInfo.Tag.Disc == 0 && DiscNumber != "" && uint.TryParse(DiscNumber, out temp))
fileInfo.Tag.Disc = temp;
if (fileInfo.Tag.Year == 0 && Year != "" && uint.TryParse(Year, out temp))
fileInfo.Tag.Year = temp;
}
// fill up missing information from tags
@@ -2855,7 +3140,7 @@ return processor.Go();
fileInfo.Tag.Year = sourceFileInfo.Tag.Year;
}
if (_config.extractAlbumArt && sourceFileInfo.Tag.Pictures.Length > 0)
if (_config.extractAlbumArt && sourceFileInfo != null && sourceFileInfo.Tag.Pictures.Length > 0)
ExtractCover(sourceFileInfo);
// copy album art
@@ -2887,7 +3172,7 @@ return processor.Go();
if (_config.writeBasicTagsFromCUEData)
{
uint year;
uint temp;
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;
@@ -2897,8 +3182,12 @@ return processor.Go();
if (fileInfo.Tag.Performers.Length == 0 && Artist != "") fileInfo.Tag.Performers = new string[] { Artist };
if (fileInfo.Tag.AlbumArtists.Length == 0 && Artist != "") fileInfo.Tag.AlbumArtists = new string[] { Artist };
if (fileInfo.Tag.Genres.Length == 0 && Genre != "") fileInfo.Tag.Genres = new string[] { Genre };
if (fileInfo.Tag.Year == 0 && Year != "" && uint.TryParse(Year, out year))
fileInfo.Tag.Year = year;
if (fileInfo.Tag.DiscCount == 0 && TotalDiscs != "" && uint.TryParse(TotalDiscs, out temp))
fileInfo.Tag.DiscCount = temp;
if (fileInfo.Tag.Disc == 0 && DiscNumber != "" && uint.TryParse(DiscNumber, out temp))
fileInfo.Tag.Disc = temp;
if (fileInfo.Tag.Year == 0 && Year != "" && uint.TryParse(Year, out temp))
fileInfo.Tag.Year = temp;
}
if (_config.copyBasicTags && sourceFileInfo != null)
@@ -2917,7 +3206,7 @@ return processor.Go();
fileInfo.Tag.Genres = sourceFileInfo.Tag.Genres;
}
if (_config.extractAlbumArt && sourceFileInfo.Tag.Pictures.Length > 0)
if (_config.extractAlbumArt && sourceFileInfo != null && sourceFileInfo.Tag.Pictures.Length > 0)
ExtractCover(sourceFileInfo);
if (_config.copyAlbumArt && sourceFileInfo != null)
@@ -3787,6 +4076,15 @@ return processor.Go();
}
}
public NameValueCollection Tags
{
get
{
TagLib.File fileInfo = _tracks[0]._fileInfo ?? _fileInfo;
return fileInfo != null ? Tagging.Analyze(fileInfo) : null;
}
}
public string Artist {
get {
CUELine line = General.FindCUELine(_attributes, "PERFORMER");
@@ -3813,6 +4111,38 @@ return processor.Go();
}
}
public string DiscNumber
{
get
{
CUELine line = General.FindCUELine(_attributes, "REM", "DISCNUMBER");
return (line == null || line.Params.Count < 3) ? String.Empty : line.Params[2];
}
set
{
if (value != "")
General.SetCUELine(_attributes, "REM", "DISCNUMBER", value, false);
else
General.DelCUELine(_attributes, "REM", "DISCNUMBER");
}
}
public string TotalDiscs
{
get
{
CUELine line = General.FindCUELine(_attributes, "REM", "TOTALDISCS");
return (line == null || line.Params.Count < 3) ? String.Empty : line.Params[2];
}
set
{
if (value != "")
General.SetCUELine(_attributes, "REM", "TOTALDISCS", value, false);
else
General.DelCUELine(_attributes, "REM", "TOTALDISCS");
}
}
public string Genre
{
get

View File

@@ -38,21 +38,38 @@ namespace CUETools.Processor
return myAppDataDir;
}
public static string GetProfileDir(string appName, string appPath)
{
bool userProfilesEnabled = (appPath == null || File.Exists(Path.Combine(Path.GetDirectoryName(appPath), "user_profiles_enabled")));
string appDataDir = userProfilesEnabled ?
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) :
Path.GetDirectoryName(appPath);
string myAppDataDir = Path.Combine(appDataDir, appName);
if (!Directory.Exists(myAppDataDir))
Directory.CreateDirectory(myAppDataDir);
return myAppDataDir;
}
}
public class SettingsReader {
Dictionary<string, string> _settings;
string profilePath;
public string ProfilePath
{
get
{
return profilePath;
}
}
public SettingsReader(string appName, string fileName, string appPath) {
_settings = new Dictionary<string, string>();
bool userProfilesEnabled = (appPath == null || File.Exists(Path.Combine(Path.GetDirectoryName(appPath), "user_profiles_enabled")));
string path = Path.Combine(
userProfilesEnabled ? SettingsShared.GetMyAppDataDir(appName) : Path.GetDirectoryName(appPath),
userProfilesEnabled ? fileName : appName + "." + fileName);
if (!File.Exists(path)) {
profilePath = SettingsShared.GetProfileDir(appName, appPath);
string path = Path.Combine(profilePath, fileName);
if (!File.Exists(path))
return;
}
using (StreamReader sr = new StreamReader(path, Encoding.UTF8)) {
string line, name = null, val;
@@ -105,6 +122,22 @@ namespace CUETools.Processor
if (max.HasValue && (val > max.Value)) return null;
return val;
}
public long? LoadLong(string name, long? min, long? max)
{
long val;
if (!long.TryParse(Load(name), out val)) return null;
if (min.HasValue && (val < min.Value)) return null;
if (max.HasValue && (val > max.Value)) return null;
return val;
}
public DateTime? LoadDate(string name)
{
long? val = LoadLong(name, null, null);
if (!val.HasValue) return null;
return DateTime.FromBinary(val.Value);
}
}
public class SettingsWriter {
@@ -112,11 +145,7 @@ namespace CUETools.Processor
public SettingsWriter(string appName, string fileName, string appPath)
{
bool userProfilesEnabled = (appPath == null || File.Exists(Path.Combine(Path.GetDirectoryName(appPath), "user_profiles_enabled")));
string path = Path.Combine(
userProfilesEnabled ? SettingsShared.GetMyAppDataDir(appName) : Path.GetDirectoryName(appPath),
userProfilesEnabled ? fileName : appName + "." + fileName);
string path = Path.Combine(SettingsShared.GetProfileDir(appName, appPath), fileName);
_sw = new StreamWriter(path, false, Encoding.UTF8);
}
@@ -152,6 +181,16 @@ namespace CUETools.Processor
Save(name, value.ToString());
}
public void Save(string name, long value)
{
Save(name, value.ToString());
}
public void Save(string name, DateTime value)
{
Save(name, value.ToBinary());
}
public void Close() {
_sw.Close();
}

View File

@@ -26,6 +26,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>

View File

@@ -25,7 +25,7 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<OutputPath>..\bin\mono\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
@@ -278,6 +278,11 @@
<None Include="Resources\ipod_sound.ico" />
<None Include="Resources\ogg.ico" />
<None Include="Resources\mp3.ico" />
<None Include="Resources\more\icons\folder.png" />
<None Include="Resources\more\icons\folder_add.png" />
<None Include="Resources\more\icons\folder_delete.png" />
<None Include="Resources\more\icons\folder_feed.png" />
<None Include="Resources\more\icons\folder_page.png" />
<Content Include="Resources\wav.bmp" />
<None Include="Resources\wv.ico" />
<None Include="Resources\wave.ico" />

View File

@@ -239,7 +239,7 @@ Global
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Debug|x64.Build.0 = Debug|x64
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Debug|x86.ActiveCfg = Debug|x86
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Debug|x86.Build.0 = Debug|x86
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Release|Any CPU.ActiveCfg = Release|x64
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Release|Mixed Platforms.ActiveCfg = Release|x86
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Release|Mixed Platforms.Build.0 = Release|x86
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Release|x64.ActiveCfg = Release|x64
@@ -285,7 +285,7 @@ Global
{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Debug|x64.Build.0 = Debug|x64
{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Debug|x86.ActiveCfg = Debug|x86
{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Debug|x86.Build.0 = Debug|x86
{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Any CPU.ActiveCfg = Release|x64
{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Mixed Platforms.ActiveCfg = Release|x86
{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Mixed Platforms.Build.0 = Release|x86
{8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|x64.ActiveCfg = Release|x64

View File

@@ -130,6 +130,41 @@ namespace JDP.Properties {
}
}
internal static System.Drawing.Bitmap folder {
get {
object obj = ResourceManager.GetObject("folder", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap folder_add {
get {
object obj = ResourceManager.GetObject("folder_add", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap folder_delete {
get {
object obj = ResourceManager.GetObject("folder_delete", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap folder_feed {
get {
object obj = ResourceManager.GetObject("folder_feed", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap folder_page {
get {
object obj = ResourceManager.GetObject("folder_page", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap freedb {
get {
object obj = ResourceManager.GetObject("freedb", resourceCulture);

View File

@@ -202,4 +202,19 @@
<data name="ogg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ogg.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\more\icons\folder.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\more\icons\folder_add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\more\icons\folder_delete.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_feed" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\more\icons\folder_feed.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_page" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\more\icons\folder_page.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -117,216 +117,81 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnConvert.Text" xml:space="preserve">
<value>&amp;Los</value>
<data name="grpInput.Text" xml:space="preserve">
<value>Eingabe</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="labelInput.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 13</value>
</data>
<data name="labelInput.Text" xml:space="preserve">
<value>E&amp;ingabe:</value>
</data>
<data name="checkBoxDontGenerate.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 17</value>
</data>
<data name="checkBoxDontGenerate.Text" xml:space="preserve">
<value>&amp;Manuell</value>
</data>
<data name="txtInputPath.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnBrowseOutput.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="grpOutputStyle.Text" xml:space="preserve">
<value>CUE-Stil</value>
</data>
<data name="rbEmbedCUE.Text" xml:space="preserve">
<value>&amp;Eingebettet</value>
</data>
<data name="rbGapsLeftOut.Text" xml:space="preserve">
<value>Lücken ausgelassen</value>
</data>
<data name="btnConvert.ToolTip" xml:space="preserve">
<value />
</data>
<data name="mP3ToolStripMenuItem.Text" xml:space="preserve">
<value>MP3</value>
</data>
<data name="oGGToolStripMenuItem.Text" xml:space="preserve">
<value>OGG</value>
</data>
<data name="SelectedNodeName.Text" xml:space="preserve">
<value>Ausgewählte Datei</value>
</data>
<data name="btnResume.Text" xml:space="preserve">
<value>Weite&amp;r</value>
</data>
<data name="btnBrowseOutput.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtOutputPath.ToolTip" xml:space="preserve">
<value />
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="rbEmbedCUE.ToolTip" xml:space="preserve">
<value>Erstelle einzelne Datei mit eingebettetem CUE-Sheet</value>
</data>
<data name="rbGapsLeftOut.ToolTip" xml:space="preserve">
<value>Erstelle mehrere Dateien ohne Lücken</value>
</data>
<data name="rbGapsPrepended.Text" xml:space="preserve">
<value>Lücken vorangestellt</value>
</data>
<data name="rbGapsPrepended.ToolTip" xml:space="preserve">
<value>Erstelle mehrere Dateien mit vorangestellten Lücken</value>
</data>
<data name="rbGapsAppended.Text" xml:space="preserve">
<value>Lücken &amp;angehängt</value>
</data>
<data name="rbGapsAppended.ToolTip" xml:space="preserve">
<value>Erstelle mehrere Dateien mit nachgestellten Lücken</value>
</data>
<data name="rbSingleFile.Text" xml:space="preserve">
<value>&amp;Einzelne Datei + CUE</value>
</data>
<data name="rbSingleFile.ToolTip" xml:space="preserve">
<value>Erstelle einzelne Datei + CUE-Sheet</value>
</data>
<data name="grpOutputStyle.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnAbout.Text" xml:space="preserve">
<value>Über</value>
</data>
<data name="btnAbout.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtCustomFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbCustomFormat.Text" xml:space="preserve">
<value>Nutze eigenes Format:</value>
</data>
<data name="rbCustomFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtCreateSubdirectory.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbDontGenerate.Text" xml:space="preserve">
<value>&amp;Manuell</value>
</data>
<data name="rbDontGenerate.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbCreateSubdirectory.Text" xml:space="preserve">
<value>E&amp;rstelle Unterverzeichnis:</value>
</data>
<data name="rbCreateSubdirectory.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbAppendFilename.Text" xml:space="preserve">
<value>An Dateinamen anhängen:</value>
</data>
<data name="rbAppendFilename.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtAppendFilename.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpOutputPathGeneration.Text" xml:space="preserve">
<value>Ausgabepfad</value>
</data>
<data name="grpOutputPathGeneration.ToolTip" xml:space="preserve">
<value />
<data name="radioButtonAudioNone.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 17</value>
</data>
<data name="btnCodec.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbUDC1.Text" xml:space="preserve">
<value>eigene</value>
</data>
<data name="rbUDC1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbTTA.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkLossyWAV.ToolTip" xml:space="preserve">
<value>Erstelle ein Paar von Dateien - .lossy.wav(flac usw.) und .lwcdf.wav(flac usw.). Die verlustbehaftete (lossy) Datei enthält komprimierte Musik, aber gemeinsam mit der lwcdf-Datei können die originalen Audiodaten wiederhergestellt werden.</value>
</data>
<data name="rbAPE.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbNoAudio.Text" xml:space="preserve">
<data name="radioButtonAudioNone.Text" xml:space="preserve">
<value>Kei&amp;ne</value>
</data>
<data name="rbNoAudio.ToolTip" xml:space="preserve">
<value>Erstelle keine Audiodateien, nur CUE-Sheet</value>
</data>
<data name="rbWavPack.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWAV.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbFLAC.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpAudioOutput.Text" xml:space="preserve">
<value>Audio</value>
</data>
<data name="radioButtonAudioLossless.Text" xml:space="preserve">
<value>Verlustfrei</value>
</data>
<data name="radioButtonAudioLossless.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 17</value>
<data name="radioButtonAudioLossy.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 17</value>
</data>
<data name="radioButtonAudioLossy.Text" xml:space="preserve">
<value>Verlustbehaftet</value>
</data>
<data name="radioButtonAudioLossy.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 17</value>
<data name="radioButtonAudioLossless.Size" type="System.Drawing.Size, System.Drawing">
<value>74, 17</value>
</data>
<data name="btnSettings.Text" xml:space="preserve">
<value>Einstellungen</value>
<data name="radioButtonAudioLossless.Text" xml:space="preserve">
<value>Verlustfrei</value>
</data>
<data name="btnSettings.ToolTip" xml:space="preserve">
<value />
<data name="grpAudioOutput.Text" xml:space="preserve">
<value>Audio</value>
</data>
<data name="rbActionCorrectFilenames.ToolTip" xml:space="preserve">
<value />
<data name="rbCorrectorLocateFiles.Size" type="System.Drawing.Size, System.Drawing">
<value>99, 17</value>
</data>
<data name="chkRecursive.Text" xml:space="preserve">
<value>Stapel</value>
<data name="rbCorrectorLocateFiles.Text" xml:space="preserve">
<value>Dateien suchen</value>
</data>
<data name="chkRecursive.ToolTip" xml:space="preserve">
<value />
<data name="rbCorrectorChangeExtension.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 17</value>
</data>
<data name="chkMulti.ToolTip" xml:space="preserve">
<value />
<data name="rbCorrectorChangeExtension.Text" xml:space="preserve">
<value>Neue Erweiterung</value>
</data>
<data name="rbActionEncode.Text" xml:space="preserve">
<value>&amp;Nicht verif., kodieren</value>
<data name="checkBoxCorrectorOverwrite.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 17</value>
</data>
<data name="rbActionEncode.ToolTip" xml:space="preserve">
<value>Kodiert, ohne die AccurateRip-Datenbank zu kontaktieren.</value>
<data name="checkBoxCorrectorOverwrite.Text" xml:space="preserve">
<value>CUE überschr.</value>
</data>
<data name="rbActionVerify.Text" xml:space="preserve">
<value>&amp;Nur AR verifiz.</value>
<data name="groupBoxCorrector.Text" xml:space="preserve">
<value>Korrektur</value>
</data>
<data name="rbActionVerify.ToolTip" xml:space="preserve">
<value>Kontaktiert die AccurateRip-Datenbank und verifiziert das Image anhand dieser.</value>
</data>
<data name="rbActionVerifyThenEncode.Text" xml:space="preserve">
<value>Verifizieren, dann kodieren</value>
</data>
<data name="rbActionVerifyThenEncode.ToolTip" xml:space="preserve">
<value>Verifiziert beim ersten Durchlauf verifizieren und versucht, eine Offsetkorrektur zu finden, die das Image anhand der AR-Datenbank korrigiert. Kodiert beim zweiten Durchlauf unter Berücksichtigung dieser Korrektur.</value>
</data>
<data name="rbActionVerifyAndEncode.Text" xml:space="preserve">
<value>Verif. und kodieren</value>
</data>
<data name="rbActionVerifyAndEncode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbActionVerifyAndCRCs.Text" xml:space="preserve">
<value>Verif. AR und CRC</value>
</data>
<data name="rbActionVerifyAndCRCs.ToolTip" xml:space="preserve">
<value>Kontaktiert die AccurateRip-Datenbank und verifiziert das Image anhand der CRC-Werte.</value>
</data>
<data name="rbActionCreateCUESheet.Text" xml:space="preserve">
<value>Erzeuge leeres CUE</value>
</data>
<data name="rbActionCreateCUESheet.ToolTip" xml:space="preserve">
<value />
<data name="rbActionCorrectFilenames.Size" type="System.Drawing.Size, System.Drawing">
<value>131, 17</value>
</data>
<data name="rbActionCorrectFilenames.Text" xml:space="preserve">
<value>Korrigiere Dateinamen</value>
@@ -334,130 +199,113 @@
<data name="rbActionCorrectFilenames.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpAction.ToolTip" xml:space="preserve">
<data name="rbActionCreateCUESheet.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 17</value>
</data>
<data name="rbActionCreateCUESheet.Text" xml:space="preserve">
<value>Erzeuge leeres CUE</value>
</data>
<data name="rbActionCreateCUESheet.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label2.ToolTip" xml:space="preserve">
<data name="rbActionVerifyAndEncode.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 17</value>
</data>
<data name="rbActionVerifyAndEncode.Text" xml:space="preserve">
<value>Verif. und kodieren</value>
</data>
<data name="rbActionVerifyAndEncode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label1.Text" xml:space="preserve">
<value>Datenspur:</value>
<data name="rbActionVerify.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 17</value>
</data>
<data name="label1.ToolTip" xml:space="preserve">
<data name="rbActionVerify.Text" xml:space="preserve">
<value>&amp;Nur AR verifiz.</value>
</data>
<data name="rbActionVerify.ToolTip" xml:space="preserve">
<value>Kontaktiert die AccurateRip-Datenbank und verifiziert das Image anhand dieser.</value>
</data>
<data name="rbActionEncode.Size" type="System.Drawing.Size, System.Drawing">
<value>126, 17</value>
</data>
<data name="rbActionEncode.Text" xml:space="preserve">
<value>&amp;Nicht verif., kodieren</value>
</data>
<data name="rbActionEncode.ToolTip" xml:space="preserve">
<value>Kodiert, ohne die AccurateRip-Datenbank zu kontaktieren.</value>
</data>
<data name="btnAbout.Text" xml:space="preserve">
<value>Über</value>
</data>
<data name="btnConvert.Text" xml:space="preserve">
<value>&amp;Los</value>
</data>
<data name="numericWriteOffset.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBoxCorrector.Text" xml:space="preserve">
<value>Korrektur</value>
</data>
<data name="checkBoxCorrectorOverwrite.Text" xml:space="preserve">
<value>CUE überschr.</value>
</data>
<data name="rbCorrectorLocateFiles.Text" xml:space="preserve">
<value>Dateien suchen</value>
</data>
<data name="rbCorrectorChangeExtension.Text" xml:space="preserve">
<value>Neue Erweiterung</value>
</data>
<data name="txtPreGapLength.ToolTip" xml:space="preserve">
<value>Das Pregap ist eine mit Stille oder versteckten Audiodaten gefüllte Zeitspanne vor dem Beginn der ersten Tonspur. Normalerweise ist diese aus dem CUE-Sheet bekannt, aber falls Sie ohne CUE-Sheet arbeiten, können Sie diesen Wert manuell ändern.</value>
</data>
<data name="txtDataTrackLength.ToolTip" xml:space="preserve">
<value>Nicht für normale Musik-CDs verwendet. Erweiterte CDs mit Datenspuren können nicht in der Datenbank gefunden werden, es sei denn, Sie kennen die Länge der Datenspur. Sie können sie oft im EAC-Log finden. Falls das EAC-Log beim CUE-Sheet gefunden wird, wird es automatisch ausgelesen, und Sie müssen hier nichts eingeben.</value>
</data>
<data name="toolStripStatusLabelAR.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAyNJREFUOE9tkm1P
mmcYhh+zbsm+Ntlf2Jd92n/Yx21p1nTZlplZ0mJD2+mYG119AakITi2tmoK0a33p1BL7MtcpXRCrKNbK
EEOd1qLYCigSERB5e4BjxGVZSLyTM3dyJcdx3cl9lglHHKcTHO43wk76XSH/Tl44/t4x4cP3jwsfffBW
mUiOt8uOlR3FCaN9KWplSaq+F5FehnItVN4ooOgroLpfoHM0i9WVoATOkz0cPP8DVBUxaiRFqAq+VqSR
NoPcAOqBAi0PChif5Lg3LeLeyJRKujQrKC9uFeEEZ8rTVFQWOCsv8OMVaOwW6TCDaQyGpvJYnDEW18J4
Vjf+lyh++JsL8g0qZLuclojITmdRSEGnBP3tPHeKr7tvh8kXB2zuwU40SjwRIp2KI1y7NcUFtQtJ4yLl
dUFkNVHqzqeplwRwTsKzheLWmQzLfgjs5wgn4wR3XrIbWSAVW0D4rvURZ7SzSLQuzuq8KDTb6BpizD/N
4VsPsvxqle2oSHBfJJTe5/XeCpGEm+TBHLmkFUF6/S6SjlFknRMoutzo9D6M19cJBGL8aRs/vCOJOP5M
Ar+4TlR0I+bsFMTHxZgRKnXdVGsHUGofoGmyYaybpafGw4zZR+YgSTy6j3fJy5u1ZWKBv8juPoHoCLno
EOz1Igyaf6OpsQtDm5mJu4sMVlmY7VwibAsRdAcITqwSsT4jNW0ns/wYvEMUXv8CwQ5S4YcIfr+f2+0G
luweVu2+oqCHTdsa4flNkk4/3t4xEiOjYC3C8wPklwzkvXrwtUHK8+9XGi/V011ZzYbVwda4h9BTF5HZ
l2z3PiRuNJIe7EIc0ZO36SjMFtvl+Yn4ytXSMjlu9WD56hzZkXESjjkyUzOE1LWk26pJ3ZRz8Gsxjy6S
GJcQc5tK4f+6/fxeH2MVnzMnPcmr8yfZrvmErYZPCbR+zGbHCXx3vsAx3HI0PDw8jMlkor9Zze9VUqbP
fckL+Slc9Z/hVJ9iUvsNN9Xf8vPVdgyG7lKJxWKhv78fvV5Pi6YZtVqFUnUZTcMltLW1qBqU1Deqi2lC
c6WZ9vZWbhgNh5J/AJcIo/TEh255AAAAAElFTkSuQmCC
</value>
<data name="labelDataTrack.Text" xml:space="preserve">
<value>Datenspur</value>
</data>
<data name="statusStrip1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnStop.Text" xml:space="preserve">
<value>&amp;Stopp</value>
</data>
<data name="btnStop.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnPause.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnResume.Text" xml:space="preserve">
<value>&amp;Fortsetzen</value>
</data>
<data name="btnResume.ToolTip" xml:space="preserve">
<value />
<data name="rbFreedbAlways.Size" type="System.Drawing.Size, System.Drawing">
<value>55, 17</value>
</data>
<data name="rbFreedbAlways.Text" xml:space="preserve">
<value>Immer</value>
</data>
<data name="rbFreedbAlways.ToolTip" xml:space="preserve">
<value />
<data name="rbFreedbIf.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 17</value>
</data>
<data name="rbFreedbIf.Text" xml:space="preserve">
<value>Wenn nötig</value>
</data>
<data name="rbFreedbIf.ToolTip" xml:space="preserve">
<value />
<data name="rbFreedbNever.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 17</value>
</data>
<data name="rbFreedbNever.Text" xml:space="preserve">
<value>Nie</value>
</data>
<data name="rbFreedbNever.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpFreedb.Text" xml:space="preserve">
<value>FreeDB-Abfrage</value>
</data>
<data name="grpFreedb.ToolTip" xml:space="preserve">
<value />
<data name="btnResume.Text" xml:space="preserve">
<value>&amp;Fortsetzen</value>
</data>
<data name="contextMenuStripUDC.ToolTip" xml:space="preserve">
<value />
<data name="rbEmbedCUE.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 17</value>
</data>
<data name="txtInputPath.ToolTip" xml:space="preserve">
<value />
<data name="rbEmbedCUE.Text" xml:space="preserve">
<value>&amp;Eingebettet</value>
</data>
<data name="textBatchReport.ToolTip" xml:space="preserve">
<value />
<data name="rbEmbedCUE.ToolTip" xml:space="preserve">
<value>Erstelle einzelne Datei mit eingebettetem CUE-Sheet</value>
</data>
<data name="fileSystemTreeView1.ToolTip" xml:space="preserve">
<value />
<data name="rbSingleFile.Size" type="System.Drawing.Size, System.Drawing">
<value>126, 17</value>
</data>
<data name="grpInput.Text" xml:space="preserve">
<value>E&amp;ingabe</value>
<data name="rbSingleFile.Text" xml:space="preserve">
<value>&amp;Einzelne Datei + CUE</value>
</data>
<data name="grpInput.ToolTip" xml:space="preserve">
<value />
<data name="rbSingleFile.ToolTip" xml:space="preserve">
<value>Erstelle einzelne Datei + CUE-Sheet</value>
</data>
<data name="numericWriteOffset.ToolTip" xml:space="preserve">
<value />
<data name="grpOutputStyle.Text" xml:space="preserve">
<value>CUE-Stil</value>
</data>
<data name="lblWriteOffset.ToolTip" xml:space="preserve">
<value />
<data name="btnSettings.Text" xml:space="preserve">
<value>Einstellungen</value>
</data>
<data name="grpExtra.ToolTip" xml:space="preserve">
<value />
<data name="btnStop.Text" xml:space="preserve">
<value>&amp;Stopp</value>
</data>
<data name="contextMenuStripFileTree.ToolTip" xml:space="preserve">
<value />
</data>
<data name="panel1.ToolTip" xml:space="preserve">
<value />
<data name="SelectedNodeName.Text" xml:space="preserve">
<value>Ausgewählte Datei</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@@ -487,7 +335,4 @@
AAAAAAAAAAAAAIABAADAAwAA4AcAAPAPAAA=
</value>
</data>
<data name="$this.ToolTip" xml:space="preserve">
<value />
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -117,39 +117,346 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnConvert.Text" xml:space="preserve">
<value>Поехали</value>
<data name="statusStrip2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="toolStripContainer1.BottomToolStripPanel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="textBatchReport.ToolTip" xml:space="preserve">
<value />
</data>
<data name="fileSystemTreeView1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpInput.Text" xml:space="preserve">
<value>Проводник</value>
</data>
<data name="grpInput.ToolTip" xml:space="preserve">
<value />
</data>
<data name="splitContainer1.Panel1.ToolTip" xml:space="preserve">
<value />
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="labelOutputTemplate.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 13</value>
</data>
<data name="labelOutputTemplate.Text" xml:space="preserve">
<value>Шаблон:</value>
</data>
<data name="labelOutputTemplate.ToolTip" xml:space="preserve">
<value />
</data>
<data name="labelOutput.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 13</value>
</data>
<data name="labelOutput.Text" xml:space="preserve">
<value>Выход:</value>
</data>
<data name="labelOutput.ToolTip" xml:space="preserve">
<value />
</data>
<data name="labelInput.Size" type="System.Drawing.Size, System.Drawing">
<value>36, 13</value>
</data>
<data name="labelInput.Text" xml:space="preserve">
<value>Вход:</value>
</data>
<data name="labelInput.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxDontGenerate.Size" type="System.Drawing.Size, System.Drawing">
<value>71, 17</value>
</data>
<data name="checkBoxDontGenerate.Text" xml:space="preserve">
<value>Вручную</value>
</data>
<data name="checkBoxDontGenerate.ToolTip" xml:space="preserve">
<value />
</data>
<data name="comboBoxOutputFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtInputPath.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnBrowseOutput.Text" xml:space="preserve">
<value>Выбор...</value>
</data>
<data name="grpOutputStyle.Text" xml:space="preserve">
<value>Стиль CUE</value>
<data name="btnBrowseOutput.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtOutputPath.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpOutputPathGeneration.Text" xml:space="preserve">
<value>Файлы</value>
</data>
<data name="grpOutputPathGeneration.ToolTip" xml:space="preserve">
<value />
</data>
<data name="labelEncoderMaxMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="labelEncoderMinMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="labelEncoderMode.ToolTip" xml:space="preserve">
<value>Для lossless форматов, уровень сжатия. Для lossy форматов, качество.</value>
</data>
<data name="trackBarEncoderMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="comboBoxEncoder.ToolTip" xml:space="preserve">
<value>Используемый кодировщик</value>
</data>
<data name="radioButtonAudioNone.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value>
</data>
<data name="radioButtonAudioNone.Text" xml:space="preserve">
<value>Без аудио</value>
</data>
<data name="radioButtonAudioNone.ToolTip" xml:space="preserve">
<value>Не создавать аудио-файлов</value>
</data>
<data name="radioButtonAudioLossy.ToolTip" xml:space="preserve">
<value>Форматы сжатия с потерей качества</value>
</data>
<data name="radioButtonAudioHybrid.Size" type="System.Drawing.Size, System.Drawing">
<value>82, 17</value>
</data>
<data name="radioButtonAudioHybrid.Text" xml:space="preserve">
<value>Гибридный</value>
</data>
<data name="radioButtonAudioHybrid.ToolTip" xml:space="preserve">
<value>Гибридные форматы</value>
</data>
<data name="radioButtonAudioLossless.ToolTip" xml:space="preserve">
<value>Форматы сжатия без потерь. Позволяют создать точную копию оригинального диска.</value>
</data>
<data name="labelFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="comboBoxAudioFormat.ToolTip" xml:space="preserve">
<value>Формат аудио файлов</value>
</data>
<data name="grpAudioOutput.Text" xml:space="preserve">
<value>Формат аудио</value>
</data>
<data name="grpAudioOutput.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbCorrectorLocateFiles.Size" type="System.Drawing.Size, System.Drawing">
<value>96, 17</value>
</data>
<data name="rbCorrectorLocateFiles.Text" xml:space="preserve">
<value>Поиск файлов</value>
</data>
<data name="rbCorrectorLocateFiles.ToolTip" xml:space="preserve">
<value>Автоматический поиск переименованных файлов</value>
</data>
<data name="rbCorrectorChangeExtension.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 17</value>
</data>
<data name="rbCorrectorChangeExtension.Text" xml:space="preserve">
<value>Расширение</value>
</data>
<data name="rbCorrectorChangeExtension.ToolTip" xml:space="preserve">
<value>Заменить расширение аудио-файлов</value>
</data>
<data name="checkBoxCorrectorOverwrite.Text" xml:space="preserve">
<value>Заменить CUE</value>
</data>
<data name="checkBoxCorrectorOverwrite.ToolTip" xml:space="preserve">
<value>Записать исправленное CUE поверх существующего</value>
</data>
<data name="labelCorrectorFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="comboBoxCorrectorFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBoxCorrector.Text" xml:space="preserve">
<value>Исправить имена</value>
</data>
<data name="groupBoxCorrector.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxAdvancedMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="comboBoxScript.ToolTip" xml:space="preserve">
<value>Запустить скрипт</value>
</data>
<data name="rbActionCorrectFilenames.Size" type="System.Drawing.Size, System.Drawing">
<value>153, 17</value>
</data>
<data name="rbActionCorrectFilenames.Text" xml:space="preserve">
<value>Исправить имена файлов</value>
</data>
<data name="rbActionCorrectFilenames.ToolTip" xml:space="preserve">
<value>Исправить имена или расширения файлов в CUE</value>
</data>
<data name="rbActionCreateCUESheet.Size" type="System.Drawing.Size, System.Drawing">
<value>92, 17</value>
</data>
<data name="rbActionCreateCUESheet.Text" xml:space="preserve">
<value>Создать .cue</value>
</data>
<data name="rbActionCreateCUESheet.ToolTip" xml:space="preserve">
<value>Создать CUE для наборов треков и/или извлечь встроенные CUE</value>
</data>
<data name="rbActionVerifyAndEncode.Size" type="System.Drawing.Size, System.Drawing">
<value>154, 17</value>
</data>
<data name="rbActionVerifyAndEncode.Text" xml:space="preserve">
<value>Конвертация + проверка</value>
</data>
<data name="rbActionVerifyAndEncode.ToolTip" xml:space="preserve">
<value>Конвертировать в другой формат, и проверить по базе данных AccurateRip</value>
</data>
<data name="rbActionVerify.Size" type="System.Drawing.Size, System.Drawing">
<value>112, 17</value>
</data>
<data name="rbActionVerify.Text" xml:space="preserve">
<value>Только проверка</value>
</data>
<data name="rbActionVerify.ToolTip" xml:space="preserve">
<value>Проверить рип по базе данных AccurateRip</value>
</data>
<data name="rbActionEncode.Size" type="System.Drawing.Size, System.Drawing">
<value>92, 17</value>
</data>
<data name="rbActionEncode.Text" xml:space="preserve">
<value>Конвертация</value>
</data>
<data name="rbActionEncode.ToolTip" xml:space="preserve">
<value>Конвертировать в другой формат</value>
</data>
<data name="grpAction.Text" xml:space="preserve">
<value>Действие</value>
</data>
<data name="grpAction.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnAbout.Text" xml:space="preserve">
<value>О программе</value>
</data>
<data name="btnAbout.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnConvert.Text" xml:space="preserve">
<value>Поехали</value>
</data>
<data name="btnConvert.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numericWriteOffset.ToolTip" xml:space="preserve">
<value>Смещение в сэмплах</value>
</data>
<data name="txtPreGapLength.ToolTip" xml:space="preserve">
<value>Длина зазора перед первым треком. Если она не указана в CUE, может потребоваться указать её чтобы диск нашелся в базе данных AccurateRip</value>
</data>
<data name="lblWriteOffset.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 13</value>
</data>
<data name="lblWriteOffset.Text" xml:space="preserve">
<value>Смещение</value>
</data>
<data name="lblWriteOffset.ToolTip" xml:space="preserve">
<value />
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="labelPregap.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelPregap.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtDataTrackLength.ToolTip" xml:space="preserve">
<value>Не используется для обычных музыкальных дисков. "Улучшенные" компакт диски с треком данных не найдутся в базе данных, если не указать длину трека данных. Её часто можно найти в логе EAC. Если лог EAC лежит в той же папке что и .cue, и имеет такое же имя как .cue файл, то он будет проанализирован автоматически и тут опять же ничего не надо будет вводить.</value>
</data>
<data name="labelDataTrack.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 13</value>
</data>
<data name="labelDataTrack.Text" xml:space="preserve">
<value>Данные</value>
</data>
<data name="labelDataTrack.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpExtra.Text" xml:space="preserve">
<value>Дополнительно</value>
</data>
<data name="grpExtra.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbFreedbAlways.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 17</value>
</data>
<data name="rbFreedbAlways.Text" xml:space="preserve">
<value>Всегда</value>
</data>
<data name="rbFreedbAlways.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbFreedbIf.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value>
</data>
<data name="rbFreedbIf.Text" xml:space="preserve">
<value>Если надо</value>
</data>
<data name="rbFreedbIf.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbFreedbNever.Size" type="System.Drawing.Size, System.Drawing">
<value>68, 17</value>
</data>
<data name="rbFreedbNever.Text" xml:space="preserve">
<value>Никогда</value>
</data>
<data name="rbFreedbNever.ToolTip" xml:space="preserve">
<value />
</data>
<data name="grpFreedb.Text" xml:space="preserve">
<value>Поиск в Freedb</value>
</data>
<data name="grpFreedb.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnResume.Text" xml:space="preserve">
<value>&amp;Поехали</value>
</data>
<data name="btnResume.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnPause.Text" xml:space="preserve">
<value>Пауза</value>
</data>
<data name="btnPause.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 17</value>
</data>
<data name="rbTracks.Text" xml:space="preserve">
<value>Потрековый</value>
</data>
<data name="rbTracks.ToolTip" xml:space="preserve">
<value>Записать каждый трек отдельным файлом. Метод обработки зазоров (gaps) задан в настройках</value>
</data>
<data name="rbEmbedCUE.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 17</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="rbEmbedCUE.Text" xml:space="preserve">
<value>Встроенный</value>
</data>
<data name="rbEmbedCUE.ToolTip" xml:space="preserve">
<value>Создать образ диска в виде одного аудио-файла со встроеным .cue (вложенным в него в виде тага CUESHEET)</value>
</data>
<data name="rbGapsLeftOut.Text" xml:space="preserve">
<value>Без зазоров</value>
</data>
<data name="rbGapsLeftOut.ToolTip" xml:space="preserve">
<value>Порезать на треки, зазоры выкинуть (не рекомендуется)</value>
</data>
<data name="rbGapsPrepended.Text" xml:space="preserve">
<value>Зазоры в начале</value>
</data>
<data name="rbGapsPrepended.ToolTip" xml:space="preserve">
<value>Порезать на треки, зазоры помещаются в начало трека (не рекомендуется)</value>
</data>
<data name="rbGapsAppended.Text" xml:space="preserve">
<value>Зазоры в конце</value>
</data>
<data name="rbGapsAppended.ToolTip" xml:space="preserve">
<value>Порезать на треки, зазоры помещаются в конец трека</value>
<data name="rbSingleFile.Size" type="System.Drawing.Size, System.Drawing">
<value>90, 17</value>
</data>
<data name="rbSingleFile.Text" xml:space="preserve">
<value>Образ + CUE</value>
@@ -157,117 +464,464 @@
<data name="rbSingleFile.ToolTip" xml:space="preserve">
<value>Создать образ диска в виде одного аудио-файла и .cue файла</value>
</data>
<data name="btnAbout.Text" xml:space="preserve">
<value>О программе</value>
<data name="grpOutputStyle.Text" xml:space="preserve">
<value>Стиль CUE</value>
</data>
<data name="grpOutputPathGeneration.Text" xml:space="preserve">
<value>Путь для выходных файлов</value>
</data>
<data name="rbCustomFormat.Text" xml:space="preserve">
<value>По шаблону:</value>
</data>
<data name="rbDontGenerate.Text" xml:space="preserve">
<value>Вручную</value>
</data>
<data name="rbCreateSubdirectory.Text" xml:space="preserve">
<value>Создать каталог:</value>
</data>
<data name="rbAppendFilename.Text" xml:space="preserve">
<value>Суффикс к имени:</value>
</data>
<data name="grpAudioOutput.Text" xml:space="preserve">
<value>Формат аудио</value>
</data>
<data name="rbNoAudio.Text" xml:space="preserve">
<value>Без аудио</value>
<data name="grpOutputStyle.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnSettings.Text" xml:space="preserve">
<value>Настройки...</value>
</data>
<data name="rbActionCorrectFilenames.Text" xml:space="preserve">
<value>Исправить имена файлов</value>
</data>
<data name="chkRecursive.Text" xml:space="preserve">
<value>В папке</value>
</data>
<data name="rbActionCreateCUESheet.Text" xml:space="preserve">
<value>Создать .cue</value>
</data>
<data name="rbActionVerifyAndCRCs.Text" xml:space="preserve">
<value>Проверка + CRC</value>
</data>
<data name="rbActionVerifyAndEncode.Text" xml:space="preserve">
<value>Конвертация + проверка</value>
</data>
<data name="rbActionVerifyThenEncode.Text" xml:space="preserve">
<value>Проверка, конвертация</value>
</data>
<data name="rbActionVerify.Text" xml:space="preserve">
<value>Только проверка</value>
</data>
<data name="rbActionEncode.Text" xml:space="preserve">
<value>Конвертация</value>
</data>
<data name="grpAction.Text" xml:space="preserve">
<value>Действие</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>Pregap</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Данные</value>
</data>
<data name="txtDataTrackLength.ToolTip" xml:space="preserve">
<value>Не используется для обычных музыкальных дисков. "Улучшенные" компакт диски с треком данных не найдутся в базе данных, если не указать длину трека данных. Её часто можно найти в логе EAC. Если лог EAC лежит в той же папке что и .cue, и имеет такое же имя как .cue файл, то он будет проанализирован автоматически и тут опять же ничего не надо будет вводить.</value>
</data>
<data name="toolStripStatusLabelAR.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAyNJREFUOE9tkm1P
mmcYhh+zbsm+Ntlf2Jd92n/Yx21p1nTZlplZ0mJD2+mYG119AakITi2tmoK0a33p1BL7MtcpXRCrKNbK
EEOd1qLYCigSERB5e4BjxGVZSLyTM3dyJcdx3cl9lglHHKcTHO43wk76XSH/Tl44/t4x4cP3jwsfffBW
mUiOt8uOlR3FCaN9KWplSaq+F5FehnItVN4ooOgroLpfoHM0i9WVoATOkz0cPP8DVBUxaiRFqAq+VqSR
NoPcAOqBAi0PChif5Lg3LeLeyJRKujQrKC9uFeEEZ8rTVFQWOCsv8OMVaOwW6TCDaQyGpvJYnDEW18J4
Vjf+lyh++JsL8g0qZLuclojITmdRSEGnBP3tPHeKr7tvh8kXB2zuwU40SjwRIp2KI1y7NcUFtQtJ4yLl
dUFkNVHqzqeplwRwTsKzheLWmQzLfgjs5wgn4wR3XrIbWSAVW0D4rvURZ7SzSLQuzuq8KDTb6BpizD/N
4VsPsvxqle2oSHBfJJTe5/XeCpGEm+TBHLmkFUF6/S6SjlFknRMoutzo9D6M19cJBGL8aRs/vCOJOP5M
Ar+4TlR0I+bsFMTHxZgRKnXdVGsHUGofoGmyYaybpafGw4zZR+YgSTy6j3fJy5u1ZWKBv8juPoHoCLno
EOz1Igyaf6OpsQtDm5mJu4sMVlmY7VwibAsRdAcITqwSsT4jNW0ns/wYvEMUXv8CwQ5S4YcIfr+f2+0G
luweVu2+oqCHTdsa4flNkk4/3t4xEiOjYC3C8wPklwzkvXrwtUHK8+9XGi/V011ZzYbVwda4h9BTF5HZ
l2z3PiRuNJIe7EIc0ZO36SjMFtvl+Yn4ytXSMjlu9WD56hzZkXESjjkyUzOE1LWk26pJ3ZRz8Gsxjy6S
GJcQc5tK4f+6/fxeH2MVnzMnPcmr8yfZrvmErYZPCbR+zGbHCXx3vsAx3HI0PDw8jMlkor9Zze9VUqbP
fckL+Slc9Z/hVJ9iUvsNN9Xf8vPVdgyG7lKJxWKhv78fvV5Pi6YZtVqFUnUZTcMltLW1qBqU1Deqi2lC
c6WZ9vZWbhgNh5J/AJcIo/TEh255AAAAAElFTkSuQmCC
</value>
<data name="btnSettings.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnStop.Text" xml:space="preserve">
<value>Стоп</value>
</data>
<data name="btnPause.Text" xml:space="preserve">
<value>Пауза</value>
<data name="btnStop.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnResume.Text" xml:space="preserve">
<value>&amp;Поехали</value>
<data name="splitContainer1.Panel2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbFreedbAlways.Text" xml:space="preserve">
<value>Всегда</value>
<data name="splitContainer1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbFreedbIf.Text" xml:space="preserve">
<value>Если надо</value>
<data name="toolStripContainer1.ContentPanel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbFreedbNever.Text" xml:space="preserve">
<value>Никогда</value>
<data name="toolStripButton1.Text" xml:space="preserve">
<value>Проводник</value>
</data>
<data name="grpFreedb.Text" xml:space="preserve">
<value>Поиск в Freedb</value>
<data name="toolStripButton2.Text" xml:space="preserve">
<value>Проводник (пакетный режим)</value>
</data>
<data name="grpInput.Text" xml:space="preserve">
<value>Исходный файл</value>
<data name="toolStripButton3.Text" xml:space="preserve">
<value>Режим drag'n'drop</value>
</data>
<data name="lblWriteOffset.Text" xml:space="preserve">
<value>Смещение</value>
<data name="toolStripButton4.Text" xml:space="preserve">
<value>Журнал работы</value>
</data>
<data name="grpExtra.Text" xml:space="preserve">
<value>Дополнительно</value>
<data name="toolStripButton5.Text" xml:space="preserve">
<value>Скрыть</value>
</data>
<data name="toolStrip1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="toolStripContainer1.LeftToolStripPanel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="toolStripContainer1.RightToolStripPanel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="toolStripContainer1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="toolStripContainer1.TopToolStripPanel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="contextMenuStripFileTree.ToolTip" xml:space="preserve">
<value />
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAgAICAQAAEABADoAgAAhgAAABAQEAABAAQAKAEAAG4DAAAwMAAAAQAIAKgOAACWBAAAICAAAAEA
CACoCAAAPhMAABAQAAABAAgAaAUAAOYbAAAwMAAAAQAgAKglAABOIQAAICAAAAEAIACoEAAA9kYAABAQ
AAABACAAaAQAAJ5XAAAoAAAAIAAAAEAAAAABAAQAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA
AAAAgAAAgIAAAAAAgACAAIAAAICAAMDAwACAgIAA/wAAAAD/AAD//wAAAAD/AP8A/wAA//8A////AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAIiHfu6gAAAAAAAAAAAAAIh3d3fuqngAAAAAAAAAAAh3d3d+7qp7uwAA
AAAAAACPd3d3d+qnu7twAAAAAAAI9/d3d37qp7u3dwAAAAAACI9/d3d36nu7d3cAAAAAAIh49/d3fup7
t3d3cAAAAACHh49/d3fnu3d3d3AAAAAIeHh49/eIiLd3d3d3AAAACIeHh494AACHd3d3dwAAAAh4eHh4
gAAACHd3d3cAAAAIh4eHh4AAAAh3d3d3AAAACHd3d3eAAAAId3d3dwAAAAh3d3d7gAAACIeHh4cAAAAI
d3d3t3gAAI/4eHh4AAAACHd3e3eqiIh/f4eHhwAAAACHe7d6q+53d/f4eHAAAAAAi7t3qrvud3d/f4eA
AAAAAAi3eqq77nd3d/f4AAAAAAAId6qru+53d3d/fwAAAAAAAIqqq7vud3d3d/AAAAAAAAAIqru+7nd3
d3cAAAAAAAAAAIiLvu53d3cAAAAAAAAAAAAAiI7ud3AAAAAAAAAAAAAAAAAIiIiAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//Af///AA///AAD//gAAf/wAAD/4AAAf+AAAH/AA
AA/wAAAP4AAAB+AAAAfgA8AH4APAB+ADwAfgA8AH4AAAB+AAAAfwAAAP8AAAD/gAAB/4AAAf/AAAP/4A
AH//AAD//8AD///4H/////////////////////////////////8oAAAAEAAAACAAAAABAAQAAAAAAIAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAgAAAgIAAAAAAgACAAIAAAICAAMDAwACAgIAA/wAAAAD/
AAD//wAAAAD/AP8A/wAA//8A////AAAAAAAAAAAAAAAAiAAAAAAAAIh3eqAAAAAId3d6ruAAAI93d3ru
uwAAh/d3euu3AAh3f3f663dwCHd3+Ai3d3AId3eg8Hd3cAh3ergId3dwCHeqvnf3d3AAiqvud393AACK
u+53d/cAAAi+7nd3cAAAAIjud3AAAAAAAIiIgAAA//8AAPwfAADwBwAA4AMAAMABAADAAQAAgAAAAIAA
AACAAAAAgAAAAIAAAADAAQAAwAEAAOADAADwBwAA/B8AACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAA
AAAAAAAAAAAAAAAAAAAAAAAASkpKAE1NTQBOTk4AUVFRAFNTUwBUVFQAVlZWAFlZWQBbW1sAXV1dAF5e
XgBhYWEAY2NjAGVlZQBmZmYAaGhoAGtrawBtbW0Ab29vAHBtbQBwbm4AcHBwAHNzcwB0dHQAd3d3AHlz
cwB5dXUAeXd3AHl5eQB8fHwAf39/AIN5eQCDf38AgICAAIOBgQCDg4MAhISEAIeHhwCMgIAAjIKCAIyE
hACIiIgAjIiIAIyMjACOjo4AloeHAJaJiQCWjIwAlo6OAJ+NjQCfj48AlpaWAJ+UlACfnJwAn5+fAKmT
kwCplpYAqZiYALOZmQCznZ0AqaOjAKmlpQCpqKgAs6GhALOjowCzpqYAvKGhALylpQC8qKgAvKurALyt
rQC8r68As7OzALy8vADGp6cAxqioAMaqqgDGrKwAxq+vAM+srADGsLAAxrS0AMa5uQDGu7sAxr+/ANmz
swDZtbUA2be3AOy/vwDGwsIAxsbGAM/CwgDPyckA2cjIANnZ2QDd3d0A4s7OAOzKygD1xsYA9c3NAP/M
zAD/zs4A7NLSAOzW1gDs2dkA7NzcAPXR0QD11dUA9dfXAP/Q0AD/0NMA/9PTAP/T1QD/1dUA/9XXAP/W
1gD/0NoA/9PaAP/X2AD/19sA9draAP/Z2QD/2toA/9ndAP/a3gD/3d0A/9/fAP/W4QD/3eMA/97iAP/c
5QD/1eoA/9bvAP/Z6QD/2+0A/9ztAP/f7QD/z/QA/87/AP/Q8gD/1PAA/9XzAP/Q9QD/0fYA/9nyAP/e
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD//+AH//8AAP//
gAD//wAA//4AAD//AAD/+AAAD/8AAP/gAAAD/wAA/8AAAAH/AAD/gAAAAP8AAP8AAAAAfwAA/gAAAAA/
AAD8AAAAAB8AAPgAAAAAHwAA+AAAAAAPAADwAAAAAA8AAPAAAAAABwAA4AAAAAAHAADgAAAAAAMAAOAA
AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAQAAwAAAAAABAACAAAOAAAEAAIAAA8AAAQAAgAADwAAB
AACAAAHAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAcAAOAA
AAAABwAA4AAAAAAPAADgAAAAAA8AAPAAAAAAHwAA+AAAAAAfAAD4AAAAAD8AAPwAAAAAfwAA/gAAAAD/
AAD/AAAAAf8AAP+AAAAD/wAA/8AAAAf/AAD/8AAAH/8AAP/8AAB//wAA//8AAf//AAD//+AP//8AAP//
/////wAAKAAAACAAAABAAAAAAQAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOTk4AUFBQAFFR
UQBTU1MAVFRUAFVVVQBWVlYAV1dXAFhYWABbW1sAXV1dAF5eXgBfX18AYWFhAGJiYgBjY2MAZGRkAGVl
ZQBmZmYAampqAGtrawBvb28AcGxsAHBtbQBwbm4AcG9vAHBwcABzc3MAdHR0AHV1dQB5c3MAeXR0AHl1
dQB5eXkAenp6AH5+fgCDenoAgICAAIGBgQCCgoIAg4ODAIeHhwCMgIAAjIGBAIyCggCMhoYAiIiIAIqK
igCMiooAjIyMAJaNjQCWjo4AkZGRAJ+VlQCfnJwAqZOTALOZmQCznJwAs5+fALyfnwCpqakAs6enALyj
owC8pqYAs6ysALOtrQC8rq4As7CwALOysgC8tbUAxqamAMapqQDGr68Az6ysAMaysgDPsLAA2bOzAOK6
ugDiu7sA4r+/AM/CwgDPxsYAz8fHAM/MzADPz88A2cbGANnIyADZysoA2czMANnOzgDZz88A3d3dAPXG
xgD/zMwA/87OAP/PzwD/0NAA/9HRAP/R0wD/0tIA/9PTAP/V1QD/1tYA/9DfAP/W3AD/19wA9draAP/Z
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
XgBlZWUAaWFhAGlpaQBraWkAa2trAG1sbABtbW0AcGtrAHNvbwB2dnYAfHV1AHx2dgB5eXkAe3t7AH19
fQCAcXEAgnd3AIV7ewCGhoYAiIODAIiIiACMiYkAjoqKAI2NjQCUjIwAlI+PAJ6MjACcj48AlpaWAJ2X
lwCYmJgAm5iYAJ2dnQCmlJQApJ+fALOeowCioaEApqSkAKampgCvqKwAs6CjALOpqQDMmZkAxq2tANWi
ogDWrKwA26ioAMaxsQDPtLQAw7+/ANy5uQDjsLAA6re3AOa6ugDmvb0A6b6+AMW8wgDGxsYAz8/PANLM
zADd3d0A5sDAAOfExADvwsIA7MrKAPPFxQD1x8cA883NAPXNzQD/zc0A/8/PAO/f3wD/0tIA+dbWAP/U
1AD/1NsA/9jYAP/Z2QD/2d4A/93dAP/e3gD/1+IA/9vnAP/e5wD/0fMA/9L1AP/a/AD/3v8A9+fnAP/g
4AD/4uIA/+PjAP/g5wD/5+cA/+TqAP/o6AD56OwA/+zsAP/u7gD/6fMA/+zxAP/i/AD/7vwA/+/8APX1
9QD/8vIA//PzAP/09AD/9/cA/PD5AP/0/AD/9v8A//j4AP/6+gD/+P8A//7+AP///wBMTEwA/9jhAP/c
4AD/2uUA/9vmAP/S6wD/1OwA/9bsAP/X7QD/1u4A/93qAP/O/wD/2vEA/9/0AP/S/wD/1/8A/9/8AP/c
/wDi4uIA7OzsAP/g4AD/4eEA/+LiAP/j4wD/5OQA/+XlAP/m5gD/5+cA/+TsAP/k7gD17+8A/+joAP/p
6QD/6+sA/+zsAP/t7QD/7u4A/+/vAP/o8gD/6fIA/+/xAP/i+gD/4/oA/+D/AP/k/wD/5v8A/+f/AP/t
/wD/7/8A9fX1AP/w8AD/8fEA//LyAP/z8wD/9fUA//b2AP/39wD/9fkA//T8AP/0/wD/9v8A//f/AP/4
+AD/+voA//v7AP/5/wD/+/8A//z8AP/9/wD//v4A////AEZGRgBJSUkAcKFUA3UM/3UDtfE9IDfvxv91
EP//////ccf/xcngOAC5eTee8pmvmpmvmvKa8pmvIAAAAK+a8pnJ4DgAJAqoAByDOwAMCqgAseA4ABgA
AAABAAAA8pmvmpmvmvKvmvKZmvKZr/KZr5qZr5rymvKZr6+a8pmGAAAAhgAAAAwLqACICqgAh+E4AMBr
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYmV1paWupmZmb/n46O//XN
zf//1dX//9fX///Z2f//2tr//9zc///e3v//4OD//+Hh///k5P//5ub//+fn///p6f//6+v//+3t///u
7v//8PD///Ly///09P///v7/////////////////s7Oz/2ZmZv9hYWH7GBgYyQAAAJIAAAA/AAAACQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM4ODhXYmJi+GZm
Zv/Gp6f//9DQ///R0f//09P//9XV///X1///2dn//9ra///c3P//3t7//+Dg///h4f//5OT//+bm///n
5///6en//+vr///t7f//7u7///Dw///19f///////////////////////////9nZ2f9wcHD/YWFh+xgY
GMkAAACSAAAAPwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR8f
HzVjY2P3cG1t/9mzs///zMz//87O///Q0P//0dH//9PT///V1f//19f//9nZ///a2v//3Nz//97e///g
4P//4eH//+Tk///m5v//5+f//+np///r6///7e3//+7u///7+///////////////////////////////
///i4uL/cHBw/2FhYfsYGBjJAAAAjwAAAC4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAALCwsJV1dXeRmZmb/2bW1///Ozv//zMz//8zM///Ozv//0ND//9HR///T0///1dX//9fX///Z
2f//2tr//9zc///e3v//4OD//+Hh///k5P//5ub//+fn///p6f//6+v//+/v////////////////////
////////////////////////4uLi/3BwcP9hYWH7CQkJvAAAAHkAAAAcAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAHV1dXu2ZmZv/Gqqr//9LS///Q0P//zs7//8zM///MzP//zs7//9DQ///R
0f//09P//9XV///X1///2dn//9ra///c3P//3t7//+Dg///h4f//5OT//+bm///n5///6en///f3////
/////////////////////////////////////////////9nZ2f9mZmb/UlJS7wAAAKwAAABYAAAADAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRUVFlZmZm/5aJif//1dX//9PT///S0v//0ND//87O///M
zP//zMz//87O///Q0P//0dH//9PT///V1f//19f//9nZ///a2v//3Nz//97e///g4P//4eH//+Tk///m
5v//6en///7+//////////////////////////////////////////////////////+zs7P/ZmZm/zQ0
NNsAAACVAAAAKAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAliYmLpcG1t//XR0f//1tb//9XV///T
0///0tL//9DQ///Ozv//zMz//8zM///Ozv//0ND//9HR///T0///1dX//9fX///Z2f//2tr//9zc///e
3v//4OD//+Hh///k5P//8vL/////////////////////////////////////////////////////////
////////g4OD/2FhYfsJCQm3AAAAYAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAFdXV3FmZmb/xq+v///a
2v//2Nj//9bW///V1f//09P//9LS///Q0P//zs7//8zM///MzP//zs7//9DQ///R0f//09P//9XV///X
1///2dn//9ra///c3P//3t7//+Dg///h4f///Pz/////////////////////////////////////////
////////////////////////2dnZ/2ZmZv86OjrfAAAAlwAAACUAAAABAAAAAAAAAAAAAAAAAAAAB2Ji
Yuh5dXX//93d///b2///2tr//9jY///W1v//1dX//9PT///S0v//0ND//87O///MzP//zMz//87O///Q
0P//0dH//9PT///V1f//19f//9nZ///a2v//3Nz//97e///r6///////////////////////////////
/////////////////////////////////////////////4yMjP9hYWH7CQkJtAAAAE8AAAAJAAAAAAAA
AAAAAAAAW1tbWmZmZv+8q6v//9/f///d3f//29v//9ra///Y2P//1tb//9XV///T0///0tL//9DQ///O
zv//zMz//8zM///Ozv//0ND//9Pa///V6v//0PL//9D1///V8///2+3//93j///39///////////////
//////////////////////////////////////////////////////////z8/8/Cwv9mZmb/Li4u0wAA
AIAAAAATAAAAAAAAAAAAAAAAYGBgqWZmZv/12tr//+Hh///f3///3d3//9vb///a2v//2Nj//9bW///V
1f//09P//9LS///Q0P//zs7//8zM///Q0///3vP//93////V////zv///87////U////2////+H////t
/////f/////////////////////////////////////////////////////////19f//39///8/P///M
zP95c3P/UlJS7wAAAKMAAAAkAAAAAQAAAAAAAAAEZWVl8paOjv//4+P//+Li///h4f//39///93d///b
2///2tr//9jY///W1v//1dX//9PT///S0v//0ND//9TX///p/P//5P///93////V////zv///8/0///U
////2////+H////o////7v////3////////////////////////////////////8/P//7Oz//9bW///M
zP//zMz//8zM///MzP+pk5P/ZmZm/wkJCbIAAAA9AAAABgAAAABYWFg4ZmZm/7yvr///5eX//+Pj///i
4v//4eH//9/f///d3f//29v//9ra///Y2P//1tb//9XV///T0///19j///D8///r////5P///9ny///Q
2v//0ND//9HR///T0///3OX//+n////o////7v////T////+////////////////////8vL//9/f///P
z///zMz//8zM///MzP//zMz//8zM///MzP/PrKz/ZmZm/yEhIcYAAABdAAAADAAAAABgYGB3ZmZm/9nI
yP//5+f//+Xl///j4///4uL//+Hh///f3///3d3//9vb///a2v//2Nj//9bW///V1f//7/T///L////r
////3O3//8zM/8+srP+Wh4f/jIGB/4yBgf/Gu7v////////x////7v////T////7/////Pz//+np///S
0v//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP/1xsb/ZmZm/zw8PNsAAABxAAAADwAA
AABfX1+JZmZm///q6v//6Oj//+fn///l5f//4+P//+Li///h4f//39///93d///b2///2tr//9jY///b
2///+v////L////l9P//0ND/n42N/2ZmZv9jY2P2YGBgymZmZvBmZmb/n5+f////////8v////T////7
////0tL//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz/cGxs/0dH
R+UAAACAAAAAEgAAAABjY2PEZmZm///r6///6ur//+jo///n5///5eX//+Pj///i4v//4eH//9/f///d
3f//29v//9ra///s7P//+v////L////a3v/Zt7f/ZmZm/05OTuQcHBw7AAAAA2ZmZhBmZmbAZmZm/8a5
uf//3uL///T////7////4uL//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///M
zP//zMz/jICA/1JSUu0AAACDAAAAEgAAAABjY2PEeXd3///t7f//6+v//+rq///o6P//5+f//+Xl///j
4///4uL//+Hh///f3///3d3//9vb///z8///+v////L////V1f+fj4//ZmZm/woKCq0AAAAeAAAAAAAA
AABmZmYQZmZm/5aGhv//zMz///T////7////7Oz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///M
zP//zMz//8zM///MzP//zMz/jICA/1JSUu0AAACDAAAAEgAAAABjY2PEjIKC///V1f//1NT//9TU///T
0///09P//9PT///S0v//0tL//9HR///R0f//0dH//9DQ///z8///+v///+75///Ozv+pk5P/ZmZm/wAA
AKwAAAA9AAAACgAAAAAAAAAEYGBgy4yAgP//z8////T////7////9PT//9LS///T0///1NT//9XV///W
1v//1tb//9jY///Z2f//2dn//9ra///b2///3Nz/jISE/1JSUu0AAACDAAAAEgAAAABkZGTDcGxs///M
zP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///s7P//+v////L////M
zP+zmZn/ZmZm/xgYGMgAAACIAAAAQwAAACEYGBhEZmZm/5+Njf//0ND///T////7////8PD//9fX///Z
2f//2tr//9zc///e3v//4OD//+Hh///k5P//5ub//+fn///p6f//6+v/jIiI/1JSUu0AAAB/AAAAEgAA
AABkZGSzZmZm///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///i
4v//+v////L////d4v/s3Nz/cHBw/1dXV/MgICDMAAAArRISErJYWFjvZmZm/9mzs///2d3///T////7
////5+f//9XV///X1///2dn//9ra///c3P//3t7//+Dg///h4f//5OT//+bm///n5///6en/cG5u/1JS
UuwAAABqAAAADQAAAABjY2OEZmZm//XGxv//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///M
zP//zMz//8zM///W1v//+v////L////v////////xsbG/3BwcP9mZmb/ZmZm/2ZmZv9mZmb/xqen///M
zP//6PX///T////7////19f//9PT///V1f//19f//9nZ///a2v//3Nz//97e///g4P//4eH//+Tk///m
5v//5+f/ZmZm/0JCQt0AAABVAAAACgAAAABkZGRiZmZm/9mzs///zMz//8zM///MzP//zMz//8zM///M
zP//zMz//8zM///MzP//2dn//+zs////////+/////L////r////7////////+zn5/+pmJj/jIKC/6mW
lv/Zt7f//9DQ///f7f//7v////T////p7f//0ND//9HR///T0///1dX//9fX///Z2f//2tr//9zc///e
3v//4OD//+Hh///k5P/izs7/ZmZm/zc3N9EAAAA6AAAABgAAAABmZmYwZmZm/7OZmf//zMz//8zM///M
zP//zMz//8zM///MzP//z8///+Li///5+f////////////////////////L////r////5P///+T////k
8f//2Nj//9bW///V1f//1uH//973///o////7v////H8///Pz///zs7//9DQ///R0f//09P//9XV///X
1///2dn//9ra///c3P//3t7//+Dg///h4f+8ra3/ZmZm/yQkJLgAAAAeAAAAAAAAAAAAAAAAZmZm8IN5
ef//zMz//8zM///MzP//zMz//9nZ///s7P////////////////////////////////////////z////s
////5P///93////V////zv///87////U////2////+H////o////6/z//9XX///MzP//zMz//87O///Q
0P//0dH//9PT///V1f//19f//9nZ///a2v//3Nz//97e///g4P+WjIz/ZmZm/wAAAHkAAAAQAAAAAAAA
AAAAAAAAZGRkomZmZv/sv7///8/P///i4v//+fn/////////////////////////////////////////
///////////////+////7v///93////V////zv///87////U////2////+H////g7///09X//9DQ///O
zv//zMz//8zM///Ozv//0ND//9HR///T0///1dX//9fX///Z2f//2tr//9zc//XX1/9mZmb/Tk5O5QAA
AEYAAAAHAAAAAAAAAAAAAAAAZmZmUGZmZv+po6P/////////////////////////////////////////
/////////////////////////////////////////+To///a7f//1PD//9H2///W7///2en//9fb///V
1f//09P//9LS///Q0P//zs7//8zM///MzP//zs7//9DQ///R0f//09P//9XV///X1///2dn//9ra/7yo
qP9mZmb/Li4usAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZuBwcHD/9fX1////////////////////
////////////////////////b4eF/wArKP8AKyj/ACso/5mqqf//+Pj//+Li/296eP8AKyj/ACso/yRD
Qf//2tr//9jY/yRDQP8AKyj/ACso/wArKP8AKyj/JEI////MzP//zMz//87O///Q0P//0dH//9PT///V
1f//19f//9nZ/3l1df9dXV31AAAAUQAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZmBmZmb/s7Oz////
//////////////////////////////////+Zqqn/JEhG/////////////////wArKP/FwMD//+Pj/yRE
Qv//4eH//9/f/294dv9vd3X//9ra///Y2P9JW1n//9XV///T0///0tL/JEI////Ozv//zMz//8zM///O
zv//0ND//9HR///T0///1dX/vKWl/2ZmZv82Nja1AAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABmZmbgZmZm/+Li4v////////////////////////////////9JZ2X/xc7O///////////////////8
/P//5+f/mZqZ/297ef//4uL//+Hh///f3/9JXVv//9vb///a2v9JXFr//9bW/yRDQP//09P//9LS///Q
0P//zs7//8zM///MzP//zs7//9DQ///R0f/1zc3/cG1t/15eXvMAAABFAAAABgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABmZmZAZmZm/4ODg/////////////////////////////////8kSEb/xc7O////
///////////////z8///6Oj/mZua/297ev//4+P//+Li///h4f9JXlz//93d///b2/8kQ0H/ACso/wAr
KP//1dX//9PT///S0v//0ND//87O///MzP//zMz//87O///Q0P+Wh4f/ZmZm/y8vL4wAAAATAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmj2ZmZv+fn5//////////////////////////
//9JZ2X/xc7O//////////////7+///s7P//6ur/mZyb/298e///5eX//+Pj///i4v9JX1z//9/f///d
3f9JXVv//9ra/yRDQP//1tb//9XV///T0///0tL//9DQ///Ozv//zMz//8zM/7yhof9mZmb/SUlJxwAA
ACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZs9mZmb/vLy8////
//////////////////+Zqqn/JEhG////////////b4SC/wArKP/Fv77/mZ2c/299e///5+f//+Xl///j
4/9JX13//+Hh///f3/9JXVv//9vb///a2v//2Nj/SVtZ///V1f//09P//9LS///Q0P//zs7/xqam/2Zm
Zv9cXFznAAAALQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm
ZhBmZmbQZmZm/7y8vP//////////////////////b4eF/wArKP8AKyj/JEdE/0ljYP/FwMD/ACso/wAr
KP8kRUP/mZua/wArKP8AKyj/b3p4/yREQv8AKyj/ACso/wArKP8AKyj/SVxa///W1v//1dX//9PT///S
0v/GqKj/ZmZm/1xcXOccHBw6AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABmZmYQZmZm0GZmZv+fn5///////////////////////////////Pz///Ly///x
8f//7+///+3t///r6///6ur//+jo///n5///5eX//+Pj///i4v//4eH//9/f///d3f//29v//9ra///Y
2P//1tb//9XV/7Odnf9mZmb/XFxc5xwcHDoAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmEGZmZs9mZmb/g4OD/+Li4v//////////////
////+fn///T0///y8v//8fH//+/v///t7f//6+v//+rq///o6P//5+f//+Xl///j4///4uL//+Hh///f
3///3d3//9vb///a2v/sysr/jIKC/2ZmZv9eXl7iIyMjLwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmaPZmZm/2Zm
Zv+zs7P/9fX1///+/v//9/f///b2///09P//8vL///Hx///v7///7e3//+vr///q6v//6Oj//+fn///l
5f//4+P//+Li///h4f//39//9dXV/7Ohof9wbW3/ZmZm/1VVVawAAAATAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAZmZmQGZmZuBmZmb/cHBw/6moqP/s5ub///f3///29v//9PT///Ly///x8f//7+///+3t///r
6///6ur//+jo///n5///5eX//+Pj/+zS0v+zo6P/cG5u/2ZmZv9fX1/eTU1NVQAAAAYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmZgZmZm4GZmZv9mZmb/g4GB/6mlpf/Pycn/7OLi///y
8v//8fH//+/v///t7f//6+v/7NnZ/9nIyP+zpqb/g35+/2ZmZv9mZmb/YmJi51dXV3EAAAAJAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZkBlZWWhZWVl4WZm
Zv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/Y2Nj5WBgYKhXV1dLAAAABgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGZmZjBkZGRiY2NjhGNjY6RkZGTDY2NjxGNjY8RiYmKmYWFhh19fX2dZWVk3AAAABAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//wAH//wAA//8AAD//AAD/+AAAD/8AAP/wAAAH/wAA/8AAAAH/
AAD/gAAAAP8AAP8AAAAAfwAA/gAAAAA/AAD8AAAAAB8AAPgAAAAADwAA+AAAAAAPAADwAAAAAAcAAPAA
AAAAAwAA4AAAAAADAADgAAAAAAEAAMAAAAAAAQAAwAAAAAABAADAAAAAAAAAAIAAAAAAAAAAgAAAAAAA
AACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAGAAAAAAIAAAIAAAAAAgAAAAAAAAACAAAAAAAAAAIAA
AAAAAAAAgAAAAAAAAACAAAAAAAEAAMAAAAAAAQAAwAAAAAABAADAAAAAAAMAAOAAAAAAAwAA4AAAAAAH
AADwAAAAAAcAAPAAAAAADwAA+AAAAAAfAAD8AAAAAB8AAPwAAAAAPwAA/gAAAAB/AAD/AAAAAP8AAP/A
AAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA///AA///AAD///////8AACgAAAAgAAAAQAAAAAEA
IAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAACQAAABkAAAA6AAAAagAAAI8AAACbAAAAuQAAALkAAACbAAAAjwAAAGwAAABCAAAAGwAA
AAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAABgAAAB4AAABRHh4eoj4+PtRSUlLsUlJS7WZmZv9mZmb/UlJS71JSUu07OzvcISEhxgAA
AKoAAACPAAAAXgAAACcAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAABAAAABFNjY2tV1dXfVwbm7/n5WV/7yurv/ZyMj/2crK/9nMzP/Zzs7/vLW1/5+c
nP9wb2//XFxc9zs7O94JCQm1AAAAjAAAAEsAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAZMjIyg15eXvN5dHT/xq+v///e3v//4OD//+Pj///m5v//6Oj//+zs///u
7v//8fH///Pz///29v/PzMz/jIyM/1xcXPcnJyfRAAAApAAAAGUAAAAcAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAGUJCQqxwbW3/vKOj///W1v//2dn//9vb///e3v//4OD//+Pj///m
5v//6Oj//+zs///u7v//8fH///Pz///+/v//////z8/P/3BwcP9AQEDjAAAArAAAAGsAAAAcAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBUVFTBcGxs/+K6uv//0ND//9PT///W1v//2dn//9vb///e
3v//4OD//+Pj///m5v//6Oj//+zs///u7v//9fX/////////////////7Ozs/4ODg/9GRkbnAAAArAAA
AGUAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGTExMl3Btbf/iu7v//8zM///Ozv//0ND//9PT///W
1v//2dn//9vb///e3v//4OD//+Pj///m5v//6Oj//+zs///7+///////////////////////9fX1/4OD
g/9AQEDjAAAApAAAAEsAAAAJAAAAAAAAAAAAAAAAAAAAAExMTFZmZmb/4r+////R0f//zs7//8zM///O
zv//0ND//9PT///W1v//2dn//9vb///e3v//4OD//+Pj///m5v//7e3/////////////////////////
////////7Ozs/3BwcP8nJyfRAAAAjAAAACcAAAABAAAAAAAAAAAAAAAJYmJi6bympv//1dX//9PT///R
0f//zs7//8zM///Ozv//0ND//9PT///W1v//2dn//9vb///e3v//4OD//+Pj///19f//////////////
////////////////////////z8/P/1xcXPcJCQm1AAAAXgAAAAwAAAAAAAAAAFhYWG95dXX//9vb///Z
2f//1dX//9PT///R0f//zs7//8zM///Ozv//0ND//9PT///W1v//2dn//9vb///e3v//5OT/////////
////////////////////////////////////////jIyM/zs7O94AAACPAAAAGQAAAAAAAAAEYWFh2cay
sv//3d3//9vb///Z2f//1dX//9PT///R0f//zs7//8zM///Ozv//0dP//9Th///S6///1uz//9vm///v
8f/////////////////////////////////////////////////Zz8//XFxc9wAAAKkAAAA6AAAAAFhY
WDhwbm7/9dra///g4P//3d3//9vb///Z2f//1dX//9PT///R0f//zs7//9bc///f/P//1////87////S
////3P///+f////5///////////////////////////////8/P//6en//9LS///MzP95c3P/GRkZwQAA
AGoAAAAAX19feJaOjv//5eX//+Li///g4P//3d3//9vb///Z2f//1dX//9PT///c4P//7f///+D////U
7P//0N///9Pg///f9P//5v///+/////9///////////////v7///39///8zM///MzP//zMz//8zM/6mT
k/87OzvcAAAAjwAAAABiYmKms6en///n5///5eX//+Li///g4P//3d3//9vb///Z2f//1dX///T8///t
////1uH/s5mZ/3lzc/+Denr/s7Cw///3////7/////v////m5v//0tL//8zM///MzP//zMz//8zM///M
zP//zMz/xqam/1JSUu0AAACVAAAAAGNjY8TZysr//+np///n5///5eX//+Li///g4P//3d3//9vb///l
5f//9v///+Tu/8apqf9iYmL6Ojo6jlpaWltmZmbws6ys///p8v//+////9zc///MzP//zMz//8zM///M
zP//zMz//8zM///MzP/Zs7P/UlJS7QAAAJUAAAAAY2NjxNnGxv//4+P//+Li///g4P//3t7//93d///b
2///2dn//+vr///2////3OD/jIGB/zAwMM4AAABbAAAAElpaWluMgID//9jc///7////5ub//8zM///M
zP//zMz//8zM///MzP//zMz//8zM/9mzs/9SUlLtAAAAlQAAAABjY2PE2bOz///MzP//zMz//8zM///M
zP//zMz//8zM///MzP//5ub///b////X3P+MgID/Li4u1gAAAJsAAABbOjo6joyAgP//29////v////r
6///2dn//9vb///e3v//4OD//+Pj///m5v//6Oj/2crK/1JSUu0AAACUAAAAAGRkZMPPrKz//8zM///M
zP//zMz//8zM///MzP//zMz//8zM///c3P//9v///+jy/8/Gxv9hYWH7Li4u1jAwMM5iYmL6vJ+f///k
7P//+////+Hh///W1v//2dn//9vb///e3v//4OD//+Pj///m5v/ZyMj/UlJS7QAAAIYAAAAAZGRko7OZ
mf//zMz//8zM///MzP//zMz/b3Fv/wArKP8AKyj/ACso/5mlqf//7f////T//8/Pz/+MgoL/jIKC/8+w
sP//2OH//+///yRHRf8AKyj/ACso/wArKP8AKyj/JENB///e3v//4OD//+Pj/7yurv9NTU3nAAAAYQAA
AABkZGRyjICA///MzP//zMz//8zM/5mNjP8kREH///Ly////////////ACso/8XAzv//4P///+L6///U
5///1OX//9rx///m////7////9rc/0lZV///0ND//9PT///W1v8kQ0D//9vb///e3v//4OD/lo2N/zg4
OM4AAAA5AAAAAGZmZiBmZmb/9cbG///W1v//7Oz/SWZk/8XOzv////////////////////////n////k
//9vdYX/ACso/wArKP8kQ0b//+P6///Y3f//zs7/SVlW///Ozv8kQj///9PT///W1v//2dn//9vb///e
3v9wbm7/Hx8fnQAAABgAAAAAAAAAAGVlZdGzrKz///////////8kSEb/xc7O////////////////////
//////////j4/yREQ///1u7//9ft/293ev9vdXP//9PT///R0f8kQj//ACso/wArKP//0ND//9PT///W
1v//2dn/xq+v/1hYWO8AAABPAAAACQAAAAAAAAAAZmZmYHBwcP/19fX//////0lnZf/Fzs7/////////
//////////////////+ZoJ7/b3p4///g4P//3d3//9vb/0lcWv//1dX//9PT/0laWP//zs7/JEE////O
zv//0ND//9PT///W1v95dHT/Nzc3sQAAABwAAAAAAAAAAAAAAAAAAAAAZmZm0Kmpqf//////maqp/yRI
Rv///////////2+Hhf8AKyj/xczL/5mbmv9ve3r//+Li///g4P//3d3/SV1b///Z2f//1dX/SVtY///R
0f//zs7//8zM/0lZV///0ND/s5yc/1lZWe0AAAA9AAAABAAAAAAAAAAAAAAAAAAAAABmZmYwZmZm/8/P
z///////b4eF/wArKP8AKyj/JEhG/0lnZf/Fx8b/mZ2b/298e///5eX//+Li///g4P9JXVv//9vb/yRD
QP8AKyj/ACso/wArKP8AKyj/SVlW/+K6uv9mZmb/KioqdAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABmZmZgcHBw/+Li4v/////////////////////////////w8P+Znp3/b318///n5///5eX//+Li/0le
XP//3d3//9vb///Z2f//1dX//9PT///R0f/iu7v/cGxs/z8/P5wAAAAVAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABmZmafcHBw/8/Pz///////////////////+vr///Hx/wArKP8AKyj/JEVD/5mb
mv8AKyj/ACso/295eP//3d3//9vb///Z2f//1dX/4r+//3Btbf9NTU2qAAAAFQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmZgZmZm/6mpqf/19fX////////39///8/P///Hx///v
7///6+v//+np///n5///5eX//+Li///g4P//3d3//9vb/7Ofn/9mZmb/SUlJhgAAAA0AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmYwZmZm0HBwcP+zsrL/9e/v///2
9v//8/P///Hx///v7///6+v//+np///n5///5eX/9dra/8aysv95dXX/X19f3kVFRUcAAAAEAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmYGVl
ZdFmZmb/jIqK/7Otrf/Px8f/2c7O/9nMzP/PwsL/s6en/4yGhv9mZmb/YmJi2FlZWW4AAAAJAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGZmZiBkZGRyZGRko2RkZMNjY2PEY2NjxGNjY8RiYmKmX19feFBQUCkAAAADAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AAf/8AAD/+AAAf/AAAD/gA
AAfwAAAD4AAAAeAAAADAAAAAwAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAA
AACAAAAAwAAAAMAAAAHgAAAB4AAAA/AAAAf4AAAP/AAAH/4AAD//gAD//+AD//////8oAAAAEAAAACAA
AAABACAAAAAAAEAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABwAAABMAAAAeQAA
AJoAAACkAAAAmgAAAHkAAABMAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABgAAADY4ODiwY19f5ZKK
ivuzqan/ko2N+2FfX+suLi7TAAAArAAAAIIAAAA8AAAACQAAAAAAAAAAAAAAAykpKU9waWnqz7S0///d
3f//4uL//+jo///u7v//8/P/z8/P/3V1dfMZGRnGAAAAkgAAADwAAAAEAAAAADo6OjiBd3f39cfH///S
0v//2Nj//93d///i4v//6Oj///T0///////19fX/m5ub+xkZGcYAAACCAAAAHAAAAAl2cHDd9c3N///P
z///zc3//9LS///Y2P//3d3//+Li///6+v////////////X19f91dXXzAAAArAAAAExcXFxqxrGx///Z
2f//1NT//8/P///Nzf//1Nv//9fi///k6v//////////////////////0szM/y4uLtMAAAB3b25utv/j
4/9udHT/AS4v/250dP//3uf/bnR0/wEuL/9udHT///j//wEuL/8BLi//AS4v/8yZmf9bU1PqAAAAlJCK
iuL/5+f/AS4v///e3v8BLi///+/8/wEuL///4vz/AS4v//zw+f8BLi//zJmZ/8yZmf/MmZn/fGxs9wAA
AKGejIz/6b6+/wEuL//zxcX/+dbW///p8/8BLi///+nz/wEuL//56Oz/AS4v/wEuL//mvb3/5sDA/6aU
lP8AAACUh3d30tuoqP8BLi//6re3/wEuL///7vz/AS4v///S9f8BLi////T8/wEuL///2Nj//93d///i
4v+Efn72AAAAd29qarHVoqL/bnR0/wEuL/9udHT///b//wEuL///0vX/AS4v///g5/8BLi//AS4v/wEu
L///3d3/WVdX5AAAAExmZmZQw7+/////////////////////////7PH//9vn///Z3v//1NT//8/P///N
zf//0tL/xq2t/zk5OawAAAAbAAAAAHNzc8D19fX//////////////v7//+fn///j4///3t7//9nZ///U
1P//z8//9cfH/2xlZeMAAAA0AAAAAwAAAABmZmYghYWF7/X19f////////j4///s7P//5+f//+Pj///e
3v//2dn/9c3N/4F3d/cqKipNAAAABgAAAAAAAAAAAAAAAGZmZiBzc3PAxsbG///39///8vL//+zs///n
5///4+P/xrGx/3Vvb9A8PDw2AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZlBzc3Oik5CQ0oyJ
if+RjIzUcG5upltbW1oAAAAHAAAAAAAAAAAAAAAAAAAAAOADAADAAQAAgAAAAIAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAQAAwAMAAPAPAAA=
</value>
</data>
<data name="$this.ToolTip" xml:space="preserve">
<value />
</data>
</root>

View File

@@ -27,15 +27,14 @@ namespace JDP {
System.Windows.Forms.Button btnCancel;
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSettings));
this.grpGeneral = new System.Windows.Forms.GroupBox();
this.labelLanguage = new System.Windows.Forms.Label();
this.comboLanguage = new System.Windows.Forms.ComboBox();
this.chkAllowMultipleInstances = new System.Windows.Forms.CheckBox();
this.chkReducePriority = new System.Windows.Forms.CheckBox();
this.chkTruncateExtra4206Samples = new System.Windows.Forms.CheckBox();
this.chkCreateCUEFileWhenEmbedded = new System.Windows.Forms.CheckBox();
this.chkCreateM3U = new System.Windows.Forms.CheckBox();
this.chkAutoCorrectFilenames = new System.Windows.Forms.CheckBox();
this.chkPreserveHTOA = new System.Windows.Forms.CheckBox();
this.labelLanguage = new System.Windows.Forms.Label();
this.comboLanguage = new System.Windows.Forms.ComboBox();
this.btnOK = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.chkWriteArLogOnConvert = new System.Windows.Forms.CheckBox();
@@ -55,19 +54,29 @@ namespace JDP {
this.chkHDCD24bit = new System.Windows.Forms.CheckBox();
this.chkHDCDLW16 = new System.Windows.Forms.CheckBox();
this.chkEmbedLog = new System.Windows.Forms.CheckBox();
this.grpAudioFilenames = new System.Windows.Forms.GroupBox();
this.chkKeepOriginalFilenames = new System.Windows.Forms.CheckBox();
this.txtTrackFilenameFormat = new System.Windows.Forms.TextBox();
this.txtSingleFilenameFormat = new System.Windows.Forms.TextBox();
this.textBoxEncoderModes = new System.Windows.Forms.TextBox();
this.checkBoxEncoderLossless = new System.Windows.Forms.CheckBox();
this.textBoxEncoderPath = new System.Windows.Forms.TextBox();
this.textBoxEncoderParameters = new System.Windows.Forms.TextBox();
this.rbGapsLeftOut = new System.Windows.Forms.RadioButton();
this.rbGapsPrepended = new System.Windows.Forms.RadioButton();
this.rbGapsAppended = new System.Windows.Forms.RadioButton();
this.rbGapsPlusHTOA = new System.Windows.Forms.RadioButton();
this.grpAudioFilenames = new System.Windows.Forms.GroupBox();
this.txtSpecialExceptions = new System.Windows.Forms.TextBox();
this.chkRemoveSpecial = new System.Windows.Forms.CheckBox();
this.chkReplaceSpaces = new System.Windows.Forms.CheckBox();
this.txtTrackFilenameFormat = new System.Windows.Forms.TextBox();
this.lblTrackFilenameFormat = new System.Windows.Forms.Label();
this.lblSingleFilenameFormat = new System.Windows.Forms.Label();
this.txtSingleFilenameFormat = new System.Windows.Forms.TextBox();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.groupBoxGaps = new System.Windows.Forms.GroupBox();
this.tabPage6 = new System.Windows.Forms.TabPage();
this.groupBoxAlbumArt = new System.Windows.Forms.GroupBox();
this.checkBoxExtractAlbumArt = new System.Windows.Forms.CheckBox();
this.labelAlbumArtMaximumResolution = new System.Windows.Forms.Label();
this.numericUpDownMaxResolution = new System.Windows.Forms.NumericUpDown();
this.checkBoxEmbedAlbumArt = new System.Windows.Forms.CheckBox();
@@ -110,31 +119,18 @@ namespace JDP {
this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
this.tabPage10 = new System.Windows.Forms.TabPage();
this.groupBoxExternalEncoder = new System.Windows.Forms.GroupBox();
this.checkBoxEncoderLossless = new System.Windows.Forms.CheckBox();
this.textBoxEncoderPath = new System.Windows.Forms.TextBox();
this.textBoxEncoderParameters = new System.Windows.Forms.TextBox();
this.labelEncoderModes = new System.Windows.Forms.Label();
this.labelEncoderPath = new System.Windows.Forms.Label();
this.labelEncoderParameters = new System.Windows.Forms.Label();
this.comboBoxEncoderExtension = new System.Windows.Forms.ComboBox();
this.listViewEncoders = new System.Windows.Forms.ListView();
this.columnHeader3 = new System.Windows.Forms.ColumnHeader();
this.groupBoxLibMAC_SDK = new System.Windows.Forms.GroupBox();
this.rbAPEinsane = new System.Windows.Forms.RadioButton();
this.rbAPEfast = new System.Windows.Forms.RadioButton();
this.rbAPEextrahigh = new System.Windows.Forms.RadioButton();
this.rbAPEnormal = new System.Windows.Forms.RadioButton();
this.rbAPEhigh = new System.Windows.Forms.RadioButton();
this.groupBoxLibWavpack = new System.Windows.Forms.GroupBox();
this.chkWVStoreMD5 = new System.Windows.Forms.CheckBox();
this.rbWVFast = new System.Windows.Forms.RadioButton();
this.numWVExtraMode = new System.Windows.Forms.NumericUpDown();
this.rbWVHigh = new System.Windows.Forms.RadioButton();
this.rbWVVeryHigh = new System.Windows.Forms.RadioButton();
this.chkWVExtraMode = new System.Windows.Forms.CheckBox();
this.rbWVNormal = new System.Windows.Forms.RadioButton();
this.groupBoxLibFLAC = new System.Windows.Forms.GroupBox();
this.lblFLACCompressionLevel = new System.Windows.Forms.Label();
this.numericFLACCompressionLevel = new System.Windows.Forms.NumericUpDown();
this.chkFLACVerify = new System.Windows.Forms.CheckBox();
this.labelEncoderExtension = new System.Windows.Forms.Label();
this.tabPage11 = new System.Windows.Forms.TabPage();
@@ -164,7 +160,7 @@ namespace JDP {
this.labelFormatDecoder = new System.Windows.Forms.Label();
this.labelFormatEncoder = new System.Windows.Forms.Label();
this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
this.checkBoxExtractAlbumArt = new System.Windows.Forms.CheckBox();
this.checkBoxCheckForUpdates = new System.Windows.Forms.CheckBox();
btnCancel = new System.Windows.Forms.Button();
this.grpGeneral.SuspendLayout();
this.groupBox1.SuspendLayout();
@@ -175,6 +171,7 @@ namespace JDP {
this.grpAudioFilenames.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.groupBoxGaps.SuspendLayout();
this.tabPage6.SuspendLayout();
this.groupBoxAlbumArt.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxResolution)).BeginInit();
@@ -188,11 +185,9 @@ namespace JDP {
this.groupBoxFormat.SuspendLayout();
this.tabPage10.SuspendLayout();
this.groupBoxExternalEncoder.SuspendLayout();
this.groupBoxLibMAC_SDK.SuspendLayout();
this.groupBoxLibWavpack.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numWVExtraMode)).BeginInit();
this.groupBoxLibFLAC.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericFLACCompressionLevel)).BeginInit();
this.tabPage11.SuspendLayout();
this.groupBoxExternalDecoder.SuspendLayout();
this.tabPage4.SuspendLayout();
@@ -212,42 +207,29 @@ namespace JDP {
//
// grpGeneral
//
this.grpGeneral.Controls.Add(this.labelLanguage);
this.grpGeneral.Controls.Add(this.comboLanguage);
this.grpGeneral.Controls.Add(this.checkBoxCheckForUpdates);
this.grpGeneral.Controls.Add(this.chkAllowMultipleInstances);
this.grpGeneral.Controls.Add(this.chkReducePriority);
this.grpGeneral.Controls.Add(this.chkTruncateExtra4206Samples);
this.grpGeneral.Controls.Add(this.chkCreateCUEFileWhenEmbedded);
this.grpGeneral.Controls.Add(this.chkCreateM3U);
this.grpGeneral.Controls.Add(this.chkAutoCorrectFilenames);
this.grpGeneral.Controls.Add(this.chkPreserveHTOA);
resources.ApplyResources(this.grpGeneral, "grpGeneral");
this.grpGeneral.Name = "grpGeneral";
this.grpGeneral.TabStop = false;
//
// labelLanguage
//
resources.ApplyResources(this.labelLanguage, "labelLanguage");
this.labelLanguage.Name = "labelLanguage";
//
// comboLanguage
//
this.comboLanguage.DisplayMember = "EnglishName";
this.comboLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboLanguage.FormattingEnabled = true;
resources.ApplyResources(this.comboLanguage, "comboLanguage");
this.comboLanguage.Name = "comboLanguage";
//
// chkAllowMultipleInstances
//
resources.ApplyResources(this.chkAllowMultipleInstances, "chkAllowMultipleInstances");
this.chkAllowMultipleInstances.Name = "chkAllowMultipleInstances";
this.toolTip1.SetToolTip(this.chkAllowMultipleInstances, resources.GetString("chkAllowMultipleInstances.ToolTip"));
this.chkAllowMultipleInstances.UseVisualStyleBackColor = true;
//
// chkReducePriority
//
resources.ApplyResources(this.chkReducePriority, "chkReducePriority");
this.chkReducePriority.Name = "chkReducePriority";
this.toolTip1.SetToolTip(this.chkReducePriority, resources.GetString("chkReducePriority.ToolTip"));
this.chkReducePriority.UseVisualStyleBackColor = true;
//
// chkTruncateExtra4206Samples
@@ -261,12 +243,14 @@ namespace JDP {
//
resources.ApplyResources(this.chkCreateCUEFileWhenEmbedded, "chkCreateCUEFileWhenEmbedded");
this.chkCreateCUEFileWhenEmbedded.Name = "chkCreateCUEFileWhenEmbedded";
this.toolTip1.SetToolTip(this.chkCreateCUEFileWhenEmbedded, resources.GetString("chkCreateCUEFileWhenEmbedded.ToolTip"));
this.chkCreateCUEFileWhenEmbedded.UseVisualStyleBackColor = true;
//
// chkCreateM3U
//
resources.ApplyResources(this.chkCreateM3U, "chkCreateM3U");
this.chkCreateM3U.Name = "chkCreateM3U";
this.toolTip1.SetToolTip(this.chkCreateM3U, resources.GetString("chkCreateM3U.ToolTip"));
this.chkCreateM3U.UseVisualStyleBackColor = true;
//
// chkAutoCorrectFilenames
@@ -276,11 +260,19 @@ namespace JDP {
this.toolTip1.SetToolTip(this.chkAutoCorrectFilenames, resources.GetString("chkAutoCorrectFilenames.ToolTip"));
this.chkAutoCorrectFilenames.UseVisualStyleBackColor = true;
//
// chkPreserveHTOA
// labelLanguage
//
resources.ApplyResources(this.chkPreserveHTOA, "chkPreserveHTOA");
this.chkPreserveHTOA.Name = "chkPreserveHTOA";
this.chkPreserveHTOA.UseVisualStyleBackColor = true;
resources.ApplyResources(this.labelLanguage, "labelLanguage");
this.labelLanguage.Name = "labelLanguage";
//
// comboLanguage
//
this.comboLanguage.DisplayMember = "EnglishName";
this.comboLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboLanguage.FormattingEnabled = true;
resources.ApplyResources(this.comboLanguage, "comboLanguage");
this.comboLanguage.Name = "comboLanguage";
this.toolTip1.SetToolTip(this.comboLanguage, resources.GetString("comboLanguage.ToolTip"));
//
// btnOK
//
@@ -460,6 +452,81 @@ namespace JDP {
this.toolTip1.SetToolTip(this.chkEmbedLog, resources.GetString("chkEmbedLog.ToolTip"));
this.chkEmbedLog.UseVisualStyleBackColor = true;
//
// chkKeepOriginalFilenames
//
resources.ApplyResources(this.chkKeepOriginalFilenames, "chkKeepOriginalFilenames");
this.chkKeepOriginalFilenames.Checked = true;
this.chkKeepOriginalFilenames.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkKeepOriginalFilenames.Name = "chkKeepOriginalFilenames";
this.toolTip1.SetToolTip(this.chkKeepOriginalFilenames, resources.GetString("chkKeepOriginalFilenames.ToolTip"));
this.chkKeepOriginalFilenames.UseVisualStyleBackColor = true;
//
// txtTrackFilenameFormat
//
resources.ApplyResources(this.txtTrackFilenameFormat, "txtTrackFilenameFormat");
this.txtTrackFilenameFormat.Name = "txtTrackFilenameFormat";
this.toolTip1.SetToolTip(this.txtTrackFilenameFormat, resources.GetString("txtTrackFilenameFormat.ToolTip"));
//
// txtSingleFilenameFormat
//
resources.ApplyResources(this.txtSingleFilenameFormat, "txtSingleFilenameFormat");
this.txtSingleFilenameFormat.Name = "txtSingleFilenameFormat";
this.toolTip1.SetToolTip(this.txtSingleFilenameFormat, resources.GetString("txtSingleFilenameFormat.ToolTip"));
//
// textBoxEncoderModes
//
resources.ApplyResources(this.textBoxEncoderModes, "textBoxEncoderModes");
this.textBoxEncoderModes.Name = "textBoxEncoderModes";
this.toolTip1.SetToolTip(this.textBoxEncoderModes, resources.GetString("textBoxEncoderModes.ToolTip"));
//
// checkBoxEncoderLossless
//
resources.ApplyResources(this.checkBoxEncoderLossless, "checkBoxEncoderLossless");
this.checkBoxEncoderLossless.Name = "checkBoxEncoderLossless";
this.toolTip1.SetToolTip(this.checkBoxEncoderLossless, resources.GetString("checkBoxEncoderLossless.ToolTip"));
this.checkBoxEncoderLossless.UseVisualStyleBackColor = true;
//
// textBoxEncoderPath
//
resources.ApplyResources(this.textBoxEncoderPath, "textBoxEncoderPath");
this.textBoxEncoderPath.Name = "textBoxEncoderPath";
this.toolTip1.SetToolTip(this.textBoxEncoderPath, resources.GetString("textBoxEncoderPath.ToolTip"));
//
// textBoxEncoderParameters
//
resources.ApplyResources(this.textBoxEncoderParameters, "textBoxEncoderParameters");
this.textBoxEncoderParameters.Name = "textBoxEncoderParameters";
this.toolTip1.SetToolTip(this.textBoxEncoderParameters, resources.GetString("textBoxEncoderParameters.ToolTip"));
//
// rbGapsLeftOut
//
resources.ApplyResources(this.rbGapsLeftOut, "rbGapsLeftOut");
this.rbGapsLeftOut.Name = "rbGapsLeftOut";
this.toolTip1.SetToolTip(this.rbGapsLeftOut, resources.GetString("rbGapsLeftOut.ToolTip"));
this.rbGapsLeftOut.UseVisualStyleBackColor = true;
//
// rbGapsPrepended
//
resources.ApplyResources(this.rbGapsPrepended, "rbGapsPrepended");
this.rbGapsPrepended.Name = "rbGapsPrepended";
this.toolTip1.SetToolTip(this.rbGapsPrepended, resources.GetString("rbGapsPrepended.ToolTip"));
this.rbGapsPrepended.UseVisualStyleBackColor = true;
//
// rbGapsAppended
//
resources.ApplyResources(this.rbGapsAppended, "rbGapsAppended");
this.rbGapsAppended.Name = "rbGapsAppended";
this.toolTip1.SetToolTip(this.rbGapsAppended, resources.GetString("rbGapsAppended.ToolTip"));
this.rbGapsAppended.UseVisualStyleBackColor = true;
//
// rbGapsPlusHTOA
//
resources.ApplyResources(this.rbGapsPlusHTOA, "rbGapsPlusHTOA");
this.rbGapsPlusHTOA.Name = "rbGapsPlusHTOA";
this.rbGapsPlusHTOA.TabStop = true;
this.toolTip1.SetToolTip(this.rbGapsPlusHTOA, resources.GetString("rbGapsPlusHTOA.ToolTip"));
this.rbGapsPlusHTOA.UseVisualStyleBackColor = true;
//
// grpAudioFilenames
//
this.grpAudioFilenames.Controls.Add(this.chkFilenamesANSISafe);
@@ -475,14 +542,6 @@ namespace JDP {
this.grpAudioFilenames.Name = "grpAudioFilenames";
this.grpAudioFilenames.TabStop = false;
//
// chkKeepOriginalFilenames
//
resources.ApplyResources(this.chkKeepOriginalFilenames, "chkKeepOriginalFilenames");
this.chkKeepOriginalFilenames.Checked = true;
this.chkKeepOriginalFilenames.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkKeepOriginalFilenames.Name = "chkKeepOriginalFilenames";
this.chkKeepOriginalFilenames.UseVisualStyleBackColor = true;
//
// txtSpecialExceptions
//
resources.ApplyResources(this.txtSpecialExceptions, "txtSpecialExceptions");
@@ -505,11 +564,6 @@ namespace JDP {
this.chkReplaceSpaces.Name = "chkReplaceSpaces";
this.chkReplaceSpaces.UseVisualStyleBackColor = true;
//
// txtTrackFilenameFormat
//
resources.ApplyResources(this.txtTrackFilenameFormat, "txtTrackFilenameFormat");
this.txtTrackFilenameFormat.Name = "txtTrackFilenameFormat";
//
// lblTrackFilenameFormat
//
resources.ApplyResources(this.lblTrackFilenameFormat, "lblTrackFilenameFormat");
@@ -520,11 +574,6 @@ namespace JDP {
resources.ApplyResources(this.lblSingleFilenameFormat, "lblSingleFilenameFormat");
this.lblSingleFilenameFormat.Name = "lblSingleFilenameFormat";
//
// txtSingleFilenameFormat
//
resources.ApplyResources(this.txtSingleFilenameFormat, "txtSingleFilenameFormat");
this.txtSingleFilenameFormat.Name = "txtSingleFilenameFormat";
//
// tabControl1
//
resources.ApplyResources(this.tabControl1, "tabControl1");
@@ -545,11 +594,24 @@ namespace JDP {
// tabPage1
//
this.tabPage1.BackColor = System.Drawing.SystemColors.Control;
this.tabPage1.Controls.Add(this.labelLanguage);
this.tabPage1.Controls.Add(this.comboLanguage);
this.tabPage1.Controls.Add(this.groupBoxGaps);
this.tabPage1.Controls.Add(this.grpGeneral);
this.tabPage1.Controls.Add(this.grpAudioFilenames);
resources.ApplyResources(this.tabPage1, "tabPage1");
this.tabPage1.Name = "tabPage1";
//
// groupBoxGaps
//
this.groupBoxGaps.Controls.Add(this.rbGapsPlusHTOA);
this.groupBoxGaps.Controls.Add(this.rbGapsAppended);
this.groupBoxGaps.Controls.Add(this.rbGapsLeftOut);
this.groupBoxGaps.Controls.Add(this.rbGapsPrepended);
resources.ApplyResources(this.groupBoxGaps, "groupBoxGaps");
this.groupBoxGaps.Name = "groupBoxGaps";
this.groupBoxGaps.TabStop = false;
//
// tabPage6
//
this.tabPage6.BackColor = System.Drawing.SystemColors.Control;
@@ -569,6 +631,12 @@ namespace JDP {
this.groupBoxAlbumArt.Name = "groupBoxAlbumArt";
this.groupBoxAlbumArt.TabStop = false;
//
// checkBoxExtractAlbumArt
//
resources.ApplyResources(this.checkBoxExtractAlbumArt, "checkBoxExtractAlbumArt");
this.checkBoxExtractAlbumArt.Name = "checkBoxExtractAlbumArt";
this.checkBoxExtractAlbumArt.UseVisualStyleBackColor = true;
//
// labelAlbumArtMaximumResolution
//
resources.ApplyResources(this.labelAlbumArtMaximumResolution, "labelAlbumArtMaximumResolution");
@@ -895,6 +963,8 @@ namespace JDP {
// groupBoxExternalEncoder
//
resources.ApplyResources(this.groupBoxExternalEncoder, "groupBoxExternalEncoder");
this.groupBoxExternalEncoder.Controls.Add(this.labelEncoderModes);
this.groupBoxExternalEncoder.Controls.Add(this.textBoxEncoderModes);
this.groupBoxExternalEncoder.Controls.Add(this.checkBoxEncoderLossless);
this.groupBoxExternalEncoder.Controls.Add(this.textBoxEncoderPath);
this.groupBoxExternalEncoder.Controls.Add(this.textBoxEncoderParameters);
@@ -903,21 +973,10 @@ namespace JDP {
this.groupBoxExternalEncoder.Name = "groupBoxExternalEncoder";
this.groupBoxExternalEncoder.TabStop = false;
//
// checkBoxEncoderLossless
// labelEncoderModes
//
resources.ApplyResources(this.checkBoxEncoderLossless, "checkBoxEncoderLossless");
this.checkBoxEncoderLossless.Name = "checkBoxEncoderLossless";
this.checkBoxEncoderLossless.UseVisualStyleBackColor = true;
//
// textBoxEncoderPath
//
resources.ApplyResources(this.textBoxEncoderPath, "textBoxEncoderPath");
this.textBoxEncoderPath.Name = "textBoxEncoderPath";
//
// textBoxEncoderParameters
//
resources.ApplyResources(this.textBoxEncoderParameters, "textBoxEncoderParameters");
this.textBoxEncoderParameters.Name = "textBoxEncoderParameters";
resources.ApplyResources(this.labelEncoderModes, "labelEncoderModes");
this.labelEncoderModes.Name = "labelEncoderModes";
//
// labelEncoderPath
//
@@ -963,59 +1022,15 @@ namespace JDP {
//
// groupBoxLibMAC_SDK
//
this.groupBoxLibMAC_SDK.Controls.Add(this.rbAPEinsane);
this.groupBoxLibMAC_SDK.Controls.Add(this.rbAPEfast);
this.groupBoxLibMAC_SDK.Controls.Add(this.rbAPEextrahigh);
this.groupBoxLibMAC_SDK.Controls.Add(this.rbAPEnormal);
this.groupBoxLibMAC_SDK.Controls.Add(this.rbAPEhigh);
resources.ApplyResources(this.groupBoxLibMAC_SDK, "groupBoxLibMAC_SDK");
this.groupBoxLibMAC_SDK.Name = "groupBoxLibMAC_SDK";
this.groupBoxLibMAC_SDK.TabStop = false;
//
// rbAPEinsane
//
resources.ApplyResources(this.rbAPEinsane, "rbAPEinsane");
this.rbAPEinsane.Name = "rbAPEinsane";
this.rbAPEinsane.TabStop = true;
this.rbAPEinsane.UseVisualStyleBackColor = true;
//
// rbAPEfast
//
resources.ApplyResources(this.rbAPEfast, "rbAPEfast");
this.rbAPEfast.Name = "rbAPEfast";
this.rbAPEfast.TabStop = true;
this.rbAPEfast.UseVisualStyleBackColor = true;
//
// rbAPEextrahigh
//
resources.ApplyResources(this.rbAPEextrahigh, "rbAPEextrahigh");
this.rbAPEextrahigh.Name = "rbAPEextrahigh";
this.rbAPEextrahigh.TabStop = true;
this.rbAPEextrahigh.UseVisualStyleBackColor = true;
//
// rbAPEnormal
//
resources.ApplyResources(this.rbAPEnormal, "rbAPEnormal");
this.rbAPEnormal.Name = "rbAPEnormal";
this.rbAPEnormal.TabStop = true;
this.rbAPEnormal.UseVisualStyleBackColor = true;
//
// rbAPEhigh
//
resources.ApplyResources(this.rbAPEhigh, "rbAPEhigh");
this.rbAPEhigh.Name = "rbAPEhigh";
this.rbAPEhigh.TabStop = true;
this.rbAPEhigh.UseVisualStyleBackColor = true;
//
// groupBoxLibWavpack
//
this.groupBoxLibWavpack.Controls.Add(this.chkWVStoreMD5);
this.groupBoxLibWavpack.Controls.Add(this.rbWVFast);
this.groupBoxLibWavpack.Controls.Add(this.numWVExtraMode);
this.groupBoxLibWavpack.Controls.Add(this.rbWVHigh);
this.groupBoxLibWavpack.Controls.Add(this.rbWVVeryHigh);
this.groupBoxLibWavpack.Controls.Add(this.chkWVExtraMode);
this.groupBoxLibWavpack.Controls.Add(this.rbWVNormal);
resources.ApplyResources(this.groupBoxLibWavpack, "groupBoxLibWavpack");
this.groupBoxLibWavpack.Name = "groupBoxLibWavpack";
this.groupBoxLibWavpack.TabStop = false;
@@ -1026,12 +1041,6 @@ namespace JDP {
this.chkWVStoreMD5.Name = "chkWVStoreMD5";
this.chkWVStoreMD5.UseVisualStyleBackColor = true;
//
// rbWVFast
//
resources.ApplyResources(this.rbWVFast, "rbWVFast");
this.rbWVFast.Name = "rbWVFast";
this.rbWVFast.UseVisualStyleBackColor = true;
//
// numWVExtraMode
//
resources.ApplyResources(this.numWVExtraMode, "numWVExtraMode");
@@ -1051,18 +1060,6 @@ namespace JDP {
0,
0,
0});
//
// rbWVHigh
//
resources.ApplyResources(this.rbWVHigh, "rbWVHigh");
this.rbWVHigh.Name = "rbWVHigh";
this.rbWVHigh.UseVisualStyleBackColor = true;
//
// rbWVVeryHigh
//
resources.ApplyResources(this.rbWVVeryHigh, "rbWVVeryHigh");
this.rbWVVeryHigh.Name = "rbWVVeryHigh";
this.rbWVVeryHigh.UseVisualStyleBackColor = true;
//
// chkWVExtraMode
//
@@ -1070,42 +1067,12 @@ namespace JDP {
this.chkWVExtraMode.Name = "chkWVExtraMode";
this.chkWVExtraMode.UseVisualStyleBackColor = true;
//
// rbWVNormal
//
resources.ApplyResources(this.rbWVNormal, "rbWVNormal");
this.rbWVNormal.Checked = true;
this.rbWVNormal.Name = "rbWVNormal";
this.rbWVNormal.TabStop = true;
this.rbWVNormal.UseVisualStyleBackColor = true;
//
// groupBoxLibFLAC
//
this.groupBoxLibFLAC.Controls.Add(this.lblFLACCompressionLevel);
this.groupBoxLibFLAC.Controls.Add(this.numericFLACCompressionLevel);
this.groupBoxLibFLAC.Controls.Add(this.chkFLACVerify);
resources.ApplyResources(this.groupBoxLibFLAC, "groupBoxLibFLAC");
this.groupBoxLibFLAC.Name = "groupBoxLibFLAC";
this.groupBoxLibFLAC.TabStop = false;
//
// lblFLACCompressionLevel
//
resources.ApplyResources(this.lblFLACCompressionLevel, "lblFLACCompressionLevel");
this.lblFLACCompressionLevel.Name = "lblFLACCompressionLevel";
//
// numericFLACCompressionLevel
//
resources.ApplyResources(this.numericFLACCompressionLevel, "numericFLACCompressionLevel");
this.numericFLACCompressionLevel.Maximum = new decimal(new int[] {
8,
0,
0,
0});
this.numericFLACCompressionLevel.Name = "numericFLACCompressionLevel";
this.numericFLACCompressionLevel.Value = new decimal(new int[] {
5,
0,
0,
0});
//
// chkFLACVerify
//
@@ -1339,11 +1306,12 @@ namespace JDP {
//
resources.ApplyResources(this.columnHeader2, "columnHeader2");
//
// checkBoxExtractAlbumArt
// checkBoxCheckForUpdates
//
resources.ApplyResources(this.checkBoxExtractAlbumArt, "checkBoxExtractAlbumArt");
this.checkBoxExtractAlbumArt.Name = "checkBoxExtractAlbumArt";
this.checkBoxExtractAlbumArt.UseVisualStyleBackColor = true;
resources.ApplyResources(this.checkBoxCheckForUpdates, "checkBoxCheckForUpdates");
this.checkBoxCheckForUpdates.Name = "checkBoxCheckForUpdates";
this.toolTip1.SetToolTip(this.checkBoxCheckForUpdates, resources.GetString("checkBoxCheckForUpdates.ToolTip"));
this.checkBoxCheckForUpdates.UseVisualStyleBackColor = true;
//
// frmSettings
//
@@ -1374,6 +1342,9 @@ namespace JDP {
this.grpAudioFilenames.PerformLayout();
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.groupBoxGaps.ResumeLayout(false);
this.groupBoxGaps.PerformLayout();
this.tabPage6.ResumeLayout(false);
this.groupBoxAlbumArt.ResumeLayout(false);
this.groupBoxAlbumArt.PerformLayout();
@@ -1396,14 +1367,11 @@ namespace JDP {
this.tabPage10.PerformLayout();
this.groupBoxExternalEncoder.ResumeLayout(false);
this.groupBoxExternalEncoder.PerformLayout();
this.groupBoxLibMAC_SDK.ResumeLayout(false);
this.groupBoxLibMAC_SDK.PerformLayout();
this.groupBoxLibWavpack.ResumeLayout(false);
this.groupBoxLibWavpack.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numWVExtraMode)).EndInit();
this.groupBoxLibFLAC.ResumeLayout(false);
this.groupBoxLibFLAC.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericFLACCompressionLevel)).EndInit();
this.tabPage11.ResumeLayout(false);
this.tabPage11.PerformLayout();
this.groupBoxExternalDecoder.ResumeLayout(false);
@@ -1424,7 +1392,6 @@ namespace JDP {
#endregion
private System.Windows.Forms.GroupBox grpGeneral;
private System.Windows.Forms.CheckBox chkPreserveHTOA;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.CheckBox chkAutoCorrectFilenames;
private System.Windows.Forms.GroupBox groupBox1;
@@ -1471,27 +1438,16 @@ namespace JDP {
private System.Windows.Forms.ComboBox comboLanguage;
private System.Windows.Forms.TabPage tabPage10;
private System.Windows.Forms.GroupBox groupBoxLibMAC_SDK;
private System.Windows.Forms.RadioButton rbAPEinsane;
private System.Windows.Forms.RadioButton rbAPEfast;
private System.Windows.Forms.RadioButton rbAPEextrahigh;
private System.Windows.Forms.RadioButton rbAPEnormal;
private System.Windows.Forms.RadioButton rbAPEhigh;
private System.Windows.Forms.GroupBox groupBoxLibWavpack;
private System.Windows.Forms.CheckBox chkWVStoreMD5;
private System.Windows.Forms.RadioButton rbWVFast;
private System.Windows.Forms.NumericUpDown numWVExtraMode;
private System.Windows.Forms.RadioButton rbWVHigh;
private System.Windows.Forms.RadioButton rbWVVeryHigh;
private System.Windows.Forms.CheckBox chkWVExtraMode;
private System.Windows.Forms.RadioButton rbWVNormal;
private System.Windows.Forms.GroupBox groupBoxExternalEncoder;
private System.Windows.Forms.TextBox textBoxEncoderPath;
private System.Windows.Forms.TextBox textBoxEncoderParameters;
private System.Windows.Forms.Label labelEncoderPath;
private System.Windows.Forms.Label labelEncoderParameters;
private System.Windows.Forms.GroupBox groupBoxLibFLAC;
private System.Windows.Forms.Label lblFLACCompressionLevel;
private System.Windows.Forms.NumericUpDown numericFLACCompressionLevel;
private System.Windows.Forms.CheckBox chkFLACVerify;
private System.Windows.Forms.Label labelEncoderExtension;
private System.Windows.Forms.TabPage tabPage11;
@@ -1562,6 +1518,14 @@ namespace JDP {
private System.Windows.Forms.NumericUpDown numericUpDownMaxResolution;
private System.Windows.Forms.CheckBox chkExtractLog;
private System.Windows.Forms.CheckBox checkBoxExtractAlbumArt;
private System.Windows.Forms.Label labelEncoderModes;
private System.Windows.Forms.TextBox textBoxEncoderModes;
private System.Windows.Forms.GroupBox groupBoxGaps;
private System.Windows.Forms.RadioButton rbGapsPlusHTOA;
private System.Windows.Forms.RadioButton rbGapsAppended;
private System.Windows.Forms.RadioButton rbGapsLeftOut;
private System.Windows.Forms.RadioButton rbGapsPrepended;
private System.Windows.Forms.CheckBox checkBoxCheckForUpdates;
}
}

View File

@@ -14,13 +14,13 @@ namespace JDP {
public partial class frmSettings : Form {
bool _reducePriority;
CUEConfig _config;
private ShellIconMgr m_icon_mgr;
private IIconManager m_icon_mgr;
public frmSettings() {
InitializeComponent();
}
public ShellIconMgr IconMgr
public IIconManager IconMgr
{
get
{
@@ -34,9 +34,8 @@ namespace JDP {
private void frmSettings_Load(object sender, EventArgs e) {
chkReducePriority.Checked = _reducePriority;
chkPreserveHTOA.Checked = _config.preserveHTOA;
checkBoxCheckForUpdates.Checked = _config.checkForUpdates;
chkAutoCorrectFilenames.Checked = _config.autoCorrectFilenames;
numericFLACCompressionLevel.Value = _config.flacCompressionLevel;
numFixWhenConfidence.Value = _config.fixOffsetMinimumConfidence;
numFixWhenPercent.Value = _config.fixOffsetMinimumTracksPercent;
numEncodeWhenConfidence.Value = _config.encodeWhenConfidence;
@@ -45,21 +44,9 @@ namespace JDP {
chkFLACVerify.Checked = _config.flacVerify;
chkWriteArTagsOnConvert.Checked = _config.writeArTagsOnConvert;
chkWriteARTagsOnVerify.Checked = _config.writeArTagsOnVerify;
if (_config.wvCompressionMode == 0) rbWVFast.Checked = true;
if (_config.wvCompressionMode == 1) rbWVNormal.Checked = true;
if (_config.wvCompressionMode == 2) rbWVHigh.Checked = true;
if (_config.wvCompressionMode == 3) rbWVVeryHigh.Checked = true;
chkWVExtraMode.Checked = (_config.wvExtraMode != 0);
if (_config.wvExtraMode != 0) numWVExtraMode.Value = _config.wvExtraMode;
chkWVStoreMD5.Checked = _config.wvStoreMD5;
switch (_config.apeCompressionLevel)
{
case 1: rbAPEfast.Checked = true; break;
case 2: rbAPEnormal.Checked = true; break;
case 3: rbAPEhigh.Checked = true; break;
case 4: rbAPEextrahigh.Checked = true; break;
case 5: rbAPEinsane.Checked = true; break;
}
chkKeepOriginalFilenames.Checked = _config.keepOriginalFilenames;
txtSingleFilenameFormat.Text = _config.singleFilenameFormat;
txtTrackFilenameFormat.Text = _config.trackFilenameFormat;
@@ -95,6 +82,22 @@ namespace JDP {
textBoxARLogExtension.Text = _config.arLogExtension;
numericUpDownMaxResolution.Value = _config.maxAlbumArtSize;
switch (_config.gapsHandling)
{
case CUEStyle.GapsAppended:
if (_config.preserveHTOA)
rbGapsPlusHTOA.Checked = true;
else
rbGapsAppended.Checked = true;
break;
case CUEStyle.GapsPrepended:
rbGapsPrepended.Checked = true;
break;
case CUEStyle.GapsLeftOut:
rbGapsLeftOut.Checked = true;
break;
}
string[] cultures = { "en-US", "de-DE", "ru-RU" };
foreach (string culture in cultures)
{
@@ -199,9 +202,12 @@ namespace JDP {
listViewScripts.SelectedItems[0].Selected = false;
_reducePriority = chkReducePriority.Checked;
_config.preserveHTOA = chkPreserveHTOA.Checked;
_config.checkForUpdates = checkBoxCheckForUpdates.Checked;
_config.preserveHTOA = rbGapsPlusHTOA.Checked;
_config.gapsHandling = rbGapsPrepended.Checked ? CUEStyle.GapsPrepended :
rbGapsLeftOut.Checked ? CUEStyle.GapsLeftOut :
CUEStyle.GapsAppended;
_config.autoCorrectFilenames = chkAutoCorrectFilenames.Checked;
_config.flacCompressionLevel = (uint)numericFLACCompressionLevel.Value;
_config.lossyWAVQuality = (int)numericLossyWAVQuality.Value;
_config.fixOffsetMinimumTracksPercent = (uint)numFixWhenPercent.Value;
_config.fixOffsetMinimumConfidence = (uint)numFixWhenConfidence.Value;
@@ -211,18 +217,9 @@ namespace JDP {
_config.flacVerify = chkFLACVerify.Checked;
_config.writeArTagsOnConvert = chkWriteArTagsOnConvert.Checked;
_config.writeArTagsOnVerify = chkWriteARTagsOnVerify.Checked;
if (rbWVFast.Checked) _config.wvCompressionMode = 0;
else if (rbWVHigh.Checked) _config.wvCompressionMode = 2;
else if (rbWVVeryHigh.Checked) _config.wvCompressionMode = 3;
else _config.wvCompressionMode = 1;
if (!chkWVExtraMode.Checked) _config.wvExtraMode = 0;
else _config.wvExtraMode = (int) numWVExtraMode.Value;
_config.wvStoreMD5 = chkWVStoreMD5.Checked;
_config.apeCompressionLevel = (uint) (rbAPEfast.Checked ? 1 :
rbAPEnormal.Checked ? 2 :
rbAPEhigh.Checked ? 3 :
rbAPEextrahigh.Checked ? 4 :
rbAPEinsane.Checked ? 5 : 2);
_config.keepOriginalFilenames = chkKeepOriginalFilenames.Checked;
_config.singleFilenameFormat = txtSingleFilenameFormat.Text;
_config.trackFilenameFormat = txtTrackFilenameFormat.Text;
@@ -521,6 +518,7 @@ namespace JDP {
groupBoxExternalEncoder.Visible = true;
textBoxEncoderPath.Text = encoder.path;
textBoxEncoderParameters.Text = encoder.parameters;
textBoxEncoderModes.Text = encoder.supported_modes;
checkBoxEncoderLossless.Checked = encoder.lossless;
checkBoxEncoderLossless.Enabled = _config.formats.TryGetValue(encoder.extension, out format) && format.allowLossless && format.allowLossy;
}
@@ -564,6 +562,7 @@ namespace JDP {
}
encoder.path = textBoxEncoderPath.Text;
encoder.parameters = textBoxEncoderParameters.Text;
encoder.supported_modes = textBoxEncoderModes.Text;
encoder.lossless = checkBoxEncoderLossless.Checked;
}
@@ -612,7 +611,7 @@ namespace JDP {
CUEToolsUDC encoder;
if (_config.encoders.TryGetValue("new", out encoder))
return;
encoder = new CUEToolsUDC("new", "wav", true, "", "");
encoder = new CUEToolsUDC("new", "wav", true, "", "", "", "");
_config.encoders.Add("new", encoder);
ListViewItem item = new ListViewItem(encoder.name);
item.Tag = encoder;
@@ -719,7 +718,7 @@ namespace JDP {
CUEToolsUDC decoder;
if (_config.decoders.TryGetValue("new", out decoder))
return;
decoder = new CUEToolsUDC("new", "wav", true, "", "");
decoder = new CUEToolsUDC("new", "wav", true, "", "", "", "");
_config.decoders.Add("new", decoder);
ListViewItem item = new ListViewItem(decoder.name);
item.Tag = decoder;

File diff suppressed because it is too large Load Diff

View File

@@ -120,26 +120,21 @@
<data name="btnCancel.Text" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="btnCancel.ToolTip" xml:space="preserve">
<value />
<data name="grpGeneral.Text" xml:space="preserve">
<value>Общие</value>
</data>
<data name="chkSingleInstance.Text" xml:space="preserve">
<value>Только одно окно приложения</value>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="chkAllowMultipleInstances.Size" type="System.Drawing.Size, System.Drawing">
<value>164, 17</value>
</data>
<data name="chkSingleInstance.ToolTip" xml:space="preserve">
<value />
<data name="chkAllowMultipleInstances.Text" xml:space="preserve">
<value>Разрешить несколько окон</value>
</data>
<data name="chkOverwriteTags.Text" xml:space="preserve">
<value>Игнорируя информацию из .cue</value>
<data name="chkAllowMultipleInstances.ToolTip" xml:space="preserve">
<value>Разрешить запускать несколько копий приложения одновременно</value>
</data>
<data name="chkOverwriteTags.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkExtractLog.Text" xml:space="preserve">
<value>Извлечь .log в файл</value>
</data>
<data name="chkExtractLog.ToolTip" xml:space="preserve">
<value />
<data name="chkReducePriority.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 17</value>
</data>
<data name="chkReducePriority.Text" xml:space="preserve">
<value>Понизить приоритет процесса</value>
@@ -147,35 +142,35 @@
<data name="chkReducePriority.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkTruncateExtra4206Samples.Size" type="System.Drawing.Size, System.Drawing">
<value>202, 17</value>
</data>
<data name="chkTruncateExtra4206Samples.Text" xml:space="preserve">
<value>Выкидывать лишние 4608 сэмплов</value>
</data>
<data name="chkTruncateExtra4206Samples.ToolTip" xml:space="preserve">
<value>Некоторые FLAC-кодировщики добавляют лишние 4608 пустых сэмплов в конце файла. Эту ситуацию можно легко обнаружить и исправить.</value>
</data>
<data name="chkCreateCUEFileWhenEmbedded.Size" type="System.Drawing.Size, System.Drawing">
<value>224, 17</value>
</data>
<data name="chkCreateCUEFileWhenEmbedded.Text" xml:space="preserve">
<value>Создавать .cue даже при встраивании</value>
</data>
<data name="chkCreateCUEFileWhenEmbedded.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkCreateM3U.Size" type="System.Drawing.Size, System.Drawing">
<value>166, 17</value>
</data>
<data name="chkCreateM3U.Text" xml:space="preserve">
<value>Создавать плейлисты .m3u</value>
</data>
<data name="chkCreateM3U.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkFillUpCUE.Text" xml:space="preserve">
<value>Пополнить .cue информацией из тэгов</value>
</data>
<data name="chkFillUpCUE.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEmbedLog.Text" xml:space="preserve">
<value>Встроить .log в виде тэга</value>
</data>
<data name="chkEmbedLog.ToolTip" xml:space="preserve">
<value>Работает, если .log лежит в той же папке и имеет то же имя, что и исходный файл</value>
<data name="chkAutoCorrectFilenames.Size" type="System.Drawing.Size, System.Drawing">
<value>213, 17</value>
</data>
<data name="chkAutoCorrectFilenames.Text" xml:space="preserve">
<value>Автоматически искать аудио файлы</value>
@@ -183,92 +178,26 @@
<data name="chkAutoCorrectFilenames.ToolTip" xml:space="preserve">
<value>Автоматически исправить имена, если .cue ссылается на несуществующие файлы</value>
</data>
<data name="chkPreserveHTOA.Text" xml:space="preserve">
<value>Сохранять HTOA при разбивке на треки</value>
<data name="labelLanguage.Size" type="System.Drawing.Size, System.Drawing">
<value>33, 13</value>
</data>
<data name="chkPreserveHTOA.ToolTip" xml:space="preserve">
<value />
<data name="labelLanguage.Text" xml:space="preserve">
<value>Язык</value>
</data>
<data name="grpGeneral.Text" xml:space="preserve">
<value>Общие</value>
<data name="comboLanguage.ToolTip" xml:space="preserve">
<value>Язык интерфейса</value>
</data>
<data name="grpGeneral.ToolTip" xml:space="preserve">
<value />
<data name="groupBox1.Text" xml:space="preserve">
<value>Проверить и записать</value>
</data>
<data name="numericFLACCompressionLevel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblFLACCompressionLevel.Text" xml:space="preserve">
<value>Уровень сжатия:</value>
</data>
<data name="lblFLACCompressionLevel.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkFLACVerify.Text" xml:space="preserve">
<value>Верификация</value>
</data>
<data name="chkFLACVerify.ToolTip" xml:space="preserve">
<value />
</data>
<data name="btnOK.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkWVStoreMD5.Text" xml:space="preserve">
<value>MD5-хеширование</value>
</data>
<data name="chkWVStoreMD5.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numWVExtraMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkWVExtraMode.Text" xml:space="preserve">
<value>Доп. режим:</value>
</data>
<data name="chkWVExtraMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWVVeryHigh.Text" xml:space="preserve">
<value>Очень высокий</value>
</data>
<data name="rbWVVeryHigh.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWVHigh.Text" xml:space="preserve">
<value>Высокий</value>
</data>
<data name="rbWVHigh.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWVNormal.Text" xml:space="preserve">
<value>Средний</value>
</data>
<data name="rbWVNormal.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbWVFast.Text" xml:space="preserve">
<value>Быстрый</value>
</data>
<data name="rbWVFast.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEncodeWhenZeroOffset.Text" xml:space="preserve">
<value>и нулевым смещением</value>
</data>
<data name="chkEncodeWhenZeroOffset.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkArFixOffset.Text" xml:space="preserve">
<value>Исправлять смещение при % треков &gt;=</value>
</data>
<data name="chkArFixOffset.ToolTip" xml:space="preserve">
<value />
<data name="chkWriteArLogOnConvert.Size" type="System.Drawing.Size, System.Drawing">
<value>181, 17</value>
</data>
<data name="chkWriteArLogOnConvert.Text" xml:space="preserve">
<value>Записывать отчет AccurateRip</value>
</data>
<data name="chkWriteArLogOnConvert.ToolTip" xml:space="preserve">
<value />
<data name="chkWriteArTagsOnConvert.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 17</value>
</data>
<data name="chkWriteArTagsOnConvert.Text" xml:space="preserve">
<value>Записывать тэги AccurateRip</value>
@@ -276,41 +205,23 @@
<data name="chkWriteArTagsOnConvert.ToolTip" xml:space="preserve">
<value>Добавлять тэги ACCURATERIPCOUNT/ACCURATERIPCOUNTALLOFFSETS/ACCURATERIPTOTAL в выходные файлы. Можно настроить foobar2000 на их отображение, чтобы видеть качество рипа и популярность дисков в вашей библиотеке.</value>
</data>
<data name="numEncodeWhenPercent.ToolTip" xml:space="preserve">
<value />
<data name="chkEncodeWhenZeroOffset.Location" type="System.Drawing.Point, System.Drawing">
<value>100, 63</value>
</data>
<data name="chkEncodeWhenZeroOffset.Size" type="System.Drawing.Size, System.Drawing">
<value>138, 17</value>
</data>
<data name="chkEncodeWhenZeroOffset.Text" xml:space="preserve">
<value>и нулевым смещением</value>
</data>
<data name="labelEncodeWhenConfidence.Text" xml:space="preserve">
<value>с достоверностью &gt;=</value>
</data>
<data name="labelEncodeWhenConfidence.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numEncodeWhenConfidence.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkArNoUnverifiedAudio.Text" xml:space="preserve">
<value>Конвертация при % верных треков &gt;=</value>
</data>
<data name="chkArNoUnverifiedAudio.ToolTip" xml:space="preserve">
<value />
</data>
<data name="labelFixWhenConfidence.Text" xml:space="preserve">
<value>с достоверностью &gt;=</value>
</data>
<data name="labelFixWhenConfidence.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numFixWhenConfidence.ToolTip" xml:space="preserve">
<value />
</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 name="chkFilenamesANSISafe.Size" type="System.Drawing.Size, System.Drawing">
<value>207, 17</value>
</data>
<data name="chkFilenamesANSISafe.Text" xml:space="preserve">
<value>Только символы из ANSI кодировки</value>
@@ -318,270 +229,241 @@
<data name="chkFilenamesANSISafe.ToolTip" xml:space="preserve">
<value>Использовать только символы, присутствующие в ANSI (1251) кодировке, для совместимости с приложениями, не поддерживающими Unicode (такими, как Far manager)</value>
</data>
<data name="chkWriteARTagsOnVerify.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 17</value>
</data>
<data name="chkWriteARTagsOnVerify.Text" xml:space="preserve">
<value>Записывать тэги AccurateRip</value>
</data>
<data name="chkWriteARTagsOnVerify.ToolTip" xml:space="preserve">
<value>Добавлять тэги ACCURATERIPCOUNT/ACCURATERIPCOUNTALLOFFSETS/ACCURATERIPTOTAL в исходные файлы. Можно настроить foobar2000 на их отображение, чтобы видеть качество рипа и популярность дисков в вашей библиотеке.</value>
</data>
<data name="chkHDCDDecode.Size" type="System.Drawing.Size, System.Drawing">
<value>146, 17</value>
</data>
<data name="chkHDCDDecode.Text" xml:space="preserve">
<value>Декодировать в 20 бит</value>
</data>
<data name="chkHDCDDecode.ToolTip" xml:space="preserve">
<value>Декодирование HDCD - необратимый процесс. Результирующие файлы не могут быть записаны на CD. Создаются файлы с разрешением 24 бита, но подлинное разрешение составляет 20 бит.</value>
</data>
<data name="chkHDCDStopLooking.Size" type="System.Drawing.Size, System.Drawing">
<value>172, 17</value>
</data>
<data name="chkHDCDStopLooking.Text" xml:space="preserve">
<value>Определять по 750 фреймам</value>
</data>
<data name="chkHDCDStopLooking.ToolTip" xml:space="preserve">
<value>Прекращать поиск HDCD-кодировки, если её не обнаружено в первых 10 секундах аудио данных.</value>
</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="chkEmbedLog.Size" type="System.Drawing.Size, System.Drawing">
<value>156, 17</value>
</data>
<data name="chkEmbedLog.Text" xml:space="preserve">
<value>Встроить .log в виде тэга</value>
</data>
<data name="chkEmbedLog.ToolTip" xml:space="preserve">
<value>Работает, если .log лежит в той же папке и имеет то же имя, что и исходный файл</value>
</data>
<data name="chkKeepOriginalFilenames.Size" type="System.Drawing.Size, System.Drawing">
<value>157, 17</value>
</data>
<data name="chkKeepOriginalFilenames.Text" xml:space="preserve">
<value>Сохранять оригинальные</value>
</data>
<data name="chkKeepOriginalFilenames.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtSpecialExceptions.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkRemoveSpecial.Text" xml:space="preserve">
<value>Удалять специальные символы кроме:</value>
</data>
<data name="chkRemoveSpecial.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkReplaceSpaces.Text" xml:space="preserve">
<value>Заменять пробелы подчеркиванями</value>
</data>
<data name="chkReplaceSpaces.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtTrackFilenameFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblTrackFilenameFormat.Text" xml:space="preserve">
<value>Трек:</value>
</data>
<data name="lblTrackFilenameFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblSingleFilenameFormat.Text" xml:space="preserve">
<value>Образ диска:</value>
</data>
<data name="lblSingleFilenameFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtSingleFilenameFormat.ToolTip" xml:space="preserve">
<value />
</data>
<data name="rbGapsLeftOut.ToolTip" xml:space="preserve">
<value>Межтрековые зазоры выкидываются.</value>
</data>
<data name="rbGapsPrepended.ToolTip" xml:space="preserve">
<value>Межтрековые зазоры дописываются в начало следующего трека.</value>
</data>
<data name="rbGapsAppended.ToolTip" xml:space="preserve">
<value>Межтрековые зазоры дописываются в конец предидущего трека. HTOA теряется.</value>
</data>
<data name="rbGapsPlusHTOA.ToolTip" xml:space="preserve">
<value>Межтрековые зазоры дописываются в конец предидущего трека. HTOA (зазор перед первым треком) сохраняется отдельно. Режим по умолчанию.</value>
</data>
<data name="grpAudioFilenames.Text" xml:space="preserve">
<value>Имена аудиофайлов</value>
</data>
<data name="grpAudioFilenames.ToolTip" xml:space="preserve">
<value />
<data name="chkRemoveSpecial.Size" type="System.Drawing.Size, System.Drawing">
<value>223, 17</value>
</data>
<data name="rbAPEinsane.ToolTip" xml:space="preserve">
<value />
<data name="chkRemoveSpecial.Text" xml:space="preserve">
<value>Удалять специальные символы кроме:</value>
</data>
<data name="rbAPEextrahigh.ToolTip" xml:space="preserve">
<value />
<data name="chkReplaceSpaces.Size" type="System.Drawing.Size, System.Drawing">
<value>209, 17</value>
</data>
<data name="rbAPEhigh.ToolTip" xml:space="preserve">
<value />
<data name="chkReplaceSpaces.Text" xml:space="preserve">
<value>Заменять пробелы подчеркиванями</value>
</data>
<data name="rbAPEnormal.ToolTip" xml:space="preserve">
<value />
<data name="lblTrackFilenameFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>35, 13</value>
</data>
<data name="rbAPEfast.ToolTip" xml:space="preserve">
<value />
<data name="lblTrackFilenameFormat.Text" xml:space="preserve">
<value>Трек:</value>
</data>
<data name="tabPage1.ToolTip" xml:space="preserve">
<value />
<data name="lblSingleFilenameFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 13</value>
</data>
<data name="lblSingleFilenameFormat.Text" xml:space="preserve">
<value>Образ диска:</value>
</data>
<data name="groupBoxGaps.Text" xml:space="preserve">
<value>Режим обработки зазоров (gaps)</value>
</data>
<data name="checkBoxARLogVerbose.Size" type="System.Drawing.Size, System.Drawing">
<value>84, 17</value>
</data>
<data name="checkBoxARLogVerbose.Text" xml:space="preserve">
<value>Подробный</value>
</data>
<data name="groupBoxARLog.Text" xml:space="preserve">
<value>Файл отчета</value>
</data>
<data name="checkBoxFixToNearest.Location" type="System.Drawing.Point, System.Drawing">
<value>143, 63</value>
</data>
<data name="checkBoxFixToNearest.Size" type="System.Drawing.Size, System.Drawing">
<value>99, 17</value>
</data>
<data name="checkBoxFixToNearest.Text" xml:space="preserve">
<value>к ближайшему</value>
</data>
<data name="checkBoxARVerifyUseSourceFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 17</value>
</data>
<data name="checkBoxARVerifyUseSourceFolder.Text" xml:space="preserve">
<value>В исходной папке</value>
</data>
<data name="chkWriteARLogOnVerify.Size" type="System.Drawing.Size, System.Drawing">
<value>181, 17</value>
</data>
<data name="chkWriteARLogOnVerify.Text" xml:space="preserve">
<value>Записывать отчет AccurateRip</value>
</data>
<data name="chkWriteARLogOnVerify.ToolTip" xml:space="preserve">
<value />
<data name="tabPage3.Text" xml:space="preserve">
<value>Форматы</value>
</data>
<data name="groupBox3.Text" xml:space="preserve">
<value>При проверке</value>
<data name="labelEncoderModes.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 13</value>
</data>
<data name="groupBox3.ToolTip" xml:space="preserve">
<value />
<data name="labelEncoderModes.Text" xml:space="preserve">
<value>Режимы</value>
</data>
<data name="tabPage2.ToolTip" xml:space="preserve">
<value />
<data name="labelEncoderPath.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 13</value>
</data>
<data name="tabPage5.ToolTip" xml:space="preserve">
<value />
<data name="labelEncoderPath.Text" xml:space="preserve">
<value>Путь</value>
</data>
<data name="tabPage6.ToolTip" xml:space="preserve">
<value />
<data name="labelEncoderParameters.Size" type="System.Drawing.Size, System.Drawing">
<value>64, 13</value>
</data>
<data name="tabPage7.ToolTip" xml:space="preserve">
<value />
<data name="labelEncoderParameters.Text" xml:space="preserve">
<value>Параметры</value>
</data>
<data name="groupBoxExternalEncoder.Text" xml:space="preserve">
<value>Настройки внешнего кодировщика</value>
</data>
<data name="labelEncoderExtension.Text" xml:space="preserve">
<value>Расширение</value>
</data>
<data name="labelDecoderPath.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 13</value>
</data>
<data name="labelDecoderPath.Text" xml:space="preserve">
<value>Путь</value>
</data>
<data name="labelDecoderParameters.Size" type="System.Drawing.Size, System.Drawing">
<value>64, 13</value>
</data>
<data name="labelDecoderParameters.Text" xml:space="preserve">
<value>Параметры</value>
</data>
<data name="groupBoxExternalDecoder.Text" xml:space="preserve">
<value>Настройки внешнего декодера</value>
</data>
<data name="chkExtractLog.Size" type="System.Drawing.Size, System.Drawing">
<value>127, 17</value>
</data>
<data name="chkExtractLog.Text" xml:space="preserve">
<value>Извлечь .log в файл</value>
</data>
<data name="chkOverwriteTags.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 17</value>
</data>
<data name="chkOverwriteTags.Text" xml:space="preserve">
<value>Игнорируя информацию из .cue</value>
</data>
<data name="chkFillUpCUE.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 17</value>
</data>
<data name="chkFillUpCUE.Text" xml:space="preserve">
<value>Пополнить .cue информацией из тэгов</value>
</data>
<data name="chkWVStoreMD5.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 17</value>
</data>
<data name="chkWVStoreMD5.Text" xml:space="preserve">
<value>MD5-хеширование</value>
</data>
<data name="chkWVExtraMode.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 17</value>
</data>
<data name="chkWVExtraMode.Text" xml:space="preserve">
<value>Доп. режим:</value>
</data>
<data name="chkFLACVerify.Size" type="System.Drawing.Size, System.Drawing">
<value>94, 17</value>
</data>
<data name="chkFLACVerify.Text" xml:space="preserve">
<value>Верификация</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 13</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Качество:</value>
</data>
<data name="label1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numericLossyWAVQuality.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage8.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkUDC1ID3v2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkUDC1APEv2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label6.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label5.ToolTip" xml:space="preserve">
<value />
</data>
<data name="textUDC1EncParams.ToolTip" xml:space="preserve">
<value />
</data>
<data name="textUDC1Encoder.ToolTip" xml:space="preserve">
<value />
</data>
<data name="textUDC1Params.ToolTip" xml:space="preserve">
<value />
</data>
<data name="textUDC1Decoder.ToolTip" xml:space="preserve">
<value />
</data>
<data name="textUDC1Extension.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label4.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label3.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage9.ToolTip" xml:space="preserve">
<value />
</data>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABm
DQAAAk1TRnQBSQFMAgEBAgEAAQQBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABEAMAAQEBAAEgBgABEBUAAf8DAAH/ARwBaAETAf8BHAFoARMB/wMAAf8BHAFoARMB/wEcAWgBEwH/
AwAB/wMAAf8BHAEbARwB/wEkASMBJAH/ARMBFwETAf8DAAH/AwAB/wMAAf8DAAX/AQgBBAECAf8BCQEF
AQIB/wEJAQUBAgH/AQkBBQECAf8BCgEFAQIB/wELAQYBAwH/AQkBBQECAf8BCQEFAQIB/wEJAQUBAgH/
AQkBBQECAf8BCQEFAQIB/wEJAQUBAgH/AQkBBQECAf8BCAEEAQIF/4AAAVUBWAFVAf8BLAErASwB/wE0
Ad8BPQH/ATQB3wE9Af8DAAH/ATQB3wE9Af8BNAHfAT0B/wMAAf8DAAH/AYwBjgGMAf8B1gHTAdYB/wHW
AdMB1gH/AVUBVAFVAf8DAAH/AwAB/wMAAf8BCQEFAQIB/wHOAY4BXAH/Ac4BjgFcAf8B1AGTAV8B/wHO
AY4BXAH/AaYBbgFKAf8BHQESAQsB/wHOAY4BXAH/Ac4BjgFcAf8BzgGOAVwB/wHOAY4BXAH/Ac4BjgFc
Af8BzgGOAVwB/wHOAY4BXAH/Ac4BjgFcAf8BCQEFAQIB/4AAAW4BcAFuAf8BLAErASwB/wE0Ad8BPQH/
ATQB3wE9Af8DAAH/ATQB3wE9Af8BNAHfAT0B/wMAAf8DAAH/AbUBtgG1Cf8BbgFwAW4B/wMAAf8DAAH/
AwAB/wELAQYBAwH/Ac4BjgFcAf8BzgGOAVwB/wHOAY4BXAH/Ac4BjgFcAf8B0AGQAVwB/wMAAf8BlQFi
AUAB/wHOAY4BXAH/AdIBkAFeAf8B0wGRAV4B/wHTAZEBXgH/AdMBkQFeAf8BzgGOAVwB/wHOAY4BXAH/
AQoBBQECAf+AAAFuAXABbgH/ASwBKwEsAf8BAAEfAQAB/wEDASsBAwH/AwAB/wEDASsBCwH/AQMBIwED
Af8DAAH/AwAB/wG1AbIBtQn/AW4BbAFuAf8DAAH/AwAB/wMAAf8BCwEGAQMB/wHOAY4BXAH/Ac4BjgFc
Af8BzgGOAVwB/wHQAY8BXAH/Ac4BjgFcAf8BGgEQAQgB/wEmARkBDwH/Ac4BjgFcAf8BzgGOAVwB/wHO
AY4BXAH/Ac4BjgFcAf8B0AGPAV0B/wHOAY4BXAH/Ac4BjgFcAf8BCgEFAQIB/4AAAW4BcAFuAf8BLAEr
ASwB/wEkAa4BLAH/ASQBrgEsAf8DAAH/ASQBrgEsAf8BJAGuASwB/wMAAf8DAAH/AbUBsgG1Cf8BbgFs
AW4B/wMAAf8DAAH/AwAB/wELAQYBAwH/Ac4BjgFcAf8BzgGOAVwB/wHOAY4BXAH/Ac4BjgFcAf8BzgGO
AVwB/wGYAWQBQgH/AwAB/wMAAf8DAAH/ATIBIAEUAf8BzgGOAVwB/wHOAY4BXAH/Ac4BjgFcAf8BzgGO
AVwB/wEKAQUBAgH/gAABbgFwAW4B/wEsASsBLAH/ATQB3wE9Af8BNAHfAT0B/wMAAf8BNAHfAT0B/wE0
Ad8BPQH/AwAB/wMAAf8BtQGyAbUJ/wFuAWwBbgH/AwAB/wMAAf8DAAH/AQsBBgEDAf8BzgGOAVwB/wHS
AZEBXQH/Ac4BjgFcAf8B0QGQAV0B/wHOAY4BXAH/Ac4BjgFcAf8DAAH/AUwBMwEhAf8BrQFyAU0B/wEr
ARwBEgH/AwAB/wHOAY4BXAH/Ac4BjgFcAf8BzgGOAVwB/wEKAQUBAgH/gAABbgFwAW4B/wEsASsBLAH/
ATQB3wE9Af8BNAHfAT0B/wMAAf8BNAHfAT0B/wE0Ad8BPQH/AwAB/wMAAf8BrQGuAa0J/wFmAWgBZgH/
AwAB/wMAAf8DAAH/AQsBBgEDAf8BzgGOAVwB/wHRAZABXQH/Ac4BjgFcAf8BkQFfAT8B/wHOAY4BXAH/
Ac4BjgFcAf8BPAEnARkB/wEDAQEBAAH/Ac4BjgFcAf8BzgGOAVwB/wMAAf8BQAErARsB/wHOAY4BXAH/
Ac4BjgFcAf8BCgEFAQIB/4AAAW4BcAFuAf8BLAErASwB/wEAASMBJAH/AQABKwEsAf8DAAH/AQABKwEs
Af8BAAEjASQB/wMAAf8DAAH/Aa0BqgGtCf8BZgFkAWYB/wMAAf8DAAH/AwAB/wELAQYBAwH/Ac4BjgFc
Af8BzgGOAVwB/wHOAY4BXAH/AwAB/wGrAXEBSwH/Ac4BjgFcAf8BuQF6AVEB/wMAAf8BzgGOAVwB/wHO
AY4BXAH/AQMBAQEAAf8BDwEHAQUB/wHOAY4BXAH/Ac4BjgFcAf8BCgEFAQIB/4AAAW4BcAFuAf8BLAEr
ASwB/wEAAZ4BnAH/AQABngGcAf8DAAH/AQABngGcAf8BAAGeAZwB/wETAR8BHBn/ASQBIwEkAf8DAAH/
AQsBBgEDAf8BzgGOAVwB/wHOAY4BXAH/Ac4BjgFcAf8DAAH/ARgBDwEJAf8BzgGOAVwB/wHEAYcBWQH/
AwAB/wMAAf8DAAH/AwAB/wGHAVcBOQH/Ac4BjgFcAf8BzgGOAVwB/wEKAQUBAgH/gAABbgFwAW4B/wEs
ASsBLAH/AQAD/wEAA/8DAAH/AQAD/wEAA/8DABn/ASQBIwEkAf8DAAH/AQsBBgEDAf8BzgGOAVwB/wHO
AY4BXAH/Ac4BjgFcAf8DAAH/AwAB/wGqAW8BSgH/AZkBZQFDAf8DAAH/AwAB/wGiAWkBRgH/Ac4BjgFc
Af8BzgGOAVwB/wHOAY4BXAH/Ac4BjgFcAf8BCgEFAQIB/4AAAW4BcAFuAf8BLAErASwB/wEAA/8BAAP/
AwAB/wEAA/8BAAP/AwAB/wFVAVABTQH/Ad4B2wHeCf8BtQGyAbUB/wF2AXgBdgH/AQMBBwEDAf8DAAH/
AQsBBgEDAf8BzgGOAVwB/wHOAY4BXAH/AZ4BZwFFAf8DAAH/AVwBPQEpAf8BEgELAQYB/wFgAUABKwH/
ARoBEQEJAf8BJgEZARAB/wFAASoBGwH/Ac4BjgFcAf8B0QGQAV0B/wHOAY4BXAH/Ac4BjgFcAf8BCgEF
AQIB/4AAAW4BcAFuAf8BLAErASwB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8BlAGWAZQJ/wG1
AbYBtQH/AwAB/wMAAf8DAAH/AQsBBgEDAf8BzgGOAVwB/wHOAY4BXAH/AXIBTQE0Af8DAAH/Ac4BjgFc
Af8DAAH/AwAB/wFSATcBJQH/Aa4BdAFNAf8DAAH/Ac4BjgFcAf8BzgGOAVwB/wHTAZEBXgH/AdQBkwFf
Af8BCgEFAQIB/4AAAZwBmgGcAf8BLAErASwB/wIAAaUB/wIAAaUB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
ASwBKwEsEf8BvQG6Ab0B/wMAAf8BCwEGAQMB/wHOAY4BXAH/Ac4BjgFcAf8BQAEqARwB/wMAAf8BzgGO
AVwB/wFrAUgBLwH/AwAB/wGDAVUBOQH/Ac4BjgFcAf8DAAH/ATEBHwEVAf8BzgGOAVwB/wHOAY4BXAH/
AdQBkwFfAf8BCgEFAQIB/4AAAZQBkgGUAf8BLAErASwB/wIAAv8CAAL/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AZwBmgGcDf8BlAGWAZQB/wMAAf8BCwEGAQMB/wHOAY4BXAH/Ac4BjgFcAf8BAQIAAf8BIwEX
AQ4B/wHOAY4BXAH/Ac4BjgFcAf8DAAH/AZ8BaAFGAf8BzgGOAVwB/wGLAVoBPAH/AwAB/wHOAY4BXAH/
Ac4BjgFcAf8BzgGOAVwB/wEKAQUBAgH/gAABpQGmAaUB/wGUAZIBlAH/AgABpQH/AgABtQH/ASwBKwEs
Af8BLAErASwB/wEsASsBLAH/ASwBKwEsAf8BLAErASwB/wEsASsBLAH/ASwBLwEsAf8BTQFQAU0B/wGt
AaoBrQH/Aa0BqgGtAf8BRQFIAUUB/wMAAf8BCQEFAQIB/wHOAY4BXAH/Ac4BjgFcAf8BcgFMATMB/wGl
AW0BSAH/Ac4BjgFcAf8BzgGOAVwB/wGYAWQBQgH/Ac4BjgFcAf8BzgGOAVwB/wHOAY4BXAH/AW0BSgEx
Af8BrgFyAU0B/wHOAY4BXAH/Ac4BjgFcAf8BCQEFAQIB/4AAAd4B2wHeAf8BpQGmAaUB/wGlAaYBpQH/
AXYBdAF2Af8BbgFwAW4B/wFuAXABbgH/AW4BcAFuAf8BbgFwAW4B/wFuAXABbgH/AW4BcAFuAf8BbgFw
AW4B/wFuAXABbgH/AW4BcAFuAf8BLAErASwB/wEsASsBLAH/AwAF/wEJAQUBAgH/AQoBBgECAf8BCwEG
AQMB/wELAQYBAgH/AQoBBgECAf8BCgEGAQIB/wELAQYBAgH/AQsBBgECAf8BCgEGAQIB/wEKAQYBAgH/
AQsBBgEDAf8BCwEGAQIB/wEKAQYBAgH/AQkBBQECBf+AAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEB
AQABAQUAAYAXAAP/gQAL
</value>
</data>
<data name="tabControl2.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 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">
<value>Продвинутые настройки</value>
</data>
<data name="$this.ToolTip" xml:space="preserve">
<value />
</data>
</root>

View File

@@ -36,6 +36,7 @@
<AssemblyKeyFile>.</AssemblyKeyFile>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<TargetFrameworkVersion>v1.1</TargetFrameworkVersion>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.Xml" />