mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
* HDCD detection & decoding with library by Christopher Key
* All output formats allow for 24-bit audio * ALAC (Apple Lossless) input support (preliminary) * AccurateRip PartialContent error fixed * 'pause' button switches to 'resume' button when pressed * option to add md5 checksum to wavpack files * option to generate .m3u playlists * option to export .cue even when embedding it
This commit is contained in:
@@ -45,7 +45,6 @@ namespace APEDotNet {
|
|||||||
|
|
||||||
pAPEDecompress = NULL;
|
pAPEDecompress = NULL;
|
||||||
_sampleOffset = 0;
|
_sampleOffset = 0;
|
||||||
_samplesWaiting = false;
|
|
||||||
_path = path;
|
_path = path;
|
||||||
pBuffer = NULL;
|
pBuffer = NULL;
|
||||||
|
|
||||||
@@ -109,7 +108,6 @@ namespace APEDotNet {
|
|||||||
}
|
}
|
||||||
void set(Int64 offset) {
|
void set(Int64 offset) {
|
||||||
_sampleOffset = offset;
|
_sampleOffset = offset;
|
||||||
_samplesWaiting = false;
|
|
||||||
if (pAPEDecompress->Seek ((int) offset /*? */))
|
if (pAPEDecompress->Seek ((int) offset /*? */))
|
||||||
throw gcnew Exception("Unable to seek.");
|
throw gcnew Exception("Unable to seek.");
|
||||||
}
|
}
|
||||||
@@ -168,7 +166,6 @@ namespace APEDotNet {
|
|||||||
|
|
||||||
sampleBuffer = _sampleBuffer;
|
sampleBuffer = _sampleBuffer;
|
||||||
_sampleOffset += nBlocksRetrieved;
|
_sampleOffset += nBlocksRetrieved;
|
||||||
_samplesWaiting = false;
|
|
||||||
|
|
||||||
return sampleCount;
|
return sampleCount;
|
||||||
}
|
}
|
||||||
@@ -180,7 +177,6 @@ namespace APEDotNet {
|
|||||||
Int64 _sampleCount, _sampleOffset;
|
Int64 _sampleCount, _sampleOffset;
|
||||||
Int32 _bitsPerSample, _channelCount, _sampleRate;
|
Int32 _bitsPerSample, _channelCount, _sampleRate;
|
||||||
int nBlockAlign;
|
int nBlockAlign;
|
||||||
bool _samplesWaiting;
|
|
||||||
unsigned char * pBuffer;
|
unsigned char * pBuffer;
|
||||||
String^ _path;
|
String^ _path;
|
||||||
|
|
||||||
@@ -223,6 +219,7 @@ namespace APEDotNet {
|
|||||||
_bitsPerSample = bitsPerSample;
|
_bitsPerSample = bitsPerSample;
|
||||||
_channelCount = channelCount;
|
_channelCount = channelCount;
|
||||||
_sampleRate = sampleRate;
|
_sampleRate = sampleRate;
|
||||||
|
_blockAlign = _channelCount * ((_bitsPerSample + 7) / 8);
|
||||||
|
|
||||||
int nRetVal;
|
int nRetVal;
|
||||||
pAPECompress = CreateIAPECompress (&nRetVal);
|
pAPECompress = CreateIAPECompress (&nRetVal);
|
||||||
@@ -282,14 +279,9 @@ namespace APEDotNet {
|
|||||||
|
|
||||||
void Write(array<unsigned char>^ sampleBuffer, UInt32 sampleCount) {
|
void Write(array<unsigned char>^ sampleBuffer, UInt32 sampleCount) {
|
||||||
if (!_initialized) Initialize();
|
if (!_initialized) Initialize();
|
||||||
|
|
||||||
pin_ptr<unsigned char> pSampleBuffer = &sampleBuffer[0];
|
pin_ptr<unsigned char> pSampleBuffer = &sampleBuffer[0];
|
||||||
|
if (pAPECompress->AddData (pSampleBuffer, sampleCount * _blockAlign))
|
||||||
if (pAPECompress->AddData (pSampleBuffer, sampleCount * sizeof (int)))
|
|
||||||
{
|
|
||||||
throw gcnew Exception("An error occurred while encoding.");
|
throw gcnew Exception("An error occurred while encoding.");
|
||||||
}
|
|
||||||
|
|
||||||
_samplesWritten += sampleCount;
|
_samplesWritten += sampleCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -307,7 +299,7 @@ namespace APEDotNet {
|
|||||||
IAPECompress * pAPECompress;
|
IAPECompress * pAPECompress;
|
||||||
bool _initialized;
|
bool _initialized;
|
||||||
Int32 _finalSampleCount, _samplesWritten;
|
Int32 _finalSampleCount, _samplesWritten;
|
||||||
Int32 _bitsPerSample, _channelCount, _sampleRate;
|
Int32 _bitsPerSample, _channelCount, _sampleRate, _blockAlign;
|
||||||
Int32 _compressionLevel;
|
Int32 _compressionLevel;
|
||||||
NameValueCollection^ _tags;
|
NameValueCollection^ _tags;
|
||||||
String^ _path;
|
String^ _path;
|
||||||
@@ -322,7 +314,7 @@ namespace APEDotNet {
|
|||||||
FillWaveFormatEx (&waveFormat, _sampleRate, _bitsPerSample, _channelCount);
|
FillWaveFormatEx (&waveFormat, _sampleRate, _bitsPerSample, _channelCount);
|
||||||
res = pAPECompress->Start ((const wchar_t*)pathChars.ToPointer(),
|
res = pAPECompress->Start ((const wchar_t*)pathChars.ToPointer(),
|
||||||
&waveFormat,
|
&waveFormat,
|
||||||
(_finalSampleCount == 0) ? MAX_AUDIO_BYTES_UNKNOWN : _finalSampleCount * sizeof (int),
|
(_finalSampleCount == 0) ? MAX_AUDIO_BYTES_UNKNOWN : _finalSampleCount * _blockAlign,
|
||||||
_compressionLevel,
|
_compressionLevel,
|
||||||
NULL,
|
NULL,
|
||||||
CREATE_WAV_HEADER_ON_DECOMPRESSION);
|
CREATE_WAV_HEADER_ON_DECOMPRESSION);
|
||||||
|
|||||||
@@ -41,166 +41,165 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUEToolsLib", "..\CUEToolsL
|
|||||||
{E70FA90A-7012-4A52-86B5-362B699D1540} = {E70FA90A-7012-4A52-86B5-362B699D1540}
|
{E70FA90A-7012-4A52-86B5-362B699D1540} = {E70FA90A-7012-4A52-86B5-362B699D1540}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HDCDDotNet", "..\HDCDDotNet\HDCDDotNet.csproj", "{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AudioCodecsDotNet", "..\AudioCodecsDotNet\AudioCodecsDotNet.csproj", "{6458A13A-30EF-45A9-9D58-E5031B17BEE2}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ALACDotNet", "..\ALACDotNet\ALACDotNet.csproj", "{F2EC7193-D5E5-4252-9803-5CEB407E910F}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Debug|x64 = Debug|x64
|
Debug|x64 = Debug|x64
|
||||||
Debug|x86 = Debug|x86
|
Debug|x86 = Debug|x86
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
Release|x64 = Release|x64
|
Release|x64 = Release|x64
|
||||||
Release|x86 = Release|x86
|
Release|x86 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|Win32.ActiveCfg = Debug|x86
|
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|Win32.Build.0 = Debug|x86
|
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|x64.ActiveCfg = Debug|x64
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|x64.Build.0 = Debug|x64
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|x64.Build.0 = Debug|x64
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|x86.ActiveCfg = Debug|x86
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|x86.Build.0 = Debug|x86
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Debug|x86.Build.0 = Debug|x86
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|Any CPU.Build.0 = Release|Any CPU
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|Win32.ActiveCfg = Release|x86
|
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|Win32.Build.0 = Release|x86
|
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|x64.ActiveCfg = Release|x64
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|x64.ActiveCfg = Release|x64
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|x64.Build.0 = Release|x64
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|x64.Build.0 = Release|x64
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|x86.ActiveCfg = Release|x86
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|x86.ActiveCfg = Release|x86
|
||||||
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|x86.Build.0 = Release|x86
|
{EF351583-A9CD-4530-92C3-20AC02136BC2}.Release|x86.Build.0 = Release|x86
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x64.ActiveCfg = Debug|x64
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x64.Build.0 = Debug|x64
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x64.Build.0 = Debug|x64
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x86.ActiveCfg = Debug|Win32
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x86.Build.0 = Debug|Win32
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x86.Build.0 = Debug|Win32
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Any CPU.ActiveCfg = Release|x64
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|x64.ActiveCfg = Release|x64
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|x64.ActiveCfg = Release|x64
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|x64.Build.0 = Release|x64
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|x64.Build.0 = Release|x64
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|x86.ActiveCfg = Release|Win32
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|x86.ActiveCfg = Release|Win32
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|x86.Build.0 = Release|Win32
|
{E70FA90A-7012-4A52-86B5-362B699D1540}.Release|x86.Build.0 = Release|Win32
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|x64.ActiveCfg = Debug|x64
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|x64.Build.0 = Debug|x64
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|x64.Build.0 = Debug|x64
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|x86.ActiveCfg = Debug|Win32
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|x86.Build.0 = Debug|Win32
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Debug|x86.Build.0 = Debug|Win32
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|Any CPU.ActiveCfg = Release|x64
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|x64.ActiveCfg = Release|x64
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|x64.ActiveCfg = Release|x64
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|x64.Build.0 = Release|x64
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|x64.Build.0 = Release|x64
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|x86.ActiveCfg = Release|Win32
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|x86.ActiveCfg = Release|Win32
|
||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|x86.Build.0 = Release|Win32
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6}.Release|x86.Build.0 = Release|Win32
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|x64.ActiveCfg = Debug|x64
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|x64.Build.0 = Debug|x64
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|x64.Build.0 = Debug|x64
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|x86.ActiveCfg = Debug|Win32
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|x86.Build.0 = Debug|Win32
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Debug|x86.Build.0 = Debug|Win32
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|Any CPU.ActiveCfg = Release|Win32
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|x64.ActiveCfg = Release|x64
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|x64.ActiveCfg = Release|x64
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|x64.Build.0 = Release|x64
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|x64.Build.0 = Release|x64
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|x86.ActiveCfg = Release|Win32
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|x86.ActiveCfg = Release|Win32
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|x86.Build.0 = Release|Win32
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000}.Release|x86.Build.0 = Release|Win32
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|x64.ActiveCfg = Debug|x64
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|x64.Build.0 = Debug|x64
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|x64.Build.0 = Debug|x64
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|x86.ActiveCfg = Debug|Win32
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|x86.Build.0 = Debug|Win32
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Debug|x86.Build.0 = Debug|Win32
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|Any CPU.ActiveCfg = Release|x64
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|x64.ActiveCfg = Release|x64
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|x64.ActiveCfg = Release|x64
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|x64.Build.0 = Release|x64
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|x64.Build.0 = Release|x64
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|x86.ActiveCfg = Release|Win32
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|x86.ActiveCfg = Release|Win32
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|x86.Build.0 = Release|Win32
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779}.Release|x86.Build.0 = Release|Win32
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x64.ActiveCfg = Debug|x64
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x64.Build.0 = Debug|x64
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x64.Build.0 = Debug|x64
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x86.ActiveCfg = Debug|Win32
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x86.Build.0 = Debug|Win32
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x86.Build.0 = Debug|Win32
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|Any CPU.ActiveCfg = Release|x64
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x64.ActiveCfg = Release|x64
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x64.ActiveCfg = Release|x64
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x64.Build.0 = Release|x64
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x64.Build.0 = Release|x64
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x86.ActiveCfg = Release|Win32
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x86.ActiveCfg = Release|Win32
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x86.Build.0 = Release|Win32
|
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x86.Build.0 = Release|Win32
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|Win32.ActiveCfg = Debug|x86
|
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|Win32.Build.0 = Debug|x86
|
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|x64.ActiveCfg = Debug|x64
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|x64.Build.0 = Debug|x64
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|x64.Build.0 = Debug|x64
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|x86.ActiveCfg = Debug|x86
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|x86.Build.0 = Debug|x86
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Debug|x86.Build.0 = Debug|x86
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|Any CPU.Build.0 = Release|Any CPU
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|Win32.ActiveCfg = Release|x86
|
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|Win32.Build.0 = Release|x86
|
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|x64.ActiveCfg = Release|x64
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|x64.ActiveCfg = Release|x64
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|x64.Build.0 = Release|x64
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|x64.Build.0 = Release|x64
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|x86.ActiveCfg = Release|x86
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|x86.ActiveCfg = Release|x86
|
||||||
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|x86.Build.0 = Release|x86
|
{CA200BCB-DFC6-4153-9BD4-785BC768B26B}.Release|x86.Build.0 = Release|x86
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|x64.ActiveCfg = Debug|x64
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|x64.Build.0 = Debug|x64
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|x64.Build.0 = Debug|x64
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|x86.ActiveCfg = Debug|Win32
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|x86.Build.0 = Debug|Win32
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Debug|x86.Build.0 = Debug|Win32
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|Any CPU.ActiveCfg = Release|x64
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|x64.ActiveCfg = Release|x64
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|x64.ActiveCfg = Release|x64
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|x64.Build.0 = Release|x64
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|x64.Build.0 = Release|x64
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|x86.ActiveCfg = Release|Win32
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|x86.ActiveCfg = Release|Win32
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|x86.Build.0 = Release|Win32
|
{5CCCB9CF-0384-458F-BA08-72B73866840F}.Release|x86.Build.0 = Release|Win32
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|Win32.ActiveCfg = Debug|x86
|
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|Win32.Build.0 = Debug|x86
|
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|x64.ActiveCfg = Debug|x64
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|x64.Build.0 = Debug|x64
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|x64.Build.0 = Debug|x64
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|x86.ActiveCfg = Debug|x86
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|x86.Build.0 = Debug|x86
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Debug|x86.Build.0 = Debug|x86
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|Any CPU.Build.0 = Release|Any CPU
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|Win32.ActiveCfg = Release|x86
|
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|Win32.Build.0 = Release|x86
|
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|x64.ActiveCfg = Release|x64
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|x64.ActiveCfg = Release|x64
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|x64.Build.0 = Release|x64
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|x64.Build.0 = Release|x64
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|x86.ActiveCfg = Release|x86
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|x86.ActiveCfg = Release|x86
|
||||||
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|x86.Build.0 = Release|x86
|
{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}.Release|x86.Build.0 = Release|x86
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|Win32.ActiveCfg = Debug|x86
|
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|Win32.Build.0 = Debug|x86
|
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|x64.ActiveCfg = Debug|x64
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|x64.Build.0 = Debug|x64
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|x64.Build.0 = Debug|x64
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|x86.ActiveCfg = Debug|x86
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|x86.Build.0 = Debug|x86
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Debug|x86.Build.0 = Debug|x86
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|Any CPU.Build.0 = Release|Any CPU
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|Win32.ActiveCfg = Release|x86
|
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|Win32.Build.0 = Release|x86
|
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|x64.ActiveCfg = Release|x64
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|x64.ActiveCfg = Release|x64
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|x64.Build.0 = Release|x64
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|x64.Build.0 = Release|x64
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|x86.ActiveCfg = Release|x86
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|x86.ActiveCfg = Release|x86
|
||||||
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|x86.Build.0 = Release|x86
|
{4911BD82-49EF-4858-8B51-5394F86739A4}.Release|x86.Build.0 = Release|x86
|
||||||
|
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{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|x64.ActiveCfg = Release|x64
|
||||||
|
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Release|x64.Build.0 = Release|x64
|
||||||
|
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}.Release|x86.Build.0 = Release|x86
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Release|x64.Build.0 = Release|x64
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{6458A13A-30EF-45A9-9D58-E5031B17BEE2}.Release|x86.Build.0 = Release|x86
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Release|x64.Build.0 = Release|x64
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F}.Release|x86.Build.0 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@@ -209,6 +208,7 @@ Global
|
|||||||
{9AE965C4-301E-4C01-B90F-297AF341ACC6} = {85F88959-C9E9-4989-ACB1-67BA9D1BEFE7}
|
{9AE965C4-301E-4C01-B90F-297AF341ACC6} = {85F88959-C9E9-4989-ACB1-67BA9D1BEFE7}
|
||||||
{CC2E74B6-534A-43D8-9F16-AC03FE955000} = {85F88959-C9E9-4989-ACB1-67BA9D1BEFE7}
|
{CC2E74B6-534A-43D8-9F16-AC03FE955000} = {85F88959-C9E9-4989-ACB1-67BA9D1BEFE7}
|
||||||
{E70FA90A-7012-4A52-86B5-362B699D1540} = {85F88959-C9E9-4989-ACB1-67BA9D1BEFE7}
|
{E70FA90A-7012-4A52-86B5-362B699D1540} = {85F88959-C9E9-4989-ACB1-67BA9D1BEFE7}
|
||||||
|
{F2EC7193-D5E5-4252-9803-5CEB407E910F} = {85F88959-C9E9-4989-ACB1-67BA9D1BEFE7}
|
||||||
{0B9C97D4-61B8-4294-A1DF-BA90752A1779} = {8B179853-B7D6-479C-B8B2-6CBCE835D040}
|
{0B9C97D4-61B8-4294-A1DF-BA90752A1779} = {8B179853-B7D6-479C-B8B2-6CBCE835D040}
|
||||||
{4CEFBC84-C215-11DB-8314-0800200C9A66} = {8B179853-B7D6-479C-B8B2-6CBCE835D040}
|
{4CEFBC84-C215-11DB-8314-0800200C9A66} = {8B179853-B7D6-479C-B8B2-6CBCE835D040}
|
||||||
{5CCCB9CF-0384-458F-BA08-72B73866840F} = {8B179853-B7D6-479C-B8B2-6CBCE835D040}
|
{5CCCB9CF-0384-458F-BA08-72B73866840F} = {8B179853-B7D6-479C-B8B2-6CBCE835D040}
|
||||||
|
|||||||
244
CUETools/frmCUETools.Designer.cs
generated
244
CUETools/frmCUETools.Designer.cs
generated
@@ -71,6 +71,7 @@ namespace JDP {
|
|||||||
this.btnCUECreator = new System.Windows.Forms.Button();
|
this.btnCUECreator = new System.Windows.Forms.Button();
|
||||||
this.btnStop = new System.Windows.Forms.Button();
|
this.btnStop = new System.Windows.Forms.Button();
|
||||||
this.btnPause = new System.Windows.Forms.Button();
|
this.btnPause = new System.Windows.Forms.Button();
|
||||||
|
this.btnResume = new System.Windows.Forms.Button();
|
||||||
this.grpCUEPaths.SuspendLayout();
|
this.grpCUEPaths.SuspendLayout();
|
||||||
this.grpOutputStyle.SuspendLayout();
|
this.grpOutputStyle.SuspendLayout();
|
||||||
this.grpOutputPathGeneration.SuspendLayout();
|
this.grpOutputPathGeneration.SuspendLayout();
|
||||||
@@ -81,78 +82,125 @@ namespace JDP {
|
|||||||
//
|
//
|
||||||
// btnConvert
|
// btnConvert
|
||||||
//
|
//
|
||||||
|
this.btnConvert.AccessibleDescription = null;
|
||||||
|
this.btnConvert.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnConvert, "btnConvert");
|
resources.ApplyResources(this.btnConvert, "btnConvert");
|
||||||
|
this.btnConvert.BackgroundImage = null;
|
||||||
|
this.btnConvert.Font = null;
|
||||||
this.btnConvert.Name = "btnConvert";
|
this.btnConvert.Name = "btnConvert";
|
||||||
|
this.toolTip1.SetToolTip(this.btnConvert, resources.GetString("btnConvert.ToolTip"));
|
||||||
this.btnConvert.UseVisualStyleBackColor = true;
|
this.btnConvert.UseVisualStyleBackColor = true;
|
||||||
this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click);
|
this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click);
|
||||||
//
|
//
|
||||||
// grpCUEPaths
|
// grpCUEPaths
|
||||||
//
|
//
|
||||||
|
this.grpCUEPaths.AccessibleDescription = null;
|
||||||
|
this.grpCUEPaths.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.grpCUEPaths, "grpCUEPaths");
|
||||||
|
this.grpCUEPaths.BackgroundImage = null;
|
||||||
this.grpCUEPaths.Controls.Add(this.btnBrowseOutput);
|
this.grpCUEPaths.Controls.Add(this.btnBrowseOutput);
|
||||||
this.grpCUEPaths.Controls.Add(this.btnBrowseInput);
|
this.grpCUEPaths.Controls.Add(this.btnBrowseInput);
|
||||||
this.grpCUEPaths.Controls.Add(this.lblOutput);
|
this.grpCUEPaths.Controls.Add(this.lblOutput);
|
||||||
this.grpCUEPaths.Controls.Add(this.lblInput);
|
this.grpCUEPaths.Controls.Add(this.lblInput);
|
||||||
this.grpCUEPaths.Controls.Add(this.txtOutputPath);
|
this.grpCUEPaths.Controls.Add(this.txtOutputPath);
|
||||||
this.grpCUEPaths.Controls.Add(this.txtInputPath);
|
this.grpCUEPaths.Controls.Add(this.txtInputPath);
|
||||||
resources.ApplyResources(this.grpCUEPaths, "grpCUEPaths");
|
this.grpCUEPaths.Font = null;
|
||||||
this.grpCUEPaths.Name = "grpCUEPaths";
|
this.grpCUEPaths.Name = "grpCUEPaths";
|
||||||
this.grpCUEPaths.TabStop = false;
|
this.grpCUEPaths.TabStop = false;
|
||||||
|
this.toolTip1.SetToolTip(this.grpCUEPaths, resources.GetString("grpCUEPaths.ToolTip"));
|
||||||
//
|
//
|
||||||
// btnBrowseOutput
|
// btnBrowseOutput
|
||||||
//
|
//
|
||||||
|
this.btnBrowseOutput.AccessibleDescription = null;
|
||||||
|
this.btnBrowseOutput.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnBrowseOutput, "btnBrowseOutput");
|
resources.ApplyResources(this.btnBrowseOutput, "btnBrowseOutput");
|
||||||
|
this.btnBrowseOutput.BackgroundImage = null;
|
||||||
|
this.btnBrowseOutput.Font = null;
|
||||||
this.btnBrowseOutput.Name = "btnBrowseOutput";
|
this.btnBrowseOutput.Name = "btnBrowseOutput";
|
||||||
|
this.toolTip1.SetToolTip(this.btnBrowseOutput, resources.GetString("btnBrowseOutput.ToolTip"));
|
||||||
this.btnBrowseOutput.UseVisualStyleBackColor = true;
|
this.btnBrowseOutput.UseVisualStyleBackColor = true;
|
||||||
this.btnBrowseOutput.Click += new System.EventHandler(this.btnBrowseOutput_Click);
|
this.btnBrowseOutput.Click += new System.EventHandler(this.btnBrowseOutput_Click);
|
||||||
//
|
//
|
||||||
// btnBrowseInput
|
// btnBrowseInput
|
||||||
//
|
//
|
||||||
|
this.btnBrowseInput.AccessibleDescription = null;
|
||||||
|
this.btnBrowseInput.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnBrowseInput, "btnBrowseInput");
|
resources.ApplyResources(this.btnBrowseInput, "btnBrowseInput");
|
||||||
|
this.btnBrowseInput.BackgroundImage = null;
|
||||||
|
this.btnBrowseInput.Font = null;
|
||||||
this.btnBrowseInput.Name = "btnBrowseInput";
|
this.btnBrowseInput.Name = "btnBrowseInput";
|
||||||
|
this.toolTip1.SetToolTip(this.btnBrowseInput, resources.GetString("btnBrowseInput.ToolTip"));
|
||||||
this.btnBrowseInput.UseVisualStyleBackColor = true;
|
this.btnBrowseInput.UseVisualStyleBackColor = true;
|
||||||
this.btnBrowseInput.Click += new System.EventHandler(this.btnBrowseInput_Click);
|
this.btnBrowseInput.Click += new System.EventHandler(this.btnBrowseInput_Click);
|
||||||
//
|
//
|
||||||
// lblOutput
|
// lblOutput
|
||||||
//
|
//
|
||||||
|
this.lblOutput.AccessibleDescription = null;
|
||||||
|
this.lblOutput.AccessibleName = null;
|
||||||
resources.ApplyResources(this.lblOutput, "lblOutput");
|
resources.ApplyResources(this.lblOutput, "lblOutput");
|
||||||
|
this.lblOutput.Font = null;
|
||||||
this.lblOutput.Name = "lblOutput";
|
this.lblOutput.Name = "lblOutput";
|
||||||
|
this.toolTip1.SetToolTip(this.lblOutput, resources.GetString("lblOutput.ToolTip"));
|
||||||
//
|
//
|
||||||
// lblInput
|
// lblInput
|
||||||
//
|
//
|
||||||
|
this.lblInput.AccessibleDescription = null;
|
||||||
|
this.lblInput.AccessibleName = null;
|
||||||
resources.ApplyResources(this.lblInput, "lblInput");
|
resources.ApplyResources(this.lblInput, "lblInput");
|
||||||
|
this.lblInput.Font = null;
|
||||||
this.lblInput.Name = "lblInput";
|
this.lblInput.Name = "lblInput";
|
||||||
|
this.toolTip1.SetToolTip(this.lblInput, resources.GetString("lblInput.ToolTip"));
|
||||||
//
|
//
|
||||||
// txtOutputPath
|
// txtOutputPath
|
||||||
//
|
//
|
||||||
|
this.txtOutputPath.AccessibleDescription = null;
|
||||||
|
this.txtOutputPath.AccessibleName = null;
|
||||||
this.txtOutputPath.AllowDrop = true;
|
this.txtOutputPath.AllowDrop = true;
|
||||||
resources.ApplyResources(this.txtOutputPath, "txtOutputPath");
|
resources.ApplyResources(this.txtOutputPath, "txtOutputPath");
|
||||||
|
this.txtOutputPath.BackgroundImage = null;
|
||||||
|
this.txtOutputPath.Font = null;
|
||||||
this.txtOutputPath.Name = "txtOutputPath";
|
this.txtOutputPath.Name = "txtOutputPath";
|
||||||
|
this.toolTip1.SetToolTip(this.txtOutputPath, resources.GetString("txtOutputPath.ToolTip"));
|
||||||
this.txtOutputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop);
|
this.txtOutputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop);
|
||||||
this.txtOutputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter);
|
this.txtOutputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter);
|
||||||
//
|
//
|
||||||
// txtInputPath
|
// txtInputPath
|
||||||
//
|
//
|
||||||
|
this.txtInputPath.AccessibleDescription = null;
|
||||||
|
this.txtInputPath.AccessibleName = null;
|
||||||
this.txtInputPath.AllowDrop = true;
|
this.txtInputPath.AllowDrop = true;
|
||||||
resources.ApplyResources(this.txtInputPath, "txtInputPath");
|
resources.ApplyResources(this.txtInputPath, "txtInputPath");
|
||||||
|
this.txtInputPath.BackgroundImage = null;
|
||||||
|
this.txtInputPath.Font = null;
|
||||||
this.txtInputPath.Name = "txtInputPath";
|
this.txtInputPath.Name = "txtInputPath";
|
||||||
|
this.toolTip1.SetToolTip(this.txtInputPath, resources.GetString("txtInputPath.ToolTip"));
|
||||||
this.txtInputPath.TextChanged += new System.EventHandler(this.txtInputPath_TextChanged);
|
this.txtInputPath.TextChanged += new System.EventHandler(this.txtInputPath_TextChanged);
|
||||||
this.txtInputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop);
|
this.txtInputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop);
|
||||||
this.txtInputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter);
|
this.txtInputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter);
|
||||||
//
|
//
|
||||||
// grpOutputStyle
|
// grpOutputStyle
|
||||||
//
|
//
|
||||||
|
this.grpOutputStyle.AccessibleDescription = null;
|
||||||
|
this.grpOutputStyle.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.grpOutputStyle, "grpOutputStyle");
|
||||||
|
this.grpOutputStyle.BackgroundImage = null;
|
||||||
this.grpOutputStyle.Controls.Add(this.rbEmbedCUE);
|
this.grpOutputStyle.Controls.Add(this.rbEmbedCUE);
|
||||||
this.grpOutputStyle.Controls.Add(this.rbGapsLeftOut);
|
this.grpOutputStyle.Controls.Add(this.rbGapsLeftOut);
|
||||||
this.grpOutputStyle.Controls.Add(this.rbGapsPrepended);
|
this.grpOutputStyle.Controls.Add(this.rbGapsPrepended);
|
||||||
this.grpOutputStyle.Controls.Add(this.rbGapsAppended);
|
this.grpOutputStyle.Controls.Add(this.rbGapsAppended);
|
||||||
this.grpOutputStyle.Controls.Add(this.rbSingleFile);
|
this.grpOutputStyle.Controls.Add(this.rbSingleFile);
|
||||||
resources.ApplyResources(this.grpOutputStyle, "grpOutputStyle");
|
this.grpOutputStyle.Font = null;
|
||||||
this.grpOutputStyle.Name = "grpOutputStyle";
|
this.grpOutputStyle.Name = "grpOutputStyle";
|
||||||
this.grpOutputStyle.TabStop = false;
|
this.grpOutputStyle.TabStop = false;
|
||||||
|
this.toolTip1.SetToolTip(this.grpOutputStyle, resources.GetString("grpOutputStyle.ToolTip"));
|
||||||
//
|
//
|
||||||
// rbEmbedCUE
|
// rbEmbedCUE
|
||||||
//
|
//
|
||||||
|
this.rbEmbedCUE.AccessibleDescription = null;
|
||||||
|
this.rbEmbedCUE.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbEmbedCUE, "rbEmbedCUE");
|
resources.ApplyResources(this.rbEmbedCUE, "rbEmbedCUE");
|
||||||
|
this.rbEmbedCUE.BackgroundImage = null;
|
||||||
|
this.rbEmbedCUE.Font = null;
|
||||||
this.rbEmbedCUE.Name = "rbEmbedCUE";
|
this.rbEmbedCUE.Name = "rbEmbedCUE";
|
||||||
this.rbEmbedCUE.TabStop = true;
|
this.rbEmbedCUE.TabStop = true;
|
||||||
this.toolTip1.SetToolTip(this.rbEmbedCUE, resources.GetString("rbEmbedCUE.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbEmbedCUE, resources.GetString("rbEmbedCUE.ToolTip"));
|
||||||
@@ -161,29 +209,45 @@ namespace JDP {
|
|||||||
//
|
//
|
||||||
// rbGapsLeftOut
|
// rbGapsLeftOut
|
||||||
//
|
//
|
||||||
|
this.rbGapsLeftOut.AccessibleDescription = null;
|
||||||
|
this.rbGapsLeftOut.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbGapsLeftOut, "rbGapsLeftOut");
|
resources.ApplyResources(this.rbGapsLeftOut, "rbGapsLeftOut");
|
||||||
|
this.rbGapsLeftOut.BackgroundImage = null;
|
||||||
|
this.rbGapsLeftOut.Font = null;
|
||||||
this.rbGapsLeftOut.Name = "rbGapsLeftOut";
|
this.rbGapsLeftOut.Name = "rbGapsLeftOut";
|
||||||
this.toolTip1.SetToolTip(this.rbGapsLeftOut, resources.GetString("rbGapsLeftOut.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbGapsLeftOut, resources.GetString("rbGapsLeftOut.ToolTip"));
|
||||||
this.rbGapsLeftOut.UseVisualStyleBackColor = true;
|
this.rbGapsLeftOut.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// rbGapsPrepended
|
// rbGapsPrepended
|
||||||
//
|
//
|
||||||
|
this.rbGapsPrepended.AccessibleDescription = null;
|
||||||
|
this.rbGapsPrepended.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbGapsPrepended, "rbGapsPrepended");
|
resources.ApplyResources(this.rbGapsPrepended, "rbGapsPrepended");
|
||||||
|
this.rbGapsPrepended.BackgroundImage = null;
|
||||||
|
this.rbGapsPrepended.Font = null;
|
||||||
this.rbGapsPrepended.Name = "rbGapsPrepended";
|
this.rbGapsPrepended.Name = "rbGapsPrepended";
|
||||||
this.toolTip1.SetToolTip(this.rbGapsPrepended, resources.GetString("rbGapsPrepended.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbGapsPrepended, resources.GetString("rbGapsPrepended.ToolTip"));
|
||||||
this.rbGapsPrepended.UseVisualStyleBackColor = true;
|
this.rbGapsPrepended.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// rbGapsAppended
|
// rbGapsAppended
|
||||||
//
|
//
|
||||||
|
this.rbGapsAppended.AccessibleDescription = null;
|
||||||
|
this.rbGapsAppended.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbGapsAppended, "rbGapsAppended");
|
resources.ApplyResources(this.rbGapsAppended, "rbGapsAppended");
|
||||||
|
this.rbGapsAppended.BackgroundImage = null;
|
||||||
|
this.rbGapsAppended.Font = null;
|
||||||
this.rbGapsAppended.Name = "rbGapsAppended";
|
this.rbGapsAppended.Name = "rbGapsAppended";
|
||||||
this.toolTip1.SetToolTip(this.rbGapsAppended, resources.GetString("rbGapsAppended.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbGapsAppended, resources.GetString("rbGapsAppended.ToolTip"));
|
||||||
this.rbGapsAppended.UseVisualStyleBackColor = true;
|
this.rbGapsAppended.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// rbSingleFile
|
// rbSingleFile
|
||||||
//
|
//
|
||||||
|
this.rbSingleFile.AccessibleDescription = null;
|
||||||
|
this.rbSingleFile.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbSingleFile, "rbSingleFile");
|
resources.ApplyResources(this.rbSingleFile, "rbSingleFile");
|
||||||
|
this.rbSingleFile.BackgroundImage = null;
|
||||||
this.rbSingleFile.Checked = true;
|
this.rbSingleFile.Checked = true;
|
||||||
|
this.rbSingleFile.Font = null;
|
||||||
this.rbSingleFile.Name = "rbSingleFile";
|
this.rbSingleFile.Name = "rbSingleFile";
|
||||||
this.rbSingleFile.TabStop = true;
|
this.rbSingleFile.TabStop = true;
|
||||||
this.toolTip1.SetToolTip(this.rbSingleFile, resources.GetString("rbSingleFile.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbSingleFile, resources.GetString("rbSingleFile.ToolTip"));
|
||||||
@@ -191,13 +255,22 @@ namespace JDP {
|
|||||||
//
|
//
|
||||||
// btnAbout
|
// btnAbout
|
||||||
//
|
//
|
||||||
|
this.btnAbout.AccessibleDescription = null;
|
||||||
|
this.btnAbout.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnAbout, "btnAbout");
|
resources.ApplyResources(this.btnAbout, "btnAbout");
|
||||||
|
this.btnAbout.BackgroundImage = null;
|
||||||
|
this.btnAbout.Font = null;
|
||||||
this.btnAbout.Name = "btnAbout";
|
this.btnAbout.Name = "btnAbout";
|
||||||
|
this.toolTip1.SetToolTip(this.btnAbout, resources.GetString("btnAbout.ToolTip"));
|
||||||
this.btnAbout.UseVisualStyleBackColor = true;
|
this.btnAbout.UseVisualStyleBackColor = true;
|
||||||
this.btnAbout.Click += new System.EventHandler(this.btnAbout_Click);
|
this.btnAbout.Click += new System.EventHandler(this.btnAbout_Click);
|
||||||
//
|
//
|
||||||
// grpOutputPathGeneration
|
// grpOutputPathGeneration
|
||||||
//
|
//
|
||||||
|
this.grpOutputPathGeneration.AccessibleDescription = null;
|
||||||
|
this.grpOutputPathGeneration.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.grpOutputPathGeneration, "grpOutputPathGeneration");
|
||||||
|
this.grpOutputPathGeneration.BackgroundImage = null;
|
||||||
this.grpOutputPathGeneration.Controls.Add(this.txtCustomFormat);
|
this.grpOutputPathGeneration.Controls.Add(this.txtCustomFormat);
|
||||||
this.grpOutputPathGeneration.Controls.Add(this.rbCustomFormat);
|
this.grpOutputPathGeneration.Controls.Add(this.rbCustomFormat);
|
||||||
this.grpOutputPathGeneration.Controls.Add(this.txtCreateSubdirectory);
|
this.grpOutputPathGeneration.Controls.Add(this.txtCreateSubdirectory);
|
||||||
@@ -205,80 +278,130 @@ namespace JDP {
|
|||||||
this.grpOutputPathGeneration.Controls.Add(this.rbCreateSubdirectory);
|
this.grpOutputPathGeneration.Controls.Add(this.rbCreateSubdirectory);
|
||||||
this.grpOutputPathGeneration.Controls.Add(this.rbAppendFilename);
|
this.grpOutputPathGeneration.Controls.Add(this.rbAppendFilename);
|
||||||
this.grpOutputPathGeneration.Controls.Add(this.txtAppendFilename);
|
this.grpOutputPathGeneration.Controls.Add(this.txtAppendFilename);
|
||||||
resources.ApplyResources(this.grpOutputPathGeneration, "grpOutputPathGeneration");
|
this.grpOutputPathGeneration.Font = null;
|
||||||
this.grpOutputPathGeneration.Name = "grpOutputPathGeneration";
|
this.grpOutputPathGeneration.Name = "grpOutputPathGeneration";
|
||||||
this.grpOutputPathGeneration.TabStop = false;
|
this.grpOutputPathGeneration.TabStop = false;
|
||||||
|
this.toolTip1.SetToolTip(this.grpOutputPathGeneration, resources.GetString("grpOutputPathGeneration.ToolTip"));
|
||||||
//
|
//
|
||||||
// txtCustomFormat
|
// txtCustomFormat
|
||||||
//
|
//
|
||||||
|
this.txtCustomFormat.AccessibleDescription = null;
|
||||||
|
this.txtCustomFormat.AccessibleName = null;
|
||||||
resources.ApplyResources(this.txtCustomFormat, "txtCustomFormat");
|
resources.ApplyResources(this.txtCustomFormat, "txtCustomFormat");
|
||||||
|
this.txtCustomFormat.BackgroundImage = null;
|
||||||
|
this.txtCustomFormat.Font = null;
|
||||||
this.txtCustomFormat.Name = "txtCustomFormat";
|
this.txtCustomFormat.Name = "txtCustomFormat";
|
||||||
|
this.toolTip1.SetToolTip(this.txtCustomFormat, resources.GetString("txtCustomFormat.ToolTip"));
|
||||||
this.txtCustomFormat.TextChanged += new System.EventHandler(this.txtCustomFormat_TextChanged);
|
this.txtCustomFormat.TextChanged += new System.EventHandler(this.txtCustomFormat_TextChanged);
|
||||||
//
|
//
|
||||||
// rbCustomFormat
|
// rbCustomFormat
|
||||||
//
|
//
|
||||||
|
this.rbCustomFormat.AccessibleDescription = null;
|
||||||
|
this.rbCustomFormat.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbCustomFormat, "rbCustomFormat");
|
resources.ApplyResources(this.rbCustomFormat, "rbCustomFormat");
|
||||||
|
this.rbCustomFormat.BackgroundImage = null;
|
||||||
|
this.rbCustomFormat.Font = null;
|
||||||
this.rbCustomFormat.Name = "rbCustomFormat";
|
this.rbCustomFormat.Name = "rbCustomFormat";
|
||||||
this.rbCustomFormat.TabStop = true;
|
this.rbCustomFormat.TabStop = true;
|
||||||
|
this.toolTip1.SetToolTip(this.rbCustomFormat, resources.GetString("rbCustomFormat.ToolTip"));
|
||||||
this.rbCustomFormat.UseVisualStyleBackColor = true;
|
this.rbCustomFormat.UseVisualStyleBackColor = true;
|
||||||
this.rbCustomFormat.CheckedChanged += new System.EventHandler(this.rbCustomFormat_CheckedChanged);
|
this.rbCustomFormat.CheckedChanged += new System.EventHandler(this.rbCustomFormat_CheckedChanged);
|
||||||
//
|
//
|
||||||
// txtCreateSubdirectory
|
// txtCreateSubdirectory
|
||||||
//
|
//
|
||||||
|
this.txtCreateSubdirectory.AccessibleDescription = null;
|
||||||
|
this.txtCreateSubdirectory.AccessibleName = null;
|
||||||
resources.ApplyResources(this.txtCreateSubdirectory, "txtCreateSubdirectory");
|
resources.ApplyResources(this.txtCreateSubdirectory, "txtCreateSubdirectory");
|
||||||
|
this.txtCreateSubdirectory.BackgroundImage = null;
|
||||||
|
this.txtCreateSubdirectory.Font = null;
|
||||||
this.txtCreateSubdirectory.Name = "txtCreateSubdirectory";
|
this.txtCreateSubdirectory.Name = "txtCreateSubdirectory";
|
||||||
|
this.toolTip1.SetToolTip(this.txtCreateSubdirectory, resources.GetString("txtCreateSubdirectory.ToolTip"));
|
||||||
this.txtCreateSubdirectory.TextChanged += new System.EventHandler(this.txtCreateSubdirectory_TextChanged);
|
this.txtCreateSubdirectory.TextChanged += new System.EventHandler(this.txtCreateSubdirectory_TextChanged);
|
||||||
//
|
//
|
||||||
// rbDontGenerate
|
// rbDontGenerate
|
||||||
//
|
//
|
||||||
|
this.rbDontGenerate.AccessibleDescription = null;
|
||||||
|
this.rbDontGenerate.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbDontGenerate, "rbDontGenerate");
|
resources.ApplyResources(this.rbDontGenerate, "rbDontGenerate");
|
||||||
|
this.rbDontGenerate.BackgroundImage = null;
|
||||||
|
this.rbDontGenerate.Font = null;
|
||||||
this.rbDontGenerate.Name = "rbDontGenerate";
|
this.rbDontGenerate.Name = "rbDontGenerate";
|
||||||
|
this.toolTip1.SetToolTip(this.rbDontGenerate, resources.GetString("rbDontGenerate.ToolTip"));
|
||||||
this.rbDontGenerate.UseVisualStyleBackColor = true;
|
this.rbDontGenerate.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// rbCreateSubdirectory
|
// rbCreateSubdirectory
|
||||||
//
|
//
|
||||||
|
this.rbCreateSubdirectory.AccessibleDescription = null;
|
||||||
|
this.rbCreateSubdirectory.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbCreateSubdirectory, "rbCreateSubdirectory");
|
resources.ApplyResources(this.rbCreateSubdirectory, "rbCreateSubdirectory");
|
||||||
|
this.rbCreateSubdirectory.BackgroundImage = null;
|
||||||
this.rbCreateSubdirectory.Checked = true;
|
this.rbCreateSubdirectory.Checked = true;
|
||||||
|
this.rbCreateSubdirectory.Font = null;
|
||||||
this.rbCreateSubdirectory.Name = "rbCreateSubdirectory";
|
this.rbCreateSubdirectory.Name = "rbCreateSubdirectory";
|
||||||
this.rbCreateSubdirectory.TabStop = true;
|
this.rbCreateSubdirectory.TabStop = true;
|
||||||
|
this.toolTip1.SetToolTip(this.rbCreateSubdirectory, resources.GetString("rbCreateSubdirectory.ToolTip"));
|
||||||
this.rbCreateSubdirectory.UseVisualStyleBackColor = true;
|
this.rbCreateSubdirectory.UseVisualStyleBackColor = true;
|
||||||
this.rbCreateSubdirectory.CheckedChanged += new System.EventHandler(this.rbCreateSubdirectory_CheckedChanged);
|
this.rbCreateSubdirectory.CheckedChanged += new System.EventHandler(this.rbCreateSubdirectory_CheckedChanged);
|
||||||
//
|
//
|
||||||
// rbAppendFilename
|
// rbAppendFilename
|
||||||
//
|
//
|
||||||
|
this.rbAppendFilename.AccessibleDescription = null;
|
||||||
|
this.rbAppendFilename.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbAppendFilename, "rbAppendFilename");
|
resources.ApplyResources(this.rbAppendFilename, "rbAppendFilename");
|
||||||
|
this.rbAppendFilename.BackgroundImage = null;
|
||||||
|
this.rbAppendFilename.Font = null;
|
||||||
this.rbAppendFilename.Name = "rbAppendFilename";
|
this.rbAppendFilename.Name = "rbAppendFilename";
|
||||||
|
this.toolTip1.SetToolTip(this.rbAppendFilename, resources.GetString("rbAppendFilename.ToolTip"));
|
||||||
this.rbAppendFilename.UseVisualStyleBackColor = true;
|
this.rbAppendFilename.UseVisualStyleBackColor = true;
|
||||||
this.rbAppendFilename.CheckedChanged += new System.EventHandler(this.rbAppendFilename_CheckedChanged);
|
this.rbAppendFilename.CheckedChanged += new System.EventHandler(this.rbAppendFilename_CheckedChanged);
|
||||||
//
|
//
|
||||||
// txtAppendFilename
|
// txtAppendFilename
|
||||||
//
|
//
|
||||||
|
this.txtAppendFilename.AccessibleDescription = null;
|
||||||
|
this.txtAppendFilename.AccessibleName = null;
|
||||||
resources.ApplyResources(this.txtAppendFilename, "txtAppendFilename");
|
resources.ApplyResources(this.txtAppendFilename, "txtAppendFilename");
|
||||||
|
this.txtAppendFilename.BackgroundImage = null;
|
||||||
|
this.txtAppendFilename.Font = null;
|
||||||
this.txtAppendFilename.Name = "txtAppendFilename";
|
this.txtAppendFilename.Name = "txtAppendFilename";
|
||||||
|
this.toolTip1.SetToolTip(this.txtAppendFilename, resources.GetString("txtAppendFilename.ToolTip"));
|
||||||
this.txtAppendFilename.TextChanged += new System.EventHandler(this.txtAppendFilename_TextChanged);
|
this.txtAppendFilename.TextChanged += new System.EventHandler(this.txtAppendFilename_TextChanged);
|
||||||
//
|
//
|
||||||
// grpAudioOutput
|
// grpAudioOutput
|
||||||
//
|
//
|
||||||
|
this.grpAudioOutput.AccessibleDescription = null;
|
||||||
|
this.grpAudioOutput.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.grpAudioOutput, "grpAudioOutput");
|
||||||
|
this.grpAudioOutput.BackgroundImage = null;
|
||||||
this.grpAudioOutput.Controls.Add(this.rbAPE);
|
this.grpAudioOutput.Controls.Add(this.rbAPE);
|
||||||
this.grpAudioOutput.Controls.Add(this.rbNoAudio);
|
this.grpAudioOutput.Controls.Add(this.rbNoAudio);
|
||||||
this.grpAudioOutput.Controls.Add(this.rbWavPack);
|
this.grpAudioOutput.Controls.Add(this.rbWavPack);
|
||||||
this.grpAudioOutput.Controls.Add(this.rbFLAC);
|
this.grpAudioOutput.Controls.Add(this.rbFLAC);
|
||||||
this.grpAudioOutput.Controls.Add(this.rbWAV);
|
this.grpAudioOutput.Controls.Add(this.rbWAV);
|
||||||
resources.ApplyResources(this.grpAudioOutput, "grpAudioOutput");
|
this.grpAudioOutput.Font = null;
|
||||||
this.grpAudioOutput.Name = "grpAudioOutput";
|
this.grpAudioOutput.Name = "grpAudioOutput";
|
||||||
this.grpAudioOutput.TabStop = false;
|
this.grpAudioOutput.TabStop = false;
|
||||||
|
this.toolTip1.SetToolTip(this.grpAudioOutput, resources.GetString("grpAudioOutput.ToolTip"));
|
||||||
//
|
//
|
||||||
// rbAPE
|
// rbAPE
|
||||||
//
|
//
|
||||||
|
this.rbAPE.AccessibleDescription = null;
|
||||||
|
this.rbAPE.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbAPE, "rbAPE");
|
resources.ApplyResources(this.rbAPE, "rbAPE");
|
||||||
|
this.rbAPE.BackgroundImage = null;
|
||||||
|
this.rbAPE.Font = null;
|
||||||
this.rbAPE.Name = "rbAPE";
|
this.rbAPE.Name = "rbAPE";
|
||||||
this.rbAPE.TabStop = true;
|
this.rbAPE.TabStop = true;
|
||||||
|
this.toolTip1.SetToolTip(this.rbAPE, resources.GetString("rbAPE.ToolTip"));
|
||||||
this.rbAPE.UseVisualStyleBackColor = true;
|
this.rbAPE.UseVisualStyleBackColor = true;
|
||||||
this.rbAPE.CheckedChanged += new System.EventHandler(this.rbAPE_CheckedChanged);
|
this.rbAPE.CheckedChanged += new System.EventHandler(this.rbAPE_CheckedChanged);
|
||||||
//
|
//
|
||||||
// rbNoAudio
|
// rbNoAudio
|
||||||
//
|
//
|
||||||
|
this.rbNoAudio.AccessibleDescription = null;
|
||||||
|
this.rbNoAudio.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbNoAudio, "rbNoAudio");
|
resources.ApplyResources(this.rbNoAudio, "rbNoAudio");
|
||||||
|
this.rbNoAudio.BackgroundImage = null;
|
||||||
|
this.rbNoAudio.Font = null;
|
||||||
this.rbNoAudio.Name = "rbNoAudio";
|
this.rbNoAudio.Name = "rbNoAudio";
|
||||||
this.toolTip1.SetToolTip(this.rbNoAudio, resources.GetString("rbNoAudio.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbNoAudio, resources.GetString("rbNoAudio.ToolTip"));
|
||||||
this.rbNoAudio.UseVisualStyleBackColor = true;
|
this.rbNoAudio.UseVisualStyleBackColor = true;
|
||||||
@@ -286,84 +409,135 @@ namespace JDP {
|
|||||||
//
|
//
|
||||||
// rbWavPack
|
// rbWavPack
|
||||||
//
|
//
|
||||||
|
this.rbWavPack.AccessibleDescription = null;
|
||||||
|
this.rbWavPack.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbWavPack, "rbWavPack");
|
resources.ApplyResources(this.rbWavPack, "rbWavPack");
|
||||||
|
this.rbWavPack.BackgroundImage = null;
|
||||||
|
this.rbWavPack.Font = null;
|
||||||
this.rbWavPack.Name = "rbWavPack";
|
this.rbWavPack.Name = "rbWavPack";
|
||||||
|
this.toolTip1.SetToolTip(this.rbWavPack, resources.GetString("rbWavPack.ToolTip"));
|
||||||
this.rbWavPack.UseVisualStyleBackColor = true;
|
this.rbWavPack.UseVisualStyleBackColor = true;
|
||||||
this.rbWavPack.CheckedChanged += new System.EventHandler(this.rbWavPack_CheckedChanged);
|
this.rbWavPack.CheckedChanged += new System.EventHandler(this.rbWavPack_CheckedChanged);
|
||||||
//
|
//
|
||||||
// rbFLAC
|
// rbFLAC
|
||||||
//
|
//
|
||||||
|
this.rbFLAC.AccessibleDescription = null;
|
||||||
|
this.rbFLAC.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbFLAC, "rbFLAC");
|
resources.ApplyResources(this.rbFLAC, "rbFLAC");
|
||||||
|
this.rbFLAC.BackgroundImage = null;
|
||||||
|
this.rbFLAC.Font = null;
|
||||||
this.rbFLAC.Name = "rbFLAC";
|
this.rbFLAC.Name = "rbFLAC";
|
||||||
|
this.toolTip1.SetToolTip(this.rbFLAC, resources.GetString("rbFLAC.ToolTip"));
|
||||||
this.rbFLAC.UseVisualStyleBackColor = true;
|
this.rbFLAC.UseVisualStyleBackColor = true;
|
||||||
this.rbFLAC.CheckedChanged += new System.EventHandler(this.rbFLAC_CheckedChanged);
|
this.rbFLAC.CheckedChanged += new System.EventHandler(this.rbFLAC_CheckedChanged);
|
||||||
//
|
//
|
||||||
// rbWAV
|
// rbWAV
|
||||||
//
|
//
|
||||||
|
this.rbWAV.AccessibleDescription = null;
|
||||||
|
this.rbWAV.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbWAV, "rbWAV");
|
resources.ApplyResources(this.rbWAV, "rbWAV");
|
||||||
|
this.rbWAV.BackgroundImage = null;
|
||||||
this.rbWAV.Checked = true;
|
this.rbWAV.Checked = true;
|
||||||
|
this.rbWAV.Font = null;
|
||||||
this.rbWAV.Name = "rbWAV";
|
this.rbWAV.Name = "rbWAV";
|
||||||
this.rbWAV.TabStop = true;
|
this.rbWAV.TabStop = true;
|
||||||
|
this.toolTip1.SetToolTip(this.rbWAV, resources.GetString("rbWAV.ToolTip"));
|
||||||
this.rbWAV.UseVisualStyleBackColor = true;
|
this.rbWAV.UseVisualStyleBackColor = true;
|
||||||
this.rbWAV.CheckedChanged += new System.EventHandler(this.rbWAV_CheckedChanged);
|
this.rbWAV.CheckedChanged += new System.EventHandler(this.rbWAV_CheckedChanged);
|
||||||
//
|
//
|
||||||
// btnBatch
|
// btnBatch
|
||||||
//
|
//
|
||||||
|
this.btnBatch.AccessibleDescription = null;
|
||||||
|
this.btnBatch.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnBatch, "btnBatch");
|
resources.ApplyResources(this.btnBatch, "btnBatch");
|
||||||
|
this.btnBatch.BackgroundImage = null;
|
||||||
|
this.btnBatch.Font = null;
|
||||||
this.btnBatch.Name = "btnBatch";
|
this.btnBatch.Name = "btnBatch";
|
||||||
|
this.toolTip1.SetToolTip(this.btnBatch, resources.GetString("btnBatch.ToolTip"));
|
||||||
this.btnBatch.UseVisualStyleBackColor = true;
|
this.btnBatch.UseVisualStyleBackColor = true;
|
||||||
this.btnBatch.Click += new System.EventHandler(this.btnBatch_Click);
|
this.btnBatch.Click += new System.EventHandler(this.btnBatch_Click);
|
||||||
//
|
//
|
||||||
// btnFilenameCorrector
|
// btnFilenameCorrector
|
||||||
//
|
//
|
||||||
|
this.btnFilenameCorrector.AccessibleDescription = null;
|
||||||
|
this.btnFilenameCorrector.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnFilenameCorrector, "btnFilenameCorrector");
|
resources.ApplyResources(this.btnFilenameCorrector, "btnFilenameCorrector");
|
||||||
|
this.btnFilenameCorrector.BackgroundImage = null;
|
||||||
|
this.btnFilenameCorrector.Font = null;
|
||||||
this.btnFilenameCorrector.Name = "btnFilenameCorrector";
|
this.btnFilenameCorrector.Name = "btnFilenameCorrector";
|
||||||
|
this.toolTip1.SetToolTip(this.btnFilenameCorrector, resources.GetString("btnFilenameCorrector.ToolTip"));
|
||||||
this.btnFilenameCorrector.UseVisualStyleBackColor = true;
|
this.btnFilenameCorrector.UseVisualStyleBackColor = true;
|
||||||
this.btnFilenameCorrector.Click += new System.EventHandler(this.btnFilenameCorrector_Click);
|
this.btnFilenameCorrector.Click += new System.EventHandler(this.btnFilenameCorrector_Click);
|
||||||
//
|
//
|
||||||
// btnSettings
|
// btnSettings
|
||||||
//
|
//
|
||||||
|
this.btnSettings.AccessibleDescription = null;
|
||||||
|
this.btnSettings.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnSettings, "btnSettings");
|
resources.ApplyResources(this.btnSettings, "btnSettings");
|
||||||
|
this.btnSettings.BackgroundImage = null;
|
||||||
|
this.btnSettings.Font = null;
|
||||||
this.btnSettings.Name = "btnSettings";
|
this.btnSettings.Name = "btnSettings";
|
||||||
|
this.toolTip1.SetToolTip(this.btnSettings, resources.GetString("btnSettings.ToolTip"));
|
||||||
this.btnSettings.UseVisualStyleBackColor = true;
|
this.btnSettings.UseVisualStyleBackColor = true;
|
||||||
this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click);
|
this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click);
|
||||||
//
|
//
|
||||||
// grpAccurateRip
|
// grpAccurateRip
|
||||||
//
|
//
|
||||||
|
this.grpAccurateRip.AccessibleDescription = null;
|
||||||
|
this.grpAccurateRip.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.grpAccurateRip, "grpAccurateRip");
|
||||||
|
this.grpAccurateRip.BackgroundImage = null;
|
||||||
this.grpAccurateRip.Controls.Add(this.label1);
|
this.grpAccurateRip.Controls.Add(this.label1);
|
||||||
this.grpAccurateRip.Controls.Add(this.txtDataTrackLength);
|
this.grpAccurateRip.Controls.Add(this.txtDataTrackLength);
|
||||||
this.grpAccurateRip.Controls.Add(this.rbArApplyOffset);
|
this.grpAccurateRip.Controls.Add(this.rbArApplyOffset);
|
||||||
this.grpAccurateRip.Controls.Add(this.rbArVerify);
|
this.grpAccurateRip.Controls.Add(this.rbArVerify);
|
||||||
this.grpAccurateRip.Controls.Add(this.rbArNone);
|
this.grpAccurateRip.Controls.Add(this.rbArNone);
|
||||||
resources.ApplyResources(this.grpAccurateRip, "grpAccurateRip");
|
this.grpAccurateRip.Font = null;
|
||||||
this.grpAccurateRip.Name = "grpAccurateRip";
|
this.grpAccurateRip.Name = "grpAccurateRip";
|
||||||
this.grpAccurateRip.TabStop = false;
|
this.grpAccurateRip.TabStop = false;
|
||||||
|
this.toolTip1.SetToolTip(this.grpAccurateRip, resources.GetString("grpAccurateRip.ToolTip"));
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
|
this.label1.AccessibleDescription = null;
|
||||||
|
this.label1.AccessibleName = null;
|
||||||
resources.ApplyResources(this.label1, "label1");
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Font = null;
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
|
this.toolTip1.SetToolTip(this.label1, resources.GetString("label1.ToolTip"));
|
||||||
//
|
//
|
||||||
// txtDataTrackLength
|
// txtDataTrackLength
|
||||||
//
|
//
|
||||||
|
this.txtDataTrackLength.AccessibleDescription = null;
|
||||||
|
this.txtDataTrackLength.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.txtDataTrackLength, "txtDataTrackLength");
|
||||||
|
this.txtDataTrackLength.BackgroundImage = null;
|
||||||
this.txtDataTrackLength.Culture = new System.Globalization.CultureInfo("");
|
this.txtDataTrackLength.Culture = new System.Globalization.CultureInfo("");
|
||||||
this.txtDataTrackLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
|
this.txtDataTrackLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
|
||||||
|
this.txtDataTrackLength.Font = null;
|
||||||
this.txtDataTrackLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite;
|
this.txtDataTrackLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite;
|
||||||
resources.ApplyResources(this.txtDataTrackLength, "txtDataTrackLength");
|
|
||||||
this.txtDataTrackLength.Name = "txtDataTrackLength";
|
this.txtDataTrackLength.Name = "txtDataTrackLength";
|
||||||
this.txtDataTrackLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
|
this.txtDataTrackLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
|
||||||
this.toolTip1.SetToolTip(this.txtDataTrackLength, resources.GetString("txtDataTrackLength.ToolTip"));
|
this.toolTip1.SetToolTip(this.txtDataTrackLength, resources.GetString("txtDataTrackLength.ToolTip"));
|
||||||
//
|
//
|
||||||
// rbArApplyOffset
|
// rbArApplyOffset
|
||||||
//
|
//
|
||||||
|
this.rbArApplyOffset.AccessibleDescription = null;
|
||||||
|
this.rbArApplyOffset.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbArApplyOffset, "rbArApplyOffset");
|
resources.ApplyResources(this.rbArApplyOffset, "rbArApplyOffset");
|
||||||
|
this.rbArApplyOffset.BackgroundImage = null;
|
||||||
|
this.rbArApplyOffset.Font = null;
|
||||||
this.rbArApplyOffset.Name = "rbArApplyOffset";
|
this.rbArApplyOffset.Name = "rbArApplyOffset";
|
||||||
this.toolTip1.SetToolTip(this.rbArApplyOffset, resources.GetString("rbArApplyOffset.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbArApplyOffset, resources.GetString("rbArApplyOffset.ToolTip"));
|
||||||
this.rbArApplyOffset.UseVisualStyleBackColor = true;
|
this.rbArApplyOffset.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// rbArVerify
|
// rbArVerify
|
||||||
//
|
//
|
||||||
|
this.rbArVerify.AccessibleDescription = null;
|
||||||
|
this.rbArVerify.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbArVerify, "rbArVerify");
|
resources.ApplyResources(this.rbArVerify, "rbArVerify");
|
||||||
|
this.rbArVerify.BackgroundImage = null;
|
||||||
|
this.rbArVerify.Font = null;
|
||||||
this.rbArVerify.Name = "rbArVerify";
|
this.rbArVerify.Name = "rbArVerify";
|
||||||
this.toolTip1.SetToolTip(this.rbArVerify, resources.GetString("rbArVerify.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbArVerify, resources.GetString("rbArVerify.ToolTip"));
|
||||||
this.rbArVerify.UseVisualStyleBackColor = true;
|
this.rbArVerify.UseVisualStyleBackColor = true;
|
||||||
@@ -371,8 +545,12 @@ namespace JDP {
|
|||||||
//
|
//
|
||||||
// rbArNone
|
// rbArNone
|
||||||
//
|
//
|
||||||
|
this.rbArNone.AccessibleDescription = null;
|
||||||
|
this.rbArNone.AccessibleName = null;
|
||||||
resources.ApplyResources(this.rbArNone, "rbArNone");
|
resources.ApplyResources(this.rbArNone, "rbArNone");
|
||||||
|
this.rbArNone.BackgroundImage = null;
|
||||||
this.rbArNone.Checked = true;
|
this.rbArNone.Checked = true;
|
||||||
|
this.rbArNone.Font = null;
|
||||||
this.rbArNone.Name = "rbArNone";
|
this.rbArNone.Name = "rbArNone";
|
||||||
this.rbArNone.TabStop = true;
|
this.rbArNone.TabStop = true;
|
||||||
this.toolTip1.SetToolTip(this.rbArNone, resources.GetString("rbArNone.ToolTip"));
|
this.toolTip1.SetToolTip(this.rbArNone, resources.GetString("rbArNone.ToolTip"));
|
||||||
@@ -380,32 +558,44 @@ namespace JDP {
|
|||||||
//
|
//
|
||||||
// statusStrip1
|
// statusStrip1
|
||||||
//
|
//
|
||||||
|
this.statusStrip1.AccessibleDescription = null;
|
||||||
|
this.statusStrip1.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.statusStrip1, "statusStrip1");
|
||||||
|
this.statusStrip1.BackgroundImage = null;
|
||||||
|
this.statusStrip1.Font = null;
|
||||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.toolStripStatusLabel1,
|
this.toolStripStatusLabel1,
|
||||||
this.toolStripProgressBar1,
|
this.toolStripProgressBar1,
|
||||||
this.toolStripProgressBar2});
|
this.toolStripProgressBar2});
|
||||||
resources.ApplyResources(this.statusStrip1, "statusStrip1");
|
|
||||||
this.statusStrip1.Name = "statusStrip1";
|
this.statusStrip1.Name = "statusStrip1";
|
||||||
this.statusStrip1.SizingGrip = false;
|
this.statusStrip1.SizingGrip = false;
|
||||||
|
this.toolTip1.SetToolTip(this.statusStrip1, resources.GetString("statusStrip1.ToolTip"));
|
||||||
//
|
//
|
||||||
// toolStripStatusLabel1
|
// toolStripStatusLabel1
|
||||||
//
|
//
|
||||||
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
|
this.toolStripStatusLabel1.AccessibleDescription = null;
|
||||||
|
this.toolStripStatusLabel1.AccessibleName = null;
|
||||||
resources.ApplyResources(this.toolStripStatusLabel1, "toolStripStatusLabel1");
|
resources.ApplyResources(this.toolStripStatusLabel1, "toolStripStatusLabel1");
|
||||||
|
this.toolStripStatusLabel1.BackgroundImage = null;
|
||||||
|
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
|
||||||
this.toolStripStatusLabel1.Spring = true;
|
this.toolStripStatusLabel1.Spring = true;
|
||||||
//
|
//
|
||||||
// toolStripProgressBar1
|
// toolStripProgressBar1
|
||||||
//
|
//
|
||||||
|
this.toolStripProgressBar1.AccessibleDescription = null;
|
||||||
|
this.toolStripProgressBar1.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.toolStripProgressBar1, "toolStripProgressBar1");
|
||||||
this.toolStripProgressBar1.AutoToolTip = true;
|
this.toolStripProgressBar1.AutoToolTip = true;
|
||||||
this.toolStripProgressBar1.Name = "toolStripProgressBar1";
|
this.toolStripProgressBar1.Name = "toolStripProgressBar1";
|
||||||
resources.ApplyResources(this.toolStripProgressBar1, "toolStripProgressBar1");
|
|
||||||
this.toolStripProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
|
this.toolStripProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
|
||||||
//
|
//
|
||||||
// toolStripProgressBar2
|
// toolStripProgressBar2
|
||||||
//
|
//
|
||||||
|
this.toolStripProgressBar2.AccessibleDescription = null;
|
||||||
|
this.toolStripProgressBar2.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2");
|
||||||
this.toolStripProgressBar2.AutoToolTip = true;
|
this.toolStripProgressBar2.AutoToolTip = true;
|
||||||
this.toolStripProgressBar2.Name = "toolStripProgressBar2";
|
this.toolStripProgressBar2.Name = "toolStripProgressBar2";
|
||||||
resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2");
|
|
||||||
this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
|
this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
|
||||||
//
|
//
|
||||||
// toolTip1
|
// toolTip1
|
||||||
@@ -416,29 +606,60 @@ namespace JDP {
|
|||||||
//
|
//
|
||||||
// btnCUECreator
|
// btnCUECreator
|
||||||
//
|
//
|
||||||
|
this.btnCUECreator.AccessibleDescription = null;
|
||||||
|
this.btnCUECreator.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnCUECreator, "btnCUECreator");
|
resources.ApplyResources(this.btnCUECreator, "btnCUECreator");
|
||||||
|
this.btnCUECreator.BackgroundImage = null;
|
||||||
|
this.btnCUECreator.Font = null;
|
||||||
this.btnCUECreator.Name = "btnCUECreator";
|
this.btnCUECreator.Name = "btnCUECreator";
|
||||||
|
this.toolTip1.SetToolTip(this.btnCUECreator, resources.GetString("btnCUECreator.ToolTip"));
|
||||||
this.btnCUECreator.UseVisualStyleBackColor = true;
|
this.btnCUECreator.UseVisualStyleBackColor = true;
|
||||||
this.btnCUECreator.Click += new System.EventHandler(this.btnCUECreator_Click);
|
this.btnCUECreator.Click += new System.EventHandler(this.btnCUECreator_Click);
|
||||||
//
|
//
|
||||||
// btnStop
|
// btnStop
|
||||||
//
|
//
|
||||||
|
this.btnStop.AccessibleDescription = null;
|
||||||
|
this.btnStop.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnStop, "btnStop");
|
resources.ApplyResources(this.btnStop, "btnStop");
|
||||||
|
this.btnStop.BackgroundImage = null;
|
||||||
|
this.btnStop.Font = null;
|
||||||
this.btnStop.Name = "btnStop";
|
this.btnStop.Name = "btnStop";
|
||||||
|
this.toolTip1.SetToolTip(this.btnStop, resources.GetString("btnStop.ToolTip"));
|
||||||
this.btnStop.UseVisualStyleBackColor = true;
|
this.btnStop.UseVisualStyleBackColor = true;
|
||||||
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
|
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
|
||||||
//
|
//
|
||||||
// btnPause
|
// btnPause
|
||||||
//
|
//
|
||||||
|
this.btnPause.AccessibleDescription = null;
|
||||||
|
this.btnPause.AccessibleName = null;
|
||||||
resources.ApplyResources(this.btnPause, "btnPause");
|
resources.ApplyResources(this.btnPause, "btnPause");
|
||||||
|
this.btnPause.BackgroundImage = null;
|
||||||
|
this.btnPause.Font = null;
|
||||||
this.btnPause.Name = "btnPause";
|
this.btnPause.Name = "btnPause";
|
||||||
|
this.toolTip1.SetToolTip(this.btnPause, resources.GetString("btnPause.ToolTip"));
|
||||||
this.btnPause.UseVisualStyleBackColor = true;
|
this.btnPause.UseVisualStyleBackColor = true;
|
||||||
this.btnPause.Click += new System.EventHandler(this.btnPause_Click);
|
this.btnPause.Click += new System.EventHandler(this.btnPause_Click);
|
||||||
//
|
//
|
||||||
|
// btnResume
|
||||||
|
//
|
||||||
|
this.btnResume.AccessibleDescription = null;
|
||||||
|
this.btnResume.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.btnResume, "btnResume");
|
||||||
|
this.btnResume.BackgroundImage = null;
|
||||||
|
this.btnResume.Font = null;
|
||||||
|
this.btnResume.Name = "btnResume";
|
||||||
|
this.toolTip1.SetToolTip(this.btnResume, resources.GetString("btnResume.ToolTip"));
|
||||||
|
this.btnResume.UseVisualStyleBackColor = true;
|
||||||
|
this.btnResume.Click += new System.EventHandler(this.btnPause_Click);
|
||||||
|
//
|
||||||
// frmCUETools
|
// frmCUETools
|
||||||
//
|
//
|
||||||
|
this.AccessibleDescription = null;
|
||||||
|
this.AccessibleName = null;
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackgroundImage = null;
|
||||||
|
this.Controls.Add(this.btnResume);
|
||||||
this.Controls.Add(this.btnPause);
|
this.Controls.Add(this.btnPause);
|
||||||
this.Controls.Add(this.btnStop);
|
this.Controls.Add(this.btnStop);
|
||||||
this.Controls.Add(this.btnCUECreator);
|
this.Controls.Add(this.btnCUECreator);
|
||||||
@@ -454,8 +675,10 @@ namespace JDP {
|
|||||||
this.Controls.Add(this.grpCUEPaths);
|
this.Controls.Add(this.grpCUEPaths);
|
||||||
this.Controls.Add(this.btnConvert);
|
this.Controls.Add(this.btnConvert);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
this.Icon = null;
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.Name = "frmCUETools";
|
this.Name = "frmCUETools";
|
||||||
|
this.toolTip1.SetToolTip(this, resources.GetString("$this.ToolTip"));
|
||||||
this.Load += new System.EventHandler(this.frmCUETools_Load);
|
this.Load += new System.EventHandler(this.frmCUETools_Load);
|
||||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmCUETools_FormClosed);
|
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmCUETools_FormClosed);
|
||||||
this.grpCUEPaths.ResumeLayout(false);
|
this.grpCUEPaths.ResumeLayout(false);
|
||||||
@@ -523,6 +746,7 @@ namespace JDP {
|
|||||||
private System.Windows.Forms.RadioButton rbAPE;
|
private System.Windows.Forms.RadioButton rbAPE;
|
||||||
private System.Windows.Forms.Button btnStop;
|
private System.Windows.Forms.Button btnStop;
|
||||||
private System.Windows.Forms.Button btnPause;
|
private System.Windows.Forms.Button btnPause;
|
||||||
|
private System.Windows.Forms.Button btnResume;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -401,8 +401,9 @@ namespace JDP {
|
|||||||
btnBatch.Enabled = !running;
|
btnBatch.Enabled = !running;
|
||||||
btnConvert.Enabled = !running;
|
btnConvert.Enabled = !running;
|
||||||
btnConvert.Visible = !running;
|
btnConvert.Visible = !running;
|
||||||
btnStop.Enabled = btnPause.Enabled = running;
|
btnStop.Enabled = btnPause.Enabled = btnResume.Enabled = running;
|
||||||
btnStop.Visible = btnPause.Visible = running;
|
btnStop.Visible = btnPause.Visible = running;
|
||||||
|
btnResume.Visible = false;
|
||||||
toolStripStatusLabel1.Text = String.Empty;
|
toolStripStatusLabel1.Text = String.Empty;
|
||||||
toolStripProgressBar1.Value = 0;
|
toolStripProgressBar1.Value = 0;
|
||||||
toolStripProgressBar2.Value = 0;
|
toolStripProgressBar2.Value = 0;
|
||||||
@@ -852,7 +853,7 @@ namespace JDP {
|
|||||||
string[] cueFiles = Directory.GetFiles(dir, "*.cue");
|
string[] cueFiles = Directory.GetFiles(dir, "*.cue");
|
||||||
if (cueFiles.Length == 0)
|
if (cueFiles.Length == 0)
|
||||||
{
|
{
|
||||||
string[] audioExts = new string[] { "*.wav", "*.flac", "*.wv", "*.ape" };
|
string[] audioExts = new string[] { "*.wav", "*.flac", "*.wv", "*.ape", "*.m4a" };
|
||||||
for (int i = 0; i < audioExts.Length; i++)
|
for (int i = 0; i < audioExts.Length; i++)
|
||||||
{
|
{
|
||||||
string [] audioFiles = Directory.GetFiles(dir, audioExts[i]);
|
string [] audioFiles = Directory.GetFiles(dir, audioExts[i]);
|
||||||
@@ -912,7 +913,11 @@ namespace JDP {
|
|||||||
private void btnPause_Click(object sender, EventArgs e)
|
private void btnPause_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if ((_workThread != null) && (_workThread.IsAlive))
|
if ((_workThread != null) && (_workThread.IsAlive))
|
||||||
|
{
|
||||||
_workClass.Pause();
|
_workClass.Pause();
|
||||||
|
btnPause.Visible = !btnPause.Visible;
|
||||||
|
btnResume.Visible = !btnResume.Visible;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -304,4 +304,7 @@
|
|||||||
<data name="btnPause.Text" xml:space="preserve">
|
<data name="btnPause.Text" xml:space="preserve">
|
||||||
<value>Пауза</value>
|
<value>Пауза</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnResume.Text" xml:space="preserve">
|
||||||
|
<value>&Поехали</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
119
CUETools/frmSettings.Designer.cs
generated
119
CUETools/frmSettings.Designer.cs
generated
@@ -27,6 +27,8 @@ namespace JDP {
|
|||||||
System.Windows.Forms.Button btnCancel;
|
System.Windows.Forms.Button btnCancel;
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSettings));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSettings));
|
||||||
this.grpGeneral = new System.Windows.Forms.GroupBox();
|
this.grpGeneral = new System.Windows.Forms.GroupBox();
|
||||||
|
this.chkCreateCUEFileWhenEmbedded = new System.Windows.Forms.CheckBox();
|
||||||
|
this.chkCreateM3U = new System.Windows.Forms.CheckBox();
|
||||||
this.chkFillUpCUE = new System.Windows.Forms.CheckBox();
|
this.chkFillUpCUE = new System.Windows.Forms.CheckBox();
|
||||||
this.chkEmbedLog = new System.Windows.Forms.CheckBox();
|
this.chkEmbedLog = new System.Windows.Forms.CheckBox();
|
||||||
this.numericWriteOffset = new System.Windows.Forms.NumericUpDown();
|
this.numericWriteOffset = new System.Windows.Forms.NumericUpDown();
|
||||||
@@ -39,6 +41,7 @@ namespace JDP {
|
|||||||
this.chkFLACVerify = new System.Windows.Forms.CheckBox();
|
this.chkFLACVerify = new System.Windows.Forms.CheckBox();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.grpWavPack = new System.Windows.Forms.GroupBox();
|
this.grpWavPack = new System.Windows.Forms.GroupBox();
|
||||||
|
this.chkWVStoreMD5 = new System.Windows.Forms.CheckBox();
|
||||||
this.numWVExtraMode = new System.Windows.Forms.NumericUpDown();
|
this.numWVExtraMode = new System.Windows.Forms.NumericUpDown();
|
||||||
this.chkWVExtraMode = new System.Windows.Forms.CheckBox();
|
this.chkWVExtraMode = new System.Windows.Forms.CheckBox();
|
||||||
this.rbWVVeryHigh = new System.Windows.Forms.RadioButton();
|
this.rbWVVeryHigh = new System.Windows.Forms.RadioButton();
|
||||||
@@ -62,6 +65,8 @@ namespace JDP {
|
|||||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||||
this.chkFilenamesANSISafe = new System.Windows.Forms.CheckBox();
|
this.chkFilenamesANSISafe = new System.Windows.Forms.CheckBox();
|
||||||
this.chkWriteARTagsOnVerify = new System.Windows.Forms.CheckBox();
|
this.chkWriteARTagsOnVerify = new System.Windows.Forms.CheckBox();
|
||||||
|
this.chkHDCDDecode = new System.Windows.Forms.CheckBox();
|
||||||
|
this.chkHDCDStopLooking = new System.Windows.Forms.CheckBox();
|
||||||
this.grpAudioFilenames = new System.Windows.Forms.GroupBox();
|
this.grpAudioFilenames = new System.Windows.Forms.GroupBox();
|
||||||
this.chkKeepOriginalFilenames = new System.Windows.Forms.CheckBox();
|
this.chkKeepOriginalFilenames = new System.Windows.Forms.CheckBox();
|
||||||
this.txtSpecialExceptions = new System.Windows.Forms.TextBox();
|
this.txtSpecialExceptions = new System.Windows.Forms.TextBox();
|
||||||
@@ -83,6 +88,9 @@ namespace JDP {
|
|||||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||||
this.chkWriteARLogOnVerify = new System.Windows.Forms.CheckBox();
|
this.chkWriteARLogOnVerify = new System.Windows.Forms.CheckBox();
|
||||||
this.tabPage3 = new System.Windows.Forms.TabPage();
|
this.tabPage3 = new System.Windows.Forms.TabPage();
|
||||||
|
this.tabPage4 = new System.Windows.Forms.TabPage();
|
||||||
|
this.grpHDCD = new System.Windows.Forms.GroupBox();
|
||||||
|
this.chkHDCDDetect = new System.Windows.Forms.CheckBox();
|
||||||
btnCancel = new System.Windows.Forms.Button();
|
btnCancel = new System.Windows.Forms.Button();
|
||||||
this.grpGeneral.SuspendLayout();
|
this.grpGeneral.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).BeginInit();
|
||||||
@@ -102,6 +110,8 @@ namespace JDP {
|
|||||||
this.tabPage2.SuspendLayout();
|
this.tabPage2.SuspendLayout();
|
||||||
this.groupBox3.SuspendLayout();
|
this.groupBox3.SuspendLayout();
|
||||||
this.tabPage3.SuspendLayout();
|
this.tabPage3.SuspendLayout();
|
||||||
|
this.tabPage4.SuspendLayout();
|
||||||
|
this.grpHDCD.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnCancel
|
// btnCancel
|
||||||
@@ -122,6 +132,8 @@ namespace JDP {
|
|||||||
this.grpGeneral.AccessibleName = null;
|
this.grpGeneral.AccessibleName = null;
|
||||||
resources.ApplyResources(this.grpGeneral, "grpGeneral");
|
resources.ApplyResources(this.grpGeneral, "grpGeneral");
|
||||||
this.grpGeneral.BackgroundImage = null;
|
this.grpGeneral.BackgroundImage = null;
|
||||||
|
this.grpGeneral.Controls.Add(this.chkCreateCUEFileWhenEmbedded);
|
||||||
|
this.grpGeneral.Controls.Add(this.chkCreateM3U);
|
||||||
this.grpGeneral.Controls.Add(this.chkFillUpCUE);
|
this.grpGeneral.Controls.Add(this.chkFillUpCUE);
|
||||||
this.grpGeneral.Controls.Add(this.chkEmbedLog);
|
this.grpGeneral.Controls.Add(this.chkEmbedLog);
|
||||||
this.grpGeneral.Controls.Add(this.numericWriteOffset);
|
this.grpGeneral.Controls.Add(this.numericWriteOffset);
|
||||||
@@ -133,6 +145,28 @@ namespace JDP {
|
|||||||
this.grpGeneral.TabStop = false;
|
this.grpGeneral.TabStop = false;
|
||||||
this.toolTip1.SetToolTip(this.grpGeneral, resources.GetString("grpGeneral.ToolTip"));
|
this.toolTip1.SetToolTip(this.grpGeneral, resources.GetString("grpGeneral.ToolTip"));
|
||||||
//
|
//
|
||||||
|
// chkCreateCUEFileWhenEmbedded
|
||||||
|
//
|
||||||
|
this.chkCreateCUEFileWhenEmbedded.AccessibleDescription = null;
|
||||||
|
this.chkCreateCUEFileWhenEmbedded.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.chkCreateCUEFileWhenEmbedded, "chkCreateCUEFileWhenEmbedded");
|
||||||
|
this.chkCreateCUEFileWhenEmbedded.BackgroundImage = null;
|
||||||
|
this.chkCreateCUEFileWhenEmbedded.Font = null;
|
||||||
|
this.chkCreateCUEFileWhenEmbedded.Name = "chkCreateCUEFileWhenEmbedded";
|
||||||
|
this.toolTip1.SetToolTip(this.chkCreateCUEFileWhenEmbedded, resources.GetString("chkCreateCUEFileWhenEmbedded.ToolTip"));
|
||||||
|
this.chkCreateCUEFileWhenEmbedded.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// chkCreateM3U
|
||||||
|
//
|
||||||
|
this.chkCreateM3U.AccessibleDescription = null;
|
||||||
|
this.chkCreateM3U.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.chkCreateM3U, "chkCreateM3U");
|
||||||
|
this.chkCreateM3U.BackgroundImage = null;
|
||||||
|
this.chkCreateM3U.Font = null;
|
||||||
|
this.chkCreateM3U.Name = "chkCreateM3U";
|
||||||
|
this.toolTip1.SetToolTip(this.chkCreateM3U, resources.GetString("chkCreateM3U.ToolTip"));
|
||||||
|
this.chkCreateM3U.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// chkFillUpCUE
|
// chkFillUpCUE
|
||||||
//
|
//
|
||||||
this.chkFillUpCUE.AccessibleDescription = null;
|
this.chkFillUpCUE.AccessibleDescription = null;
|
||||||
@@ -277,6 +311,7 @@ namespace JDP {
|
|||||||
this.grpWavPack.AccessibleName = null;
|
this.grpWavPack.AccessibleName = null;
|
||||||
resources.ApplyResources(this.grpWavPack, "grpWavPack");
|
resources.ApplyResources(this.grpWavPack, "grpWavPack");
|
||||||
this.grpWavPack.BackgroundImage = null;
|
this.grpWavPack.BackgroundImage = null;
|
||||||
|
this.grpWavPack.Controls.Add(this.chkWVStoreMD5);
|
||||||
this.grpWavPack.Controls.Add(this.numWVExtraMode);
|
this.grpWavPack.Controls.Add(this.numWVExtraMode);
|
||||||
this.grpWavPack.Controls.Add(this.chkWVExtraMode);
|
this.grpWavPack.Controls.Add(this.chkWVExtraMode);
|
||||||
this.grpWavPack.Controls.Add(this.rbWVVeryHigh);
|
this.grpWavPack.Controls.Add(this.rbWVVeryHigh);
|
||||||
@@ -288,6 +323,17 @@ namespace JDP {
|
|||||||
this.grpWavPack.TabStop = false;
|
this.grpWavPack.TabStop = false;
|
||||||
this.toolTip1.SetToolTip(this.grpWavPack, resources.GetString("grpWavPack.ToolTip"));
|
this.toolTip1.SetToolTip(this.grpWavPack, resources.GetString("grpWavPack.ToolTip"));
|
||||||
//
|
//
|
||||||
|
// chkWVStoreMD5
|
||||||
|
//
|
||||||
|
this.chkWVStoreMD5.AccessibleDescription = null;
|
||||||
|
this.chkWVStoreMD5.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.chkWVStoreMD5, "chkWVStoreMD5");
|
||||||
|
this.chkWVStoreMD5.BackgroundImage = null;
|
||||||
|
this.chkWVStoreMD5.Font = null;
|
||||||
|
this.chkWVStoreMD5.Name = "chkWVStoreMD5";
|
||||||
|
this.toolTip1.SetToolTip(this.chkWVStoreMD5, resources.GetString("chkWVStoreMD5.ToolTip"));
|
||||||
|
this.chkWVStoreMD5.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// numWVExtraMode
|
// numWVExtraMode
|
||||||
//
|
//
|
||||||
this.numWVExtraMode.AccessibleDescription = null;
|
this.numWVExtraMode.AccessibleDescription = null;
|
||||||
@@ -611,6 +657,28 @@ namespace JDP {
|
|||||||
this.toolTip1.SetToolTip(this.chkWriteARTagsOnVerify, resources.GetString("chkWriteARTagsOnVerify.ToolTip"));
|
this.toolTip1.SetToolTip(this.chkWriteARTagsOnVerify, resources.GetString("chkWriteARTagsOnVerify.ToolTip"));
|
||||||
this.chkWriteARTagsOnVerify.UseVisualStyleBackColor = true;
|
this.chkWriteARTagsOnVerify.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// chkHDCDDecode
|
||||||
|
//
|
||||||
|
this.chkHDCDDecode.AccessibleDescription = null;
|
||||||
|
this.chkHDCDDecode.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.chkHDCDDecode, "chkHDCDDecode");
|
||||||
|
this.chkHDCDDecode.BackgroundImage = null;
|
||||||
|
this.chkHDCDDecode.Font = null;
|
||||||
|
this.chkHDCDDecode.Name = "chkHDCDDecode";
|
||||||
|
this.toolTip1.SetToolTip(this.chkHDCDDecode, resources.GetString("chkHDCDDecode.ToolTip"));
|
||||||
|
this.chkHDCDDecode.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// chkHDCDStopLooking
|
||||||
|
//
|
||||||
|
this.chkHDCDStopLooking.AccessibleDescription = null;
|
||||||
|
this.chkHDCDStopLooking.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.chkHDCDStopLooking, "chkHDCDStopLooking");
|
||||||
|
this.chkHDCDStopLooking.BackgroundImage = null;
|
||||||
|
this.chkHDCDStopLooking.Font = null;
|
||||||
|
this.chkHDCDStopLooking.Name = "chkHDCDStopLooking";
|
||||||
|
this.toolTip1.SetToolTip(this.chkHDCDStopLooking, resources.GetString("chkHDCDStopLooking.ToolTip"));
|
||||||
|
this.chkHDCDStopLooking.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// grpAudioFilenames
|
// grpAudioFilenames
|
||||||
//
|
//
|
||||||
this.grpAudioFilenames.AccessibleDescription = null;
|
this.grpAudioFilenames.AccessibleDescription = null;
|
||||||
@@ -803,6 +871,7 @@ namespace JDP {
|
|||||||
this.tabControl1.Controls.Add(this.tabPage1);
|
this.tabControl1.Controls.Add(this.tabPage1);
|
||||||
this.tabControl1.Controls.Add(this.tabPage2);
|
this.tabControl1.Controls.Add(this.tabPage2);
|
||||||
this.tabControl1.Controls.Add(this.tabPage3);
|
this.tabControl1.Controls.Add(this.tabPage3);
|
||||||
|
this.tabControl1.Controls.Add(this.tabPage4);
|
||||||
this.tabControl1.Font = null;
|
this.tabControl1.Font = null;
|
||||||
this.tabControl1.HotTrack = true;
|
this.tabControl1.HotTrack = true;
|
||||||
this.tabControl1.Multiline = true;
|
this.tabControl1.Multiline = true;
|
||||||
@@ -876,6 +945,44 @@ namespace JDP {
|
|||||||
this.tabPage3.Name = "tabPage3";
|
this.tabPage3.Name = "tabPage3";
|
||||||
this.toolTip1.SetToolTip(this.tabPage3, resources.GetString("tabPage3.ToolTip"));
|
this.toolTip1.SetToolTip(this.tabPage3, resources.GetString("tabPage3.ToolTip"));
|
||||||
//
|
//
|
||||||
|
// tabPage4
|
||||||
|
//
|
||||||
|
this.tabPage4.AccessibleDescription = null;
|
||||||
|
this.tabPage4.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.tabPage4, "tabPage4");
|
||||||
|
this.tabPage4.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.tabPage4.BackgroundImage = null;
|
||||||
|
this.tabPage4.Controls.Add(this.grpHDCD);
|
||||||
|
this.tabPage4.Controls.Add(this.chkHDCDDetect);
|
||||||
|
this.tabPage4.Font = null;
|
||||||
|
this.tabPage4.Name = "tabPage4";
|
||||||
|
this.toolTip1.SetToolTip(this.tabPage4, resources.GetString("tabPage4.ToolTip"));
|
||||||
|
//
|
||||||
|
// grpHDCD
|
||||||
|
//
|
||||||
|
this.grpHDCD.AccessibleDescription = null;
|
||||||
|
this.grpHDCD.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.grpHDCD, "grpHDCD");
|
||||||
|
this.grpHDCD.BackgroundImage = null;
|
||||||
|
this.grpHDCD.Controls.Add(this.chkHDCDStopLooking);
|
||||||
|
this.grpHDCD.Controls.Add(this.chkHDCDDecode);
|
||||||
|
this.grpHDCD.Font = null;
|
||||||
|
this.grpHDCD.Name = "grpHDCD";
|
||||||
|
this.grpHDCD.TabStop = false;
|
||||||
|
this.toolTip1.SetToolTip(this.grpHDCD, resources.GetString("grpHDCD.ToolTip"));
|
||||||
|
//
|
||||||
|
// chkHDCDDetect
|
||||||
|
//
|
||||||
|
this.chkHDCDDetect.AccessibleDescription = null;
|
||||||
|
this.chkHDCDDetect.AccessibleName = null;
|
||||||
|
resources.ApplyResources(this.chkHDCDDetect, "chkHDCDDetect");
|
||||||
|
this.chkHDCDDetect.BackgroundImage = null;
|
||||||
|
this.chkHDCDDetect.Font = null;
|
||||||
|
this.chkHDCDDetect.Name = "chkHDCDDetect";
|
||||||
|
this.toolTip1.SetToolTip(this.chkHDCDDetect, resources.GetString("chkHDCDDetect.ToolTip"));
|
||||||
|
this.chkHDCDDetect.UseVisualStyleBackColor = true;
|
||||||
|
this.chkHDCDDetect.CheckedChanged += new System.EventHandler(this.chkHDCDDetect_CheckedChanged);
|
||||||
|
//
|
||||||
// frmSettings
|
// frmSettings
|
||||||
//
|
//
|
||||||
this.AcceptButton = this.btnOK;
|
this.AcceptButton = this.btnOK;
|
||||||
@@ -924,6 +1031,10 @@ namespace JDP {
|
|||||||
this.groupBox3.ResumeLayout(false);
|
this.groupBox3.ResumeLayout(false);
|
||||||
this.groupBox3.PerformLayout();
|
this.groupBox3.PerformLayout();
|
||||||
this.tabPage3.ResumeLayout(false);
|
this.tabPage3.ResumeLayout(false);
|
||||||
|
this.tabPage4.ResumeLayout(false);
|
||||||
|
this.tabPage4.PerformLayout();
|
||||||
|
this.grpHDCD.ResumeLayout(false);
|
||||||
|
this.grpHDCD.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -987,6 +1098,14 @@ namespace JDP {
|
|||||||
private System.Windows.Forms.CheckBox chkWriteARLogOnVerify;
|
private System.Windows.Forms.CheckBox chkWriteARLogOnVerify;
|
||||||
private System.Windows.Forms.CheckBox chkWriteARTagsOnVerify;
|
private System.Windows.Forms.CheckBox chkWriteARTagsOnVerify;
|
||||||
private System.Windows.Forms.CheckBox chkEncodeWhenZeroOffset;
|
private System.Windows.Forms.CheckBox chkEncodeWhenZeroOffset;
|
||||||
|
private System.Windows.Forms.TabPage tabPage4;
|
||||||
|
private System.Windows.Forms.CheckBox chkHDCDDecode;
|
||||||
|
private System.Windows.Forms.CheckBox chkHDCDDetect;
|
||||||
|
private System.Windows.Forms.CheckBox chkWVStoreMD5;
|
||||||
|
private System.Windows.Forms.GroupBox grpHDCD;
|
||||||
|
private System.Windows.Forms.CheckBox chkHDCDStopLooking;
|
||||||
|
private System.Windows.Forms.CheckBox chkCreateM3U;
|
||||||
|
private System.Windows.Forms.CheckBox chkCreateCUEFileWhenEmbedded;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -35,6 +35,7 @@ namespace JDP {
|
|||||||
chkWVExtraMode.Checked = (_config.wvExtraMode != 0);
|
chkWVExtraMode.Checked = (_config.wvExtraMode != 0);
|
||||||
chkWVExtraMode_CheckedChanged(null, null);
|
chkWVExtraMode_CheckedChanged(null, null);
|
||||||
if (_config.wvExtraMode != 0) numWVExtraMode.Value = _config.wvExtraMode;
|
if (_config.wvExtraMode != 0) numWVExtraMode.Value = _config.wvExtraMode;
|
||||||
|
chkWVStoreMD5.Checked = _config.wvStoreMD5;
|
||||||
switch (_config.apeCompressionLevel)
|
switch (_config.apeCompressionLevel)
|
||||||
{
|
{
|
||||||
case 1: rbAPEfast.Checked = true; break;
|
case 1: rbAPEfast.Checked = true; break;
|
||||||
@@ -56,6 +57,11 @@ namespace JDP {
|
|||||||
chkEmbedLog.Checked = _config.embedLog;
|
chkEmbedLog.Checked = _config.embedLog;
|
||||||
chkFillUpCUE.Checked = _config.fillUpCUE;
|
chkFillUpCUE.Checked = _config.fillUpCUE;
|
||||||
chkFilenamesANSISafe.Checked = _config.filenamesANSISafe;
|
chkFilenamesANSISafe.Checked = _config.filenamesANSISafe;
|
||||||
|
chkHDCDDetect.Checked = _config.detectHDCD;
|
||||||
|
chkHDCDDecode.Checked = _config.decodeHDCD;
|
||||||
|
chkHDCDStopLooking.Checked = _config.wait750FramesForHDCD;
|
||||||
|
chkCreateM3U.Checked = _config.createM3U;
|
||||||
|
chkCreateCUEFileWhenEmbedded.Checked = _config.createCUEFileWhenEmbedded;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void frmSettings_FormClosing(object sender, FormClosingEventArgs e) {
|
private void frmSettings_FormClosing(object sender, FormClosingEventArgs e) {
|
||||||
@@ -72,12 +78,7 @@ namespace JDP {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void chkWVExtraMode_CheckedChanged(object sender, EventArgs e) {
|
private void chkWVExtraMode_CheckedChanged(object sender, EventArgs e) {
|
||||||
if (chkWVExtraMode.Checked) {
|
numWVExtraMode.Enabled = chkWVExtraMode.Checked;
|
||||||
numWVExtraMode.Enabled = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
numWVExtraMode.Enabled = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnOK_Click(object sender, EventArgs e)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
@@ -100,6 +101,7 @@ namespace JDP {
|
|||||||
else _config.wvCompressionMode = 1;
|
else _config.wvCompressionMode = 1;
|
||||||
if (!chkWVExtraMode.Checked) _config.wvExtraMode = 0;
|
if (!chkWVExtraMode.Checked) _config.wvExtraMode = 0;
|
||||||
else _config.wvExtraMode = (int) numWVExtraMode.Value;
|
else _config.wvExtraMode = (int) numWVExtraMode.Value;
|
||||||
|
_config.wvStoreMD5 = chkWVStoreMD5.Checked;
|
||||||
_config.apeCompressionLevel = (uint) (rbAPEfast.Checked ? 1 :
|
_config.apeCompressionLevel = (uint) (rbAPEfast.Checked ? 1 :
|
||||||
rbAPEnormal.Checked ? 2 :
|
rbAPEnormal.Checked ? 2 :
|
||||||
rbAPEhigh.Checked ? 3 :
|
rbAPEhigh.Checked ? 3 :
|
||||||
@@ -118,6 +120,11 @@ namespace JDP {
|
|||||||
_config.embedLog = chkEmbedLog.Checked;
|
_config.embedLog = chkEmbedLog.Checked;
|
||||||
_config.fillUpCUE = chkFillUpCUE.Checked;
|
_config.fillUpCUE = chkFillUpCUE.Checked;
|
||||||
_config.filenamesANSISafe = chkFilenamesANSISafe.Checked;
|
_config.filenamesANSISafe = chkFilenamesANSISafe.Checked;
|
||||||
|
_config.detectHDCD = chkHDCDDetect.Checked;
|
||||||
|
_config.wait750FramesForHDCD = chkHDCDStopLooking.Checked;
|
||||||
|
_config.decodeHDCD = chkHDCDDecode.Checked;
|
||||||
|
_config.createM3U = chkCreateM3U.Checked;
|
||||||
|
_config.createCUEFileWhenEmbedded = chkCreateCUEFileWhenEmbedded.Checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void chkArFixOffset_CheckedChanged(object sender, EventArgs e)
|
private void chkArFixOffset_CheckedChanged(object sender, EventArgs e)
|
||||||
@@ -136,5 +143,10 @@ namespace JDP {
|
|||||||
labelEncodeWhenPercent.Enabled =
|
labelEncodeWhenPercent.Enabled =
|
||||||
chkEncodeWhenZeroOffset.Enabled = chkArNoUnverifiedAudio.Checked;
|
chkEncodeWhenZeroOffset.Enabled = chkArNoUnverifiedAudio.Checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void chkHDCDDetect_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
grpHDCD.Enabled = chkHDCDDetect.Checked;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -124,6 +124,18 @@
|
|||||||
<value>Общие</value>
|
<value>Общие</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="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="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="chkFillUpCUE.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkFillUpCUE.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>221, 17</value>
|
<value>221, 17</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -178,6 +190,12 @@
|
|||||||
<data name="chkFLACVerify.Text" xml:space="preserve">
|
<data name="chkFLACVerify.Text" xml:space="preserve">
|
||||||
<value>Верификация</value>
|
<value>Верификация</value>
|
||||||
</data>
|
</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">
|
<data name="chkWVExtraMode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>89, 17</value>
|
<value>89, 17</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -339,6 +357,24 @@
|
|||||||
<data name="chkWriteARTagsOnVerify.ToolTip" xml:space="preserve">
|
<data name="chkWriteARTagsOnVerify.ToolTip" xml:space="preserve">
|
||||||
<value>Добавлять тэги ACCURATERIPCOUNT/ACCURATERIPCOUNTALLOFFSETS/ACCURATERIPTOTAL в исходные файлы. Можно настроить foobar2000 на их отображение, чтобы видеть качество рипа и популярность дисков в вашей библиотеке.</value>
|
<value>Добавлять тэги ACCURATERIPCOUNT/ACCURATERIPCOUNTALLOFFSETS/ACCURATERIPTOTAL в исходные файлы. Можно настроить foobar2000 на их отображение, чтобы видеть качество рипа и популярность дисков в вашей библиотеке.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkHDCDDecode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>152, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkHDCDDecode.Text" xml:space="preserve">
|
||||||
|
<value>Декодировать в 24 бита</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="grpAudioFilenames.Text" xml:space="preserve">
|
<data name="grpAudioFilenames.Text" xml:space="preserve">
|
||||||
<value>Имена аудиофайлов</value>
|
<value>Имена аудиофайлов</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -390,6 +426,15 @@
|
|||||||
<data name="tabPage3.Text" xml:space="preserve">
|
<data name="tabPage3.Text" xml:space="preserve">
|
||||||
<value>Форматы</value>
|
<value>Форматы</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="grpHDCD.Text" xml:space="preserve">
|
||||||
|
<value>Параметры</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkHDCDDetect.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>120, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkHDCDDetect.Text" xml:space="preserve">
|
||||||
|
<value>Определять HDCD</value>
|
||||||
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>Продвинутые настройки</value>
|
<value>Продвинутые настройки</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -3,31 +3,12 @@ using System.IO;
|
|||||||
using FLACDotNet;
|
using FLACDotNet;
|
||||||
using WavPackDotNet;
|
using WavPackDotNet;
|
||||||
using APEDotNet;
|
using APEDotNet;
|
||||||
|
using ALACDotNet;
|
||||||
|
using AudioCodecsDotNet;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
|
|
||||||
namespace CUEToolsLib {
|
namespace CUEToolsLib {
|
||||||
public interface IAudioSource {
|
|
||||||
uint Read(byte[] buff, uint sampleCount);
|
|
||||||
ulong Length { get; }
|
|
||||||
ulong Position { get; set; }
|
|
||||||
NameValueCollection Tags { get; set; }
|
|
||||||
ulong Remaining { get; }
|
|
||||||
void Close();
|
|
||||||
int BitsPerSample { get; }
|
|
||||||
int ChannelCount { get; }
|
|
||||||
int SampleRate { get; }
|
|
||||||
string Path { get; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IAudioDest {
|
|
||||||
void Write(byte[] buff, uint sampleCount);
|
|
||||||
bool SetTags(NameValueCollection tags);
|
|
||||||
void Close();
|
|
||||||
long FinalSampleCount { set; }
|
|
||||||
string Path { get; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class AudioReadWrite {
|
public static class AudioReadWrite {
|
||||||
public static IAudioSource GetAudioSource(string path) {
|
public static IAudioSource GetAudioSource(string path) {
|
||||||
switch (Path.GetExtension(path).ToLower()) {
|
switch (Path.GetExtension(path).ToLower()) {
|
||||||
@@ -40,6 +21,8 @@ namespace CUEToolsLib {
|
|||||||
return new WavPackReader(path);
|
return new WavPackReader(path);
|
||||||
case ".ape":
|
case ".ape":
|
||||||
return new APEReader(path);
|
return new APEReader(path);
|
||||||
|
case ".m4a":
|
||||||
|
return new ALACReader(path);
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
throw new Exception("Unsupported audio type.");
|
throw new Exception("Unsupported audio type.");
|
||||||
@@ -69,332 +52,6 @@ namespace CUEToolsLib {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class DummyWriter : IAudioDest {
|
|
||||||
|
|
||||||
public DummyWriter (string path, int bitsPerSample, int channelCount, int sampleRate) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool SetTags(NameValueCollection tags)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public long FinalSampleCount {
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Write(byte[] buff, uint sampleCount) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Path { get { return null; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class WAVReader : IAudioSource {
|
|
||||||
FileStream _fs;
|
|
||||||
BinaryReader _br;
|
|
||||||
ulong _dataOffset, _dataLen;
|
|
||||||
ulong _samplePos, _sampleLen;
|
|
||||||
int _bitsPerSample, _channelCount, _sampleRate, _blockAlign;
|
|
||||||
bool _largeFile;
|
|
||||||
string _path;
|
|
||||||
|
|
||||||
public WAVReader(string path) {
|
|
||||||
_path = path;
|
|
||||||
//_fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
|
|
||||||
_fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, 0x10000, FileOptions.SequentialScan);
|
|
||||||
_br = new BinaryReader(_fs);
|
|
||||||
|
|
||||||
ParseHeaders();
|
|
||||||
|
|
||||||
_sampleLen = _dataLen / (uint)_blockAlign;
|
|
||||||
Position = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close() {
|
|
||||||
_br.Close();
|
|
||||||
|
|
||||||
_br = null;
|
|
||||||
_fs = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ParseHeaders() {
|
|
||||||
const long maxFileSize = 0x7FFFFFFEL;
|
|
||||||
const uint fccRIFF = 0x46464952;
|
|
||||||
const uint fccWAVE = 0x45564157;
|
|
||||||
const uint fccFormat = 0x20746D66;
|
|
||||||
const uint fccData = 0x61746164;
|
|
||||||
|
|
||||||
uint lenRIFF;
|
|
||||||
long fileEnd;
|
|
||||||
bool foundFormat, foundData;
|
|
||||||
|
|
||||||
if (_br.ReadUInt32() != fccRIFF) {
|
|
||||||
throw new Exception("Not a valid RIFF file.");
|
|
||||||
}
|
|
||||||
|
|
||||||
lenRIFF = _br.ReadUInt32();
|
|
||||||
fileEnd = (long)lenRIFF + 8;
|
|
||||||
|
|
||||||
if (_br.ReadUInt32() != fccWAVE) {
|
|
||||||
throw new Exception("Not a valid WAVE file.");
|
|
||||||
}
|
|
||||||
|
|
||||||
_largeFile = false;
|
|
||||||
foundFormat = false;
|
|
||||||
foundData = false;
|
|
||||||
|
|
||||||
while (_fs.Position < fileEnd) {
|
|
||||||
uint ckID, ckSize, ckSizePadded;
|
|
||||||
long ckEnd;
|
|
||||||
|
|
||||||
ckID = _br.ReadUInt32();
|
|
||||||
ckSize = _br.ReadUInt32();
|
|
||||||
ckSizePadded = (ckSize + 1U) & ~1U;
|
|
||||||
ckEnd = _fs.Position + (long)ckSizePadded;
|
|
||||||
|
|
||||||
if (ckID == fccFormat) {
|
|
||||||
foundFormat = true;
|
|
||||||
|
|
||||||
if (_br.ReadUInt16() != 1) {
|
|
||||||
throw new Exception("WAVE must be PCM format.");
|
|
||||||
}
|
|
||||||
_channelCount = _br.ReadInt16();
|
|
||||||
_sampleRate = _br.ReadInt32();
|
|
||||||
_br.ReadInt32();
|
|
||||||
_blockAlign = _br.ReadInt16();
|
|
||||||
_bitsPerSample = _br.ReadInt16();
|
|
||||||
}
|
|
||||||
else if (ckID == fccData) {
|
|
||||||
foundData = true;
|
|
||||||
|
|
||||||
_dataOffset = (ulong) _fs.Position;
|
|
||||||
if (_fs.Length <= maxFileSize) {
|
|
||||||
_dataLen = ckSize;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
_largeFile = true;
|
|
||||||
_dataLen = ((ulong)_fs.Length) - _dataOffset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((foundFormat & foundData) || _largeFile) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
_fs.Seek(ckEnd, SeekOrigin.Begin);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((foundFormat & foundData) == false) {
|
|
||||||
throw new Exception("Format or data chunk not found.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_channelCount <= 0) {
|
|
||||||
throw new Exception("Channel count is invalid.");
|
|
||||||
}
|
|
||||||
if (_sampleRate <= 0) {
|
|
||||||
throw new Exception("Sample rate is invalid.");
|
|
||||||
}
|
|
||||||
if (_blockAlign != (_channelCount * ((_bitsPerSample + 7) / 8))) {
|
|
||||||
throw new Exception("Block align is invalid.");
|
|
||||||
}
|
|
||||||
if ((_bitsPerSample <= 0) || (_bitsPerSample > 32)) {
|
|
||||||
throw new Exception("Bits per sample is invalid.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ulong Position {
|
|
||||||
get {
|
|
||||||
return _samplePos;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
ulong seekPos;
|
|
||||||
|
|
||||||
if (value > _sampleLen) {
|
|
||||||
_samplePos = _sampleLen;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
_samplePos = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
seekPos = _dataOffset + (_samplePos * (uint)_blockAlign);
|
|
||||||
_fs.Seek((long) seekPos, SeekOrigin.Begin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ulong Length {
|
|
||||||
get {
|
|
||||||
return _sampleLen;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ulong Remaining {
|
|
||||||
get {
|
|
||||||
return _sampleLen - _samplePos;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int ChannelCount {
|
|
||||||
get {
|
|
||||||
return _channelCount;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int SampleRate {
|
|
||||||
get {
|
|
||||||
return _sampleRate;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int BitsPerSample {
|
|
||||||
get {
|
|
||||||
return _bitsPerSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int BlockAlign {
|
|
||||||
get {
|
|
||||||
return _blockAlign;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public NameValueCollection Tags {
|
|
||||||
get {
|
|
||||||
return new NameValueCollection();
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void GetTags(out List<string> names, out List<string> values)
|
|
||||||
{
|
|
||||||
names = new List<string>();
|
|
||||||
values = new List<string>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public uint Read(byte[] buff, uint sampleCount) {
|
|
||||||
if (sampleCount > Remaining)
|
|
||||||
sampleCount = (uint) Remaining;
|
|
||||||
|
|
||||||
uint byteCount = sampleCount * (uint) _blockAlign;
|
|
||||||
|
|
||||||
if (sampleCount != 0) {
|
|
||||||
if (_fs.Read(buff, 0, (int) byteCount) != byteCount) {
|
|
||||||
throw new Exception("Incomplete file read.");
|
|
||||||
}
|
|
||||||
_samplePos += sampleCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
return sampleCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Path { get { return _path; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class WAVWriter : IAudioDest {
|
|
||||||
FileStream _fs;
|
|
||||||
BinaryWriter _bw;
|
|
||||||
int _bitsPerSample, _channelCount, _sampleRate, _blockAlign;
|
|
||||||
long _sampleLen;
|
|
||||||
string _path;
|
|
||||||
|
|
||||||
public WAVWriter(string path, int bitsPerSample, int channelCount, int sampleRate) {
|
|
||||||
_path = path;
|
|
||||||
_bitsPerSample = bitsPerSample;
|
|
||||||
_channelCount = channelCount;
|
|
||||||
_sampleRate = sampleRate;
|
|
||||||
_blockAlign = _channelCount * ((_bitsPerSample + 7) / 8);
|
|
||||||
|
|
||||||
_fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read);
|
|
||||||
_bw = new BinaryWriter(_fs);
|
|
||||||
|
|
||||||
WriteHeaders();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool SetTags(NameValueCollection tags)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void WriteHeaders() {
|
|
||||||
const uint fccRIFF = 0x46464952;
|
|
||||||
const uint fccWAVE = 0x45564157;
|
|
||||||
const uint fccFormat = 0x20746D66;
|
|
||||||
const uint fccData = 0x61746164;
|
|
||||||
|
|
||||||
_bw.Write(fccRIFF);
|
|
||||||
_bw.Write((uint)0);
|
|
||||||
_bw.Write(fccWAVE);
|
|
||||||
|
|
||||||
_bw.Write(fccFormat);
|
|
||||||
_bw.Write((uint)16);
|
|
||||||
_bw.Write((ushort)1);
|
|
||||||
_bw.Write((ushort)_channelCount);
|
|
||||||
_bw.Write((uint)_sampleRate);
|
|
||||||
_bw.Write((uint)(_sampleRate * _blockAlign));
|
|
||||||
_bw.Write((ushort)_blockAlign);
|
|
||||||
_bw.Write((ushort)_bitsPerSample);
|
|
||||||
|
|
||||||
_bw.Write(fccData);
|
|
||||||
_bw.Write((uint)0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close() {
|
|
||||||
const long maxFileSize = 0x7FFFFFFEL;
|
|
||||||
long dataLen, dataLenPadded;
|
|
||||||
|
|
||||||
dataLen = _sampleLen * _blockAlign;
|
|
||||||
|
|
||||||
if ((dataLen & 1) == 1) {
|
|
||||||
_bw.Write((byte)0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((dataLen + 44) > maxFileSize) {
|
|
||||||
dataLen = ((maxFileSize - 44) / _blockAlign) * _blockAlign;
|
|
||||||
}
|
|
||||||
|
|
||||||
dataLenPadded = ((dataLen & 1) == 1) ? (dataLen + 1) : dataLen;
|
|
||||||
|
|
||||||
_bw.Seek(4, SeekOrigin.Begin);
|
|
||||||
_bw.Write((uint)(dataLenPadded + 36));
|
|
||||||
|
|
||||||
_bw.Seek(40, SeekOrigin.Begin);
|
|
||||||
_bw.Write((uint)dataLen);
|
|
||||||
|
|
||||||
_bw.Close();
|
|
||||||
|
|
||||||
_bw = null;
|
|
||||||
_fs = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long Position {
|
|
||||||
get {
|
|
||||||
return _sampleLen;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public long FinalSampleCount {
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Write(byte[] buff, uint sampleCount) {
|
|
||||||
if (sampleCount < 0) {
|
|
||||||
sampleCount = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sampleCount != 0) {
|
|
||||||
_fs.Write(buff, 0, (int) sampleCount * _blockAlign);
|
|
||||||
_sampleLen += sampleCount;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Path { get { return _path; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
#if !MONO
|
#if !MONO
|
||||||
class FLACReader : IAudioSource {
|
class FLACReader : IAudioSource {
|
||||||
FLACDotNet.FLACReader _flacReader;
|
FLACDotNet.FLACReader _flacReader;
|
||||||
@@ -469,29 +126,6 @@ namespace CUEToolsLib {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void FLACSamplesToBytes_16(int[,] inSamples, uint inSampleOffset,
|
|
||||||
byte[] outSamples, uint outByteOffset, uint sampleCount, int channelCount)
|
|
||||||
{
|
|
||||||
uint loopCount = sampleCount * (uint) channelCount;
|
|
||||||
|
|
||||||
if ((inSamples.GetLength(0) - inSampleOffset < sampleCount) ||
|
|
||||||
(outSamples.Length - outByteOffset < loopCount * 2))
|
|
||||||
{
|
|
||||||
throw new IndexOutOfRangeException();
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed (int* pInSamplesFixed = &inSamples[inSampleOffset, 0]) {
|
|
||||||
fixed (byte* pOutSamplesFixed = &outSamples[outByteOffset]) {
|
|
||||||
int* pInSamples = pInSamplesFixed;
|
|
||||||
short* pOutSamples = (short*)pOutSamplesFixed;
|
|
||||||
|
|
||||||
for (int i = 0; i < loopCount; i++) {
|
|
||||||
*(pOutSamples++) = (short)*(pInSamples++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public uint Read(byte[] buff, uint sampleCount) {
|
public uint Read(byte[] buff, uint sampleCount) {
|
||||||
if (_flacReader.BitsPerSample != 16) {
|
if (_flacReader.BitsPerSample != 16) {
|
||||||
throw new Exception("Reading is only supported for 16 bit sample depth.");
|
throw new Exception("Reading is only supported for 16 bit sample depth.");
|
||||||
@@ -509,7 +143,7 @@ namespace CUEToolsLib {
|
|||||||
|
|
||||||
copyCount = Math.Min(samplesNeeded, SamplesInBuffer);
|
copyCount = Math.Min(samplesNeeded, SamplesInBuffer);
|
||||||
|
|
||||||
FLACSamplesToBytes_16(_sampleBuffer, _bufferOffset, buff, buffOffset,
|
AudioCodecsDotNet.AudioCodecsDotNet.FLACSamplesToBytes_16(_sampleBuffer, _bufferOffset, buff, buffOffset,
|
||||||
copyCount, chanCount);
|
copyCount, chanCount);
|
||||||
|
|
||||||
samplesNeeded -= copyCount;
|
samplesNeeded -= copyCount;
|
||||||
@@ -525,14 +159,13 @@ namespace CUEToolsLib {
|
|||||||
|
|
||||||
class FLACWriter : IAudioDest {
|
class FLACWriter : IAudioDest {
|
||||||
FLACDotNet.FLACWriter _flacWriter;
|
FLACDotNet.FLACWriter _flacWriter;
|
||||||
int[,] _sampleBuffer;
|
|
||||||
int _bitsPerSample;
|
int _bitsPerSample;
|
||||||
int _channelCount;
|
int _channelCount;
|
||||||
int _sampleRate;
|
int _sampleRate;
|
||||||
|
|
||||||
public FLACWriter(string path, int bitsPerSample, int channelCount, int sampleRate) {
|
public FLACWriter(string path, int bitsPerSample, int channelCount, int sampleRate) {
|
||||||
if (bitsPerSample != 16) {
|
if (bitsPerSample != 16 && bitsPerSample != 24) {
|
||||||
throw new Exception("Bits per sample must be 16.");
|
throw new Exception("Bits per sample must be 16 or 24.");
|
||||||
}
|
}
|
||||||
_bitsPerSample = bitsPerSample;
|
_bitsPerSample = bitsPerSample;
|
||||||
_channelCount = channelCount;
|
_channelCount = channelCount;
|
||||||
@@ -577,35 +210,9 @@ namespace CUEToolsLib {
|
|||||||
_flacWriter.Close();
|
_flacWriter.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void BytesToFLACSamples_16(byte[] inSamples, int inByteOffset,
|
public void Write(int[,] buff, uint sampleCount)
|
||||||
int[,] outSamples, int outSampleOffset, uint sampleCount, int channelCount)
|
|
||||||
{
|
{
|
||||||
uint loopCount = sampleCount * (uint) channelCount;
|
_flacWriter.Write(buff, (int) sampleCount);
|
||||||
|
|
||||||
if ((inSamples.Length - inByteOffset < loopCount * 2) ||
|
|
||||||
(outSamples.GetLength(0) - outSampleOffset < sampleCount))
|
|
||||||
{
|
|
||||||
throw new IndexOutOfRangeException();
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed (byte* pInSamplesFixed = &inSamples[inByteOffset]) {
|
|
||||||
fixed (int* pOutSamplesFixed = &outSamples[outSampleOffset, 0]) {
|
|
||||||
short* pInSamples = (short*)pInSamplesFixed;
|
|
||||||
int* pOutSamples = pOutSamplesFixed;
|
|
||||||
|
|
||||||
for (int i = 0; i < loopCount; i++) {
|
|
||||||
*(pOutSamples++) = (int)*(pInSamples++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Write(byte[] buff, uint sampleCount) {
|
|
||||||
if ((_sampleBuffer == null) || (_sampleBuffer.GetLength(0) < sampleCount)) {
|
|
||||||
_sampleBuffer = new int[sampleCount, _channelCount];
|
|
||||||
}
|
|
||||||
BytesToFLACSamples_16(buff, 0, _sampleBuffer, 0, sampleCount, _channelCount);
|
|
||||||
_flacWriter.Write(_sampleBuffer, (int) sampleCount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Path { get { return _flacWriter.Path; } }
|
public string Path { get { return _flacWriter.Path; } }
|
||||||
@@ -739,20 +346,22 @@ namespace CUEToolsLib {
|
|||||||
class APEWriter : IAudioDest
|
class APEWriter : IAudioDest
|
||||||
{
|
{
|
||||||
APEDotNet.APEWriter _apeWriter;
|
APEDotNet.APEWriter _apeWriter;
|
||||||
//int[,] _sampleBuffer;
|
byte[] _sampleBuffer;
|
||||||
int _bitsPerSample;
|
int _bitsPerSample;
|
||||||
int _channelCount;
|
int _channelCount;
|
||||||
int _sampleRate;
|
int _sampleRate;
|
||||||
|
int _blockAlign;
|
||||||
|
|
||||||
public APEWriter(string path, int bitsPerSample, int channelCount, int sampleRate)
|
public APEWriter(string path, int bitsPerSample, int channelCount, int sampleRate)
|
||||||
{
|
{
|
||||||
if (bitsPerSample != 16)
|
if (bitsPerSample != 16 && bitsPerSample != 24)
|
||||||
{
|
{
|
||||||
throw new Exception("Bits per sample must be 16.");
|
throw new Exception("Bits per sample must be 16 or 24.");
|
||||||
}
|
}
|
||||||
_bitsPerSample = bitsPerSample;
|
_bitsPerSample = bitsPerSample;
|
||||||
_channelCount = channelCount;
|
_channelCount = channelCount;
|
||||||
_sampleRate = sampleRate;
|
_sampleRate = sampleRate;
|
||||||
|
_blockAlign = _channelCount * ((_bitsPerSample + 7) / 8);
|
||||||
_apeWriter = new APEDotNet.APEWriter(path, bitsPerSample, channelCount, sampleRate);
|
_apeWriter = new APEDotNet.APEWriter(path, bitsPerSample, channelCount, sampleRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -775,40 +384,12 @@ namespace CUEToolsLib {
|
|||||||
{
|
{
|
||||||
_apeWriter.Close();
|
_apeWriter.Close();
|
||||||
}
|
}
|
||||||
private unsafe void BytesToAPESamples_16(byte[] inSamples, int inByteOffset,
|
public void Write(int [,] buff, uint sampleCount)
|
||||||
int[,] outSamples, int outSampleOffset, uint sampleCount, int channelCount)
|
|
||||||
{
|
{
|
||||||
uint loopCount = sampleCount * (uint)channelCount;
|
if (_sampleBuffer == null || _sampleBuffer.Length < sampleCount * _blockAlign)
|
||||||
|
_sampleBuffer = new byte[sampleCount * _blockAlign];
|
||||||
if ((inSamples.Length - inByteOffset < loopCount * 2) ||
|
AudioCodecsDotNet.AudioCodecsDotNet.FLACSamplesToBytes (buff, 0, _sampleBuffer, 0, sampleCount, _channelCount, _bitsPerSample);
|
||||||
(outSamples.GetLength(0) - outSampleOffset < sampleCount))
|
_apeWriter.Write(_sampleBuffer, sampleCount);
|
||||||
{
|
|
||||||
throw new IndexOutOfRangeException();
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed (byte* pInSamplesFixed = &inSamples[inByteOffset])
|
|
||||||
{
|
|
||||||
fixed (int* pOutSamplesFixed = &outSamples[outSampleOffset, 0])
|
|
||||||
{
|
|
||||||
short* pInSamples = (short*)pInSamplesFixed;
|
|
||||||
int* pOutSamples = pOutSamplesFixed;
|
|
||||||
|
|
||||||
for (int i = 0; i < loopCount; i++)
|
|
||||||
{
|
|
||||||
*(pOutSamples++) = (int)*(pInSamples++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public void Write(byte[] buff, uint sampleCount)
|
|
||||||
{
|
|
||||||
//if ((_sampleBuffer == null) || (_sampleBuffer.GetLength(0) < sampleCount))
|
|
||||||
//{
|
|
||||||
// _sampleBuffer = new int[sampleCount, _channelCount];
|
|
||||||
//}
|
|
||||||
//BytesToAPESamples_16(buff, 0, _sampleBuffer, 0, sampleCount, _channelCount);
|
|
||||||
//_apeWriter.Write(_sampleBuffer, (int)sampleCount);
|
|
||||||
_apeWriter.Write (buff, sampleCount);
|
|
||||||
}
|
}
|
||||||
public string Path { get { return _apeWriter.Path; } }
|
public string Path { get { return _apeWriter.Path; } }
|
||||||
}
|
}
|
||||||
@@ -871,29 +452,6 @@ namespace CUEToolsLib {
|
|||||||
set { _wavPackReader.Tags = value; }
|
set { _wavPackReader.Tags = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void WavPackSamplesToBytes_16(int[,] inSamples, uint inSampleOffset,
|
|
||||||
byte[] outSamples, uint outByteOffset, uint sampleCount, int channelCount)
|
|
||||||
{
|
|
||||||
uint loopCount = sampleCount * (uint) channelCount;
|
|
||||||
|
|
||||||
if ((inSamples.GetLength(0) - inSampleOffset < sampleCount) ||
|
|
||||||
(outSamples.Length - outByteOffset < loopCount * 2))
|
|
||||||
{
|
|
||||||
throw new IndexOutOfRangeException();
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed (int* pInSamplesFixed = &inSamples[inSampleOffset, 0]) {
|
|
||||||
fixed (byte* pOutSamplesFixed = &outSamples[outByteOffset]) {
|
|
||||||
int* pInSamples = pInSamplesFixed;
|
|
||||||
short* pOutSamples = (short*)pOutSamplesFixed;
|
|
||||||
|
|
||||||
for (int i = 0; i < loopCount; i++) {
|
|
||||||
*(pOutSamples++) = (short)*(pInSamples++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public uint Read(byte[] buff, uint sampleCount) {
|
public uint Read(byte[] buff, uint sampleCount) {
|
||||||
if (_wavPackReader.BitsPerSample != 16) {
|
if (_wavPackReader.BitsPerSample != 16) {
|
||||||
throw new Exception("Reading is only supported for 16 bit sample depth.");
|
throw new Exception("Reading is only supported for 16 bit sample depth.");
|
||||||
@@ -903,8 +461,7 @@ namespace CUEToolsLib {
|
|||||||
|
|
||||||
sampleBuffer = new int[sampleCount * 2, chanCount];
|
sampleBuffer = new int[sampleCount * 2, chanCount];
|
||||||
_wavPackReader.Read(sampleBuffer, (int) sampleCount);
|
_wavPackReader.Read(sampleBuffer, (int) sampleCount);
|
||||||
WavPackSamplesToBytes_16(sampleBuffer, 0, buff, 0, sampleCount, chanCount);
|
AudioCodecsDotNet.AudioCodecsDotNet.FLACSamplesToBytes_16(sampleBuffer, 0, buff, 0, sampleCount, chanCount);
|
||||||
|
|
||||||
return sampleCount;
|
return sampleCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -913,18 +470,21 @@ namespace CUEToolsLib {
|
|||||||
|
|
||||||
class WavPackWriter : IAudioDest {
|
class WavPackWriter : IAudioDest {
|
||||||
WavPackDotNet.WavPackWriter _wavPackWriter;
|
WavPackDotNet.WavPackWriter _wavPackWriter;
|
||||||
int[,] _sampleBuffer;
|
|
||||||
int _bitsPerSample;
|
int _bitsPerSample;
|
||||||
int _channelCount;
|
int _channelCount;
|
||||||
int _sampleRate;
|
int _sampleRate;
|
||||||
|
int _blockAlign;
|
||||||
|
byte[] _sampleBuffer;
|
||||||
|
|
||||||
public WavPackWriter(string path, int bitsPerSample, int channelCount, int sampleRate) {
|
public WavPackWriter(string path, int bitsPerSample, int channelCount, int sampleRate) {
|
||||||
if (bitsPerSample != 16) {
|
if (bitsPerSample != 16 && bitsPerSample != 24)
|
||||||
throw new Exception("Bits per sample must be 16.");
|
{
|
||||||
|
throw new Exception("Bits per sample must be 16 or 24.");
|
||||||
}
|
}
|
||||||
_bitsPerSample = bitsPerSample;
|
_bitsPerSample = bitsPerSample;
|
||||||
_channelCount = channelCount;
|
_channelCount = channelCount;
|
||||||
_sampleRate = sampleRate;
|
_sampleRate = sampleRate;
|
||||||
|
_blockAlign = _channelCount * ((_bitsPerSample + 7) / 8);
|
||||||
_wavPackWriter = new WavPackDotNet.WavPackWriter(path, bitsPerSample, channelCount, sampleRate);
|
_wavPackWriter = new WavPackDotNet.WavPackWriter(path, bitsPerSample, channelCount, sampleRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -961,39 +521,31 @@ namespace CUEToolsLib {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool MD5Sum
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _wavPackWriter.MD5Sum;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_wavPackWriter.MD5Sum = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Close() {
|
public void Close() {
|
||||||
_wavPackWriter.Close();
|
_wavPackWriter.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void BytesToWavPackSamples_16(byte[] inSamples, int inByteOffset,
|
public void Write(int[,] sampleBuffer, uint sampleCount) {
|
||||||
int[,] outSamples, int outSampleOffset, uint sampleCount, int channelCount)
|
if (MD5Sum)
|
||||||
{
|
|
||||||
uint loopCount = sampleCount * (uint) channelCount;
|
|
||||||
|
|
||||||
if ((inSamples.Length - inByteOffset < loopCount * 2) ||
|
|
||||||
(outSamples.GetLength(0) - outSampleOffset < sampleCount))
|
|
||||||
{
|
{
|
||||||
throw new IndexOutOfRangeException();
|
if (_sampleBuffer == null || _sampleBuffer.Length < sampleCount * _blockAlign)
|
||||||
|
_sampleBuffer = new byte[sampleCount * _blockAlign];
|
||||||
|
AudioCodecsDotNet.AudioCodecsDotNet.FLACSamplesToBytes(sampleBuffer, 0, _sampleBuffer, 0, sampleCount, _channelCount, _bitsPerSample);
|
||||||
|
_wavPackWriter.UpdateHash(_sampleBuffer, (int) sampleCount * _blockAlign);
|
||||||
}
|
}
|
||||||
|
_wavPackWriter.Write(sampleBuffer, (int) sampleCount);
|
||||||
fixed (byte* pInSamplesFixed = &inSamples[inByteOffset]) {
|
|
||||||
fixed (int* pOutSamplesFixed = &outSamples[outSampleOffset, 0]) {
|
|
||||||
short* pInSamples = (short*)pInSamplesFixed;
|
|
||||||
int* pOutSamples = pOutSamplesFixed;
|
|
||||||
|
|
||||||
for (int i = 0; i < loopCount; i++) {
|
|
||||||
*(pOutSamples++) = (int)*(pInSamples++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Write(byte[] buff, uint sampleCount) {
|
|
||||||
if ((_sampleBuffer == null) || (_sampleBuffer.GetLength(0) < sampleCount)) {
|
|
||||||
_sampleBuffer = new int[sampleCount, _channelCount];
|
|
||||||
}
|
|
||||||
BytesToWavPackSamples_16(buff, 0, _sampleBuffer, 0, sampleCount, _channelCount);
|
|
||||||
_wavPackWriter.Write(_sampleBuffer, (int) sampleCount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Path { get { return _wavPackWriter.Path; } }
|
public string Path { get { return _wavPackWriter.Path; } }
|
||||||
|
|||||||
@@ -89,14 +89,26 @@
|
|||||||
<Compile Include="Settings.cs" />
|
<Compile Include="Settings.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\ALACDotNet\ALACDotNet.csproj">
|
||||||
|
<Project>{F2EC7193-D5E5-4252-9803-5CEB407E910F}</Project>
|
||||||
|
<Name>ALACDotNet</Name>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\APEDotNet\APEDotNet.vcproj">
|
<ProjectReference Include="..\APEDotNet\APEDotNet.vcproj">
|
||||||
<Project>{9AE965C4-301E-4C01-B90F-297AF341ACC6}</Project>
|
<Project>{9AE965C4-301E-4C01-B90F-297AF341ACC6}</Project>
|
||||||
<Name>APEDotNet</Name>
|
<Name>APEDotNet</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\AudioCodecsDotNet\AudioCodecsDotNet.csproj">
|
||||||
|
<Project>{6458A13A-30EF-45A9-9D58-E5031B17BEE2}</Project>
|
||||||
|
<Name>AudioCodecsDotNet</Name>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\FLACDotNet\FLACDotNet.vcproj">
|
<ProjectReference Include="..\FLACDotNet\FLACDotNet.vcproj">
|
||||||
<Project>{E70FA90A-7012-4A52-86B5-362B699D1540}</Project>
|
<Project>{E70FA90A-7012-4A52-86B5-362B699D1540}</Project>
|
||||||
<Name>FLACDotNet</Name>
|
<Name>FLACDotNet</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\HDCDDotNet\HDCDDotNet.csproj">
|
||||||
|
<Project>{32338A04-5B6B-4C63-8EE7-C6400F73B5D7}</Project>
|
||||||
|
<Name>HDCDDotNet</Name>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\WavPackDotNet\WavPackDotNet.vcproj">
|
<ProjectReference Include="..\WavPackDotNet\WavPackDotNet.vcproj">
|
||||||
<Project>{CC2E74B6-534A-43D8-9F16-AC03FE955000}</Project>
|
<Project>{CC2E74B6-534A-43D8-9F16-AC03FE955000}</Project>
|
||||||
<Name>WavPackDotNet</Name>
|
<Name>WavPackDotNet</Name>
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ using System.Globalization;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using AudioCodecsDotNet;
|
||||||
|
using HDCDDotNet;
|
||||||
|
|
||||||
namespace CUEToolsLib
|
namespace CUEToolsLib
|
||||||
{
|
{
|
||||||
@@ -215,6 +217,7 @@ namespace CUEToolsLib
|
|||||||
public bool preserveHTOA;
|
public bool preserveHTOA;
|
||||||
public int wvCompressionMode;
|
public int wvCompressionMode;
|
||||||
public int wvExtraMode;
|
public int wvExtraMode;
|
||||||
|
public bool wvStoreMD5;
|
||||||
public bool keepOriginalFilenames;
|
public bool keepOriginalFilenames;
|
||||||
public string trackFilenameFormat;
|
public string trackFilenameFormat;
|
||||||
public string singleFilenameFormat;
|
public string singleFilenameFormat;
|
||||||
@@ -225,6 +228,11 @@ namespace CUEToolsLib
|
|||||||
public bool fillUpCUE;
|
public bool fillUpCUE;
|
||||||
public bool filenamesANSISafe;
|
public bool filenamesANSISafe;
|
||||||
public bool bruteForceDTL;
|
public bool bruteForceDTL;
|
||||||
|
public bool detectHDCD;
|
||||||
|
public bool decodeHDCD;
|
||||||
|
public bool wait750FramesForHDCD;
|
||||||
|
public bool createM3U;
|
||||||
|
public bool createCUEFileWhenEmbedded;
|
||||||
|
|
||||||
public CUEConfig()
|
public CUEConfig()
|
||||||
{
|
{
|
||||||
@@ -247,6 +255,7 @@ namespace CUEToolsLib
|
|||||||
preserveHTOA = true;
|
preserveHTOA = true;
|
||||||
wvCompressionMode = 1;
|
wvCompressionMode = 1;
|
||||||
wvExtraMode = 0;
|
wvExtraMode = 0;
|
||||||
|
wvStoreMD5 = false;
|
||||||
keepOriginalFilenames = true;
|
keepOriginalFilenames = true;
|
||||||
trackFilenameFormat = "%N-%A-%T";
|
trackFilenameFormat = "%N-%A-%T";
|
||||||
singleFilenameFormat = "%F";
|
singleFilenameFormat = "%F";
|
||||||
@@ -257,6 +266,11 @@ namespace CUEToolsLib
|
|||||||
fillUpCUE = true;
|
fillUpCUE = true;
|
||||||
filenamesANSISafe = true;
|
filenamesANSISafe = true;
|
||||||
bruteForceDTL = false;
|
bruteForceDTL = false;
|
||||||
|
detectHDCD = true;
|
||||||
|
wait750FramesForHDCD = true;
|
||||||
|
decodeHDCD = false;
|
||||||
|
createM3U = false;
|
||||||
|
createCUEFileWhenEmbedded = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Save (SettingsWriter sw)
|
public void Save (SettingsWriter sw)
|
||||||
@@ -280,6 +294,7 @@ namespace CUEToolsLib
|
|||||||
sw.Save("FLACVerify", flacVerify);
|
sw.Save("FLACVerify", flacVerify);
|
||||||
sw.Save("WVCompressionMode", wvCompressionMode);
|
sw.Save("WVCompressionMode", wvCompressionMode);
|
||||||
sw.Save("WVExtraMode", wvExtraMode);
|
sw.Save("WVExtraMode", wvExtraMode);
|
||||||
|
sw.Save("WVStoreMD5", wvStoreMD5);
|
||||||
sw.Save("KeepOriginalFilenames", keepOriginalFilenames);
|
sw.Save("KeepOriginalFilenames", keepOriginalFilenames);
|
||||||
sw.Save("SingleFilenameFormat", singleFilenameFormat);
|
sw.Save("SingleFilenameFormat", singleFilenameFormat);
|
||||||
sw.Save("TrackFilenameFormat", trackFilenameFormat);
|
sw.Save("TrackFilenameFormat", trackFilenameFormat);
|
||||||
@@ -290,6 +305,11 @@ namespace CUEToolsLib
|
|||||||
sw.Save("FillUpCUE", fillUpCUE);
|
sw.Save("FillUpCUE", fillUpCUE);
|
||||||
sw.Save("FilenamesANSISafe", filenamesANSISafe);
|
sw.Save("FilenamesANSISafe", filenamesANSISafe);
|
||||||
sw.Save("BruteForceDTL", bruteForceDTL);
|
sw.Save("BruteForceDTL", bruteForceDTL);
|
||||||
|
sw.Save("DetectHDCD", detectHDCD);
|
||||||
|
sw.Save("Wait750FramesForHDCD", wait750FramesForHDCD);
|
||||||
|
sw.Save("DecodeHDCD", decodeHDCD);
|
||||||
|
sw.Save("CreateM3U", createM3U);
|
||||||
|
sw.Save("CreateCUEFileWhenEmbedded", createCUEFileWhenEmbedded);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Load(SettingsReader sr)
|
public void Load(SettingsReader sr)
|
||||||
@@ -313,6 +333,7 @@ namespace CUEToolsLib
|
|||||||
apeCompressionLevel = sr.LoadUInt32("APECompressionLevel", 1, 5) ?? 2;
|
apeCompressionLevel = sr.LoadUInt32("APECompressionLevel", 1, 5) ?? 2;
|
||||||
wvCompressionMode = sr.LoadInt32("WVCompressionMode", 0, 3) ?? 1;
|
wvCompressionMode = sr.LoadInt32("WVCompressionMode", 0, 3) ?? 1;
|
||||||
wvExtraMode = sr.LoadInt32("WVExtraMode", 0, 6) ?? 0;
|
wvExtraMode = sr.LoadInt32("WVExtraMode", 0, 6) ?? 0;
|
||||||
|
wvStoreMD5 = sr.LoadBoolean("WVStoreMD5") ?? false;
|
||||||
keepOriginalFilenames = sr.LoadBoolean("KeepOriginalFilenames") ?? true;
|
keepOriginalFilenames = sr.LoadBoolean("KeepOriginalFilenames") ?? true;
|
||||||
singleFilenameFormat = sr.Load("SingleFilenameFormat") ?? "%F";
|
singleFilenameFormat = sr.Load("SingleFilenameFormat") ?? "%F";
|
||||||
trackFilenameFormat = sr.Load("TrackFilenameFormat") ?? "%N-%A-%T";
|
trackFilenameFormat = sr.Load("TrackFilenameFormat") ?? "%N-%A-%T";
|
||||||
@@ -323,6 +344,11 @@ namespace CUEToolsLib
|
|||||||
fillUpCUE = sr.LoadBoolean("FillUpCUE") ?? true;
|
fillUpCUE = sr.LoadBoolean("FillUpCUE") ?? true;
|
||||||
filenamesANSISafe = sr.LoadBoolean("FilenamesANSISafe") ?? true;
|
filenamesANSISafe = sr.LoadBoolean("FilenamesANSISafe") ?? true;
|
||||||
bruteForceDTL = sr.LoadBoolean("BruteForceDTL") ?? false;
|
bruteForceDTL = sr.LoadBoolean("BruteForceDTL") ?? false;
|
||||||
|
detectHDCD = sr.LoadBoolean("DetectHDCD") ?? true;
|
||||||
|
wait750FramesForHDCD = sr.LoadBoolean("Wait750FramesForHDCD") ?? true;
|
||||||
|
decodeHDCD = sr.LoadBoolean("DecodeHDCD") ?? false;
|
||||||
|
createM3U = sr.LoadBoolean("CreateM3U") ?? false;
|
||||||
|
createCUEFileWhenEmbedded = sr.LoadBoolean("CreateCUEFileWhenEmbedded") ?? false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string CleanseString (string s)
|
public string CleanseString (string s)
|
||||||
@@ -374,6 +400,7 @@ namespace CUEToolsLib
|
|||||||
private List<AccDisk> accDisks;
|
private List<AccDisk> accDisks;
|
||||||
private HttpStatusCode accResult;
|
private HttpStatusCode accResult;
|
||||||
private const int _arOffsetRange = 5 * 588 - 1;
|
private const int _arOffsetRange = 5 * 588 - 1;
|
||||||
|
private HDCDDotNet.HDCDDotNet hdcdDecoder;
|
||||||
CUEConfig _config;
|
CUEConfig _config;
|
||||||
string _cddbDiscIdTag;
|
string _cddbDiscIdTag;
|
||||||
|
|
||||||
@@ -381,6 +408,13 @@ namespace CUEToolsLib
|
|||||||
{
|
{
|
||||||
_config = config;
|
_config = config;
|
||||||
|
|
||||||
|
hdcdDecoder = null;
|
||||||
|
if (_config.detectHDCD)
|
||||||
|
{
|
||||||
|
try { hdcdDecoder = new HDCDDotNet.HDCDDotNet(2, 44100, _config.decodeHDCD); }
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
|
||||||
string cueDir, lineStr, command, pathAudio, fileType;
|
string cueDir, lineStr, command, pathAudio, fileType;
|
||||||
CUELine line;
|
CUELine line;
|
||||||
TrackInfo trackInfo;
|
TrackInfo trackInfo;
|
||||||
@@ -890,6 +924,31 @@ namespace CUEToolsLib
|
|||||||
return (int)audioSource.Length;
|
return (int)audioSource.Length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void WriteM3U(string path, CUEStyle style)
|
||||||
|
{
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
WriteM3U(sw, style);
|
||||||
|
sw.Close();
|
||||||
|
bool utf8Required = CUESheet.Encoding.GetString(CUESheet.Encoding.GetBytes(sw.ToString())) != sw.ToString();
|
||||||
|
StreamWriter sw1 = new StreamWriter(path, false, utf8Required ? Encoding.UTF8 : CUESheet.Encoding);
|
||||||
|
sw1.Write(sw.ToString());
|
||||||
|
sw1.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteM3U(TextWriter sw, CUEStyle style)
|
||||||
|
{
|
||||||
|
int iTrack;
|
||||||
|
bool htoaToFile = ((style == CUEStyle.GapsAppended) && _config.preserveHTOA &&
|
||||||
|
(_tracks[0].IndexLengths[0] != 0));
|
||||||
|
|
||||||
|
if (htoaToFile) {
|
||||||
|
WriteLine(sw, 0, _htoaFilename);
|
||||||
|
}
|
||||||
|
for (iTrack = 0; iTrack < TrackCount; iTrack++) {
|
||||||
|
WriteLine(sw, 0, _trackFilenames[iTrack]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Write(string path, CUEStyle style) {
|
public void Write(string path, CUEStyle style) {
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
Write(sw, style);
|
Write(sw, style);
|
||||||
@@ -1064,11 +1123,19 @@ namespace CUEToolsLib
|
|||||||
|
|
||||||
// Allocate byte buffer to hold stream contents
|
// Allocate byte buffer to hold stream contents
|
||||||
byte [] urlData = new byte[13];
|
byte [] urlData = new byte[13];
|
||||||
long urlDataLen;
|
int urlDataLen, bytesRead;
|
||||||
|
|
||||||
accDisks.Clear();
|
accDisks.Clear();
|
||||||
while ( 0 != (urlDataLen = respStream.Read(urlData, 0, 13)) )
|
while ( true )
|
||||||
{
|
{
|
||||||
|
for (urlDataLen = 0; urlDataLen < 13; urlDataLen += bytesRead)
|
||||||
|
{
|
||||||
|
bytesRead = respStream.Read(urlData, urlDataLen, 13 - urlDataLen);
|
||||||
|
if (0 == bytesRead)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (urlDataLen == 0)
|
||||||
|
break;
|
||||||
if (urlDataLen < 13)
|
if (urlDataLen < 13)
|
||||||
{
|
{
|
||||||
accResult = HttpStatusCode.PartialContent;
|
accResult = HttpStatusCode.PartialContent;
|
||||||
@@ -1082,11 +1149,14 @@ namespace CUEToolsLib
|
|||||||
|
|
||||||
for (int i = 0; i < dsk.count; i++)
|
for (int i = 0; i < dsk.count; i++)
|
||||||
{
|
{
|
||||||
urlDataLen = respStream.Read(urlData, 0, 9);
|
for (urlDataLen = 0; urlDataLen < 9; urlDataLen += bytesRead)
|
||||||
if (urlDataLen < 9)
|
|
||||||
{
|
{
|
||||||
accResult = HttpStatusCode.PartialContent;
|
bytesRead = respStream.Read(urlData, urlDataLen, 9 - urlDataLen);
|
||||||
return;
|
if (0 == bytesRead)
|
||||||
|
{
|
||||||
|
accResult = HttpStatusCode.PartialContent;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
AccTrack trk = new AccTrack();
|
AccTrack trk = new AccTrack();
|
||||||
trk.count = urlData[0];
|
trk.count = urlData[0];
|
||||||
@@ -1259,6 +1329,20 @@ namespace CUEToolsLib
|
|||||||
if (_accurateRipIdActual != _accurateRipId)
|
if (_accurateRipIdActual != _accurateRipId)
|
||||||
sw.WriteLine("Using preserved id, actual id is {0}.", _accurateRipIdActual);
|
sw.WriteLine("Using preserved id, actual id is {0}.", _accurateRipIdActual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hdcdDecoder != null && hdcdDecoder.Detected)
|
||||||
|
{
|
||||||
|
hdcd_decoder_statistics stats;
|
||||||
|
hdcdDecoder.GetStatistics(out stats);
|
||||||
|
sw.WriteLine("HDCD: peak extend: {0}, transient filter: {1}, gain: {2}",
|
||||||
|
(stats.enabled_peak_extend ? (stats.disabled_peak_extend ? "some" : "yes") : "none"),
|
||||||
|
(stats.enabled_transient_filter ? (stats.disabled_transient_filter ? "some" : "yes") : "none"),
|
||||||
|
stats.min_gain_adjustment == stats.max_gain_adjustment ?
|
||||||
|
(stats.min_gain_adjustment == 1.0 ? "none" : String.Format ("{0:0.0}dB", (Math.Log10(stats.min_gain_adjustment) * 20))) :
|
||||||
|
String.Format ("{0:0.0}dB..{1:0.0}dB", (Math.Log10(stats.min_gain_adjustment) * 20), (Math.Log10(stats.max_gain_adjustment) * 20))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (accResult == HttpStatusCode.NotFound)
|
if (accResult == HttpStatusCode.NotFound)
|
||||||
{
|
{
|
||||||
sw.WriteLine("Disk not present in database.");
|
sw.WriteLine("Disk not present in database.");
|
||||||
@@ -1513,6 +1597,10 @@ namespace CUEToolsLib
|
|||||||
Directory.CreateDirectory(dir);
|
Directory.CreateDirectory(dir);
|
||||||
if (style != CUEStyle.SingleFileWithCUE)
|
if (style != CUEStyle.SingleFileWithCUE)
|
||||||
Write(_cuePath, style);
|
Write(_cuePath, style);
|
||||||
|
else if (_config.createCUEFileWhenEmbedded)
|
||||||
|
Write(Path.ChangeExtension(_cuePath, ".cue"), style);
|
||||||
|
if (style != CUEStyle.SingleFileWithCUE && style != CUEStyle.SingleFile && _config.createM3U)
|
||||||
|
WriteM3U(Path.ChangeExtension(_cuePath, ".m3u"), style);
|
||||||
}
|
}
|
||||||
WriteAudioFilesPass(dir, style, statusDel, destPaths, destLengths, htoaToFile, verifyOnly);
|
WriteAudioFilesPass(dir, style, statusDel, destPaths, destLengths, htoaToFile, verifyOnly);
|
||||||
}
|
}
|
||||||
@@ -1681,6 +1769,7 @@ namespace CUEToolsLib
|
|||||||
TrackInfo track;
|
TrackInfo track;
|
||||||
IAudioSource audioSource = null;
|
IAudioSource audioSource = null;
|
||||||
IAudioDest audioDest = null;
|
IAudioDest audioDest = null;
|
||||||
|
IAudioDest decodedAudioDest = null;
|
||||||
bool discardOutput;
|
bool discardOutput;
|
||||||
int iSource = -1;
|
int iSource = -1;
|
||||||
int iDest = -1;
|
int iDest = -1;
|
||||||
@@ -1732,14 +1821,25 @@ namespace CUEToolsLib
|
|||||||
if (!noOutput && _accurateRipId != null && _config.writeArTagsOnConvert && _accurateOffset && accResult == HttpStatusCode.OK)
|
if (!noOutput && _accurateRipId != null && _config.writeArTagsOnConvert && _accurateOffset && accResult == HttpStatusCode.OK)
|
||||||
FindBestOffset(1, true, out tracksMatch, out bestOffset);
|
FindBestOffset(1, true, out tracksMatch, out bestOffset);
|
||||||
|
|
||||||
|
if (hdcdDecoder != null)
|
||||||
|
hdcdDecoder.Reset();
|
||||||
|
|
||||||
if (style == CUEStyle.SingleFile || style == CUEStyle.SingleFileWithCUE)
|
if (style == CUEStyle.SingleFile || style == CUEStyle.SingleFileWithCUE)
|
||||||
{
|
{
|
||||||
iDest++;
|
iDest++;
|
||||||
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput);
|
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput, 16);
|
||||||
if (!noOutput)
|
if (!noOutput)
|
||||||
SetAlbumTags(audioDest, bestOffset, style == CUEStyle.SingleFileWithCUE);
|
SetAlbumTags(audioDest, bestOffset, style == CUEStyle.SingleFileWithCUE);
|
||||||
|
if (_config.detectHDCD && hdcdDecoder != null && _config.decodeHDCD && !noOutput)
|
||||||
|
{
|
||||||
|
decodedAudioDest = GetAudioDest(Path.ChangeExtension(destPaths[iDest], ".24bit" + Path.GetExtension(destPaths[iDest])),
|
||||||
|
destLengths[iDest], noOutput, 24);
|
||||||
|
SetAlbumTags(decodedAudioDest, bestOffset, style == CUEStyle.SingleFileWithCUE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int[,] sampleBuffer = null;
|
||||||
|
|
||||||
if (_accurateRip && noOutput)
|
if (_accurateRip && noOutput)
|
||||||
for (iTrack = 0; iTrack < TrackCount; iTrack++)
|
for (iTrack = 0; iTrack < TrackCount; iTrack++)
|
||||||
for (int iCRC = 0; iCRC < 10 * 588; iCRC++)
|
for (int iCRC = 0; iCRC < 10 * 588; iCRC++)
|
||||||
@@ -1765,9 +1865,18 @@ namespace CUEToolsLib
|
|||||||
if ((style == CUEStyle.GapsPrepended) || (style == CUEStyle.GapsLeftOut)) {
|
if ((style == CUEStyle.GapsPrepended) || (style == CUEStyle.GapsLeftOut)) {
|
||||||
if (audioDest != null) audioDest.Close();
|
if (audioDest != null) audioDest.Close();
|
||||||
iDest++;
|
iDest++;
|
||||||
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput);
|
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput, 16);
|
||||||
if (!noOutput)
|
if (!noOutput)
|
||||||
SetTrackTags(audioDest, iTrack, bestOffset);
|
SetTrackTags(audioDest, iTrack, bestOffset);
|
||||||
|
if (_config.detectHDCD && hdcdDecoder != null && _config.decodeHDCD && !noOutput)
|
||||||
|
{
|
||||||
|
hdcdDecoder.AudioDest = null;
|
||||||
|
if (decodedAudioDest != null)
|
||||||
|
decodedAudioDest.Close();
|
||||||
|
decodedAudioDest = GetAudioDest(Path.ChangeExtension(destPaths[iDest], ".24bit" + Path.GetExtension(destPaths[iDest])),
|
||||||
|
destLengths[iDest], noOutput, 24);
|
||||||
|
SetTrackTags(decodedAudioDest, iTrack, bestOffset);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (iIndex = 0; iIndex <= track.LastIndex; iIndex++) {
|
for (iIndex = 0; iIndex <= track.LastIndex; iIndex++) {
|
||||||
@@ -1788,16 +1897,30 @@ namespace CUEToolsLib
|
|||||||
if ((style == CUEStyle.GapsAppended) && (iIndex == 1)) {
|
if ((style == CUEStyle.GapsAppended) && (iIndex == 1)) {
|
||||||
if (audioDest != null) audioDest.Close();
|
if (audioDest != null) audioDest.Close();
|
||||||
iDest++;
|
iDest++;
|
||||||
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput);
|
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput, 16);
|
||||||
if (!noOutput)
|
if (!noOutput)
|
||||||
SetTrackTags(audioDest, iTrack, bestOffset);
|
SetTrackTags(audioDest, iTrack, bestOffset);
|
||||||
|
if (_config.detectHDCD && hdcdDecoder != null && _config.decodeHDCD && !noOutput)
|
||||||
|
{
|
||||||
|
hdcdDecoder.AudioDest = null;
|
||||||
|
if (decodedAudioDest != null)
|
||||||
|
decodedAudioDest.Close();
|
||||||
|
decodedAudioDest = GetAudioDest(Path.ChangeExtension(destPaths[iDest], ".24bit" + Path.GetExtension(destPaths[iDest])),
|
||||||
|
destLengths[iDest], noOutput, 24);
|
||||||
|
SetTrackTags(decodedAudioDest, iTrack, bestOffset);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((style == CUEStyle.GapsAppended) && (iIndex == 0) && (iTrack == 0)) {
|
if ((style == CUEStyle.GapsAppended) && (iIndex == 0) && (iTrack == 0)) {
|
||||||
discardOutput = !htoaToFile;
|
discardOutput = !htoaToFile;
|
||||||
if (htoaToFile) {
|
if (htoaToFile) {
|
||||||
iDest++;
|
iDest++;
|
||||||
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput);
|
audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput, 16);
|
||||||
|
if (_config.detectHDCD && hdcdDecoder != null && _config.decodeHDCD && !noOutput)
|
||||||
|
{
|
||||||
|
decodedAudioDest = GetAudioDest(Path.ChangeExtension(destPaths[iDest], ".24bit" + Path.GetExtension(destPaths[iDest])),
|
||||||
|
destLengths[iDest], noOutput, 24);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((style == CUEStyle.GapsLeftOut) && (iIndex == 0)) {
|
else if ((style == CUEStyle.GapsLeftOut) && (iIndex == 0)) {
|
||||||
@@ -1828,7 +1951,24 @@ namespace CUEToolsLib
|
|||||||
}
|
}
|
||||||
|
|
||||||
audioSource.Read(buff, copyCount);
|
audioSource.Read(buff, copyCount);
|
||||||
if (!discardOutput) audioDest.Write(buff, copyCount);
|
if (sampleBuffer == null || sampleBuffer.GetLength(0) < copyCount)
|
||||||
|
sampleBuffer = new int[copyCount, audioSource.ChannelCount];
|
||||||
|
AudioCodecsDotNet.AudioCodecsDotNet.BytesToFLACSamples_16(buff, 0, sampleBuffer, 0, copyCount, audioSource.ChannelCount);
|
||||||
|
if (!discardOutput) audioDest.Write(sampleBuffer, copyCount);
|
||||||
|
if (_config.detectHDCD && hdcdDecoder != null)
|
||||||
|
{
|
||||||
|
if (_config.wait750FramesForHDCD && diskOffset > 750 * 588 && !hdcdDecoder.Detected)
|
||||||
|
{
|
||||||
|
hdcdDecoder.AudioDest = null;
|
||||||
|
hdcdDecoder = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_config.decodeHDCD)
|
||||||
|
hdcdDecoder.AudioDest = (discardOutput || noOutput) ? null : decodedAudioDest;
|
||||||
|
hdcdDecoder.Process(sampleBuffer, copyCount);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (_accurateRip && noOutput && (iTrack != 0 || iIndex != 0))
|
if (_accurateRip && noOutput && (iTrack != 0 || iIndex != 0))
|
||||||
unsafe {
|
unsafe {
|
||||||
fixed (byte * pBuff = &buff[0])
|
fixed (byte * pBuff = &buff[0])
|
||||||
@@ -1857,8 +1997,18 @@ namespace CUEToolsLib
|
|||||||
|
|
||||||
lock (this) {
|
lock (this) {
|
||||||
if (_stop) {
|
if (_stop) {
|
||||||
|
if (hdcdDecoder != null)
|
||||||
|
hdcdDecoder.AudioDest = null;
|
||||||
audioSource.Close();
|
audioSource.Close();
|
||||||
try { audioDest.Close(); } catch {}
|
try {
|
||||||
|
if (audioDest != null) audioDest.Close();
|
||||||
|
} catch { }
|
||||||
|
// need two separate try/catches,
|
||||||
|
// because Close always throws an exception, and
|
||||||
|
// we want both streams closed.
|
||||||
|
try {
|
||||||
|
if (decodedAudioDest != null) decodedAudioDest.Close();
|
||||||
|
} catch { }
|
||||||
throw new StopException();
|
throw new StopException();
|
||||||
}
|
}
|
||||||
if (_pause)
|
if (_pause)
|
||||||
@@ -1871,8 +2021,12 @@ namespace CUEToolsLib
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hdcdDecoder != null)
|
||||||
|
hdcdDecoder.AudioDest = null;
|
||||||
if (audioSource != null) audioSource.Close();
|
if (audioSource != null) audioSource.Close();
|
||||||
audioDest.Close();
|
audioDest.Close();
|
||||||
|
if (decodedAudioDest != null)
|
||||||
|
decodedAudioDest.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string CorrectAudioFilenames(string path, bool always) {
|
public static string CorrectAudioFilenames(string path, bool always) {
|
||||||
@@ -2030,11 +2184,11 @@ namespace CUEToolsLib
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IAudioDest GetAudioDest(string path, int finalSampleCount, bool noOutput) {
|
private IAudioDest GetAudioDest(string path, int finalSampleCount, bool noOutput, int bitsPerSample) {
|
||||||
if (noOutput)
|
if (noOutput)
|
||||||
return new DummyWriter(path, 16, 2, 44100);
|
return new DummyWriter(path, bitsPerSample, 2, 44100);
|
||||||
|
|
||||||
IAudioDest dest = AudioReadWrite.GetAudioDest(path, 16, 2, 44100, finalSampleCount);
|
IAudioDest dest = AudioReadWrite.GetAudioDest(path, bitsPerSample, 2, 44100, finalSampleCount);
|
||||||
|
|
||||||
#if !MONO
|
#if !MONO
|
||||||
if (dest is FLACWriter) {
|
if (dest is FLACWriter) {
|
||||||
@@ -2046,6 +2200,7 @@ namespace CUEToolsLib
|
|||||||
WavPackWriter w = (WavPackWriter)dest;
|
WavPackWriter w = (WavPackWriter)dest;
|
||||||
w.CompressionMode = _config.wvCompressionMode;
|
w.CompressionMode = _config.wvCompressionMode;
|
||||||
w.ExtraMode = _config.wvExtraMode;
|
w.ExtraMode = _config.wvExtraMode;
|
||||||
|
w.MD5Sum = _config.wvStoreMD5;
|
||||||
}
|
}
|
||||||
if (dest is APEWriter)
|
if (dest is APEWriter)
|
||||||
{
|
{
|
||||||
@@ -2406,86 +2561,4 @@ namespace CUEToolsLib
|
|||||||
public StopException() : base() {
|
public StopException() : base() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SilenceGenerator : IAudioSource {
|
|
||||||
private ulong _sampleOffset, _sampleCount;
|
|
||||||
|
|
||||||
public SilenceGenerator(uint sampleCount) {
|
|
||||||
_sampleOffset = 0;
|
|
||||||
_sampleCount = sampleCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ulong Length {
|
|
||||||
get {
|
|
||||||
return _sampleCount;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ulong Remaining {
|
|
||||||
get {
|
|
||||||
return _sampleCount - _sampleOffset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ulong Position {
|
|
||||||
get {
|
|
||||||
return _sampleOffset;
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
_sampleOffset = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int BitsPerSample {
|
|
||||||
get {
|
|
||||||
return 16;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int ChannelCount {
|
|
||||||
get {
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int SampleRate {
|
|
||||||
get {
|
|
||||||
return 44100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public NameValueCollection Tags
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return new NameValueCollection();
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public uint Read(byte[] buff, uint sampleCount) {
|
|
||||||
uint samplesRemaining, byteCount, i;
|
|
||||||
|
|
||||||
samplesRemaining = (uint) (_sampleCount - _sampleOffset);
|
|
||||||
if (sampleCount > samplesRemaining) {
|
|
||||||
sampleCount = samplesRemaining;
|
|
||||||
}
|
|
||||||
|
|
||||||
byteCount = sampleCount * 2 * 2;
|
|
||||||
for (i = 0; i < byteCount; i++) {
|
|
||||||
buff[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
_sampleOffset += sampleCount;
|
|
||||||
|
|
||||||
return sampleCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Path { get { return null; } }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
using namespace System;
|
using namespace System;
|
||||||
using namespace System::Runtime::InteropServices;
|
using namespace System::Runtime::InteropServices;
|
||||||
using namespace System::Collections::Specialized;
|
using namespace System::Collections::Specialized;
|
||||||
|
using namespace System::Security::Cryptography;
|
||||||
using namespace APETagsDotNet;
|
using namespace APETagsDotNet;
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -187,6 +188,13 @@ namespace WavPackDotNet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Close() {
|
void Close() {
|
||||||
|
if (_md5Sum)
|
||||||
|
{
|
||||||
|
_md5hasher->TransformFinalBlock (gcnew array<unsigned char>(1), 0, 0);
|
||||||
|
pin_ptr<unsigned char> md5_digest = &_md5hasher->Hash[0];
|
||||||
|
WavpackStoreMD5Sum (_wpc, md5_digest);
|
||||||
|
}
|
||||||
|
|
||||||
WavpackFlushSamples(_wpc);
|
WavpackFlushSamples(_wpc);
|
||||||
_wpc = WavpackCloseFile(_wpc);
|
_wpc = WavpackCloseFile(_wpc);
|
||||||
fclose(_hFile);
|
fclose(_hFile);
|
||||||
@@ -244,11 +252,28 @@ namespace WavPackDotNet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
property bool MD5Sum {
|
||||||
|
bool get() {
|
||||||
|
return _md5Sum;
|
||||||
|
}
|
||||||
|
void set(bool value) {
|
||||||
|
_md5Sum = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateHash(array<unsigned char>^ buff, Int32 len)
|
||||||
|
{
|
||||||
|
if (!_initialized) Initialize();
|
||||||
|
|
||||||
|
if (!_md5Sum || !_md5hasher)
|
||||||
|
throw gcnew Exception("MD5 not enabled.");
|
||||||
|
_md5hasher->TransformBlock (buff, 0, len, buff, 0);
|
||||||
|
}
|
||||||
|
|
||||||
void Write(array<Int32, 2>^ sampleBuffer, Int32 sampleCount) {
|
void Write(array<Int32, 2>^ sampleBuffer, Int32 sampleCount) {
|
||||||
if (!_initialized) Initialize();
|
if (!_initialized) Initialize();
|
||||||
|
|
||||||
pin_ptr<Int32> pSampleBuffer = &sampleBuffer[0, 0];
|
pin_ptr<Int32> pSampleBuffer = &sampleBuffer[0, 0];
|
||||||
|
|
||||||
if (!WavpackPackSamples(_wpc, (int32_t*)pSampleBuffer, sampleCount)) {
|
if (!WavpackPackSamples(_wpc, (int32_t*)pSampleBuffer, sampleCount)) {
|
||||||
throw gcnew Exception("An error occurred while encoding.");
|
throw gcnew Exception("An error occurred while encoding.");
|
||||||
}
|
}
|
||||||
@@ -275,6 +300,8 @@ namespace WavPackDotNet {
|
|||||||
Int32 _compressionMode, _extraMode;
|
Int32 _compressionMode, _extraMode;
|
||||||
NameValueCollection^ _tags;
|
NameValueCollection^ _tags;
|
||||||
String^ _path;
|
String^ _path;
|
||||||
|
bool _md5Sum;
|
||||||
|
MD5^ _md5hasher;
|
||||||
|
|
||||||
void Initialize() {
|
void Initialize() {
|
||||||
WavpackConfig config;
|
WavpackConfig config;
|
||||||
@@ -297,6 +324,11 @@ namespace WavPackDotNet {
|
|||||||
config.flags |= CONFIG_EXTRA_MODE;
|
config.flags |= CONFIG_EXTRA_MODE;
|
||||||
config.xmode = _extraMode;
|
config.xmode = _extraMode;
|
||||||
}
|
}
|
||||||
|
if (_md5Sum)
|
||||||
|
{
|
||||||
|
_md5hasher = gcnew MD5CryptoServiceProvider ();
|
||||||
|
config.flags |= CONFIG_MD5_CHECKSUM;
|
||||||
|
}
|
||||||
|
|
||||||
if (!WavpackSetConfiguration(_wpc, &config, (_finalSampleCount == 0) ? -1 : _finalSampleCount)) {
|
if (!WavpackSetConfiguration(_wpc, &config, (_finalSampleCount == 0) ? -1 : _finalSampleCount)) {
|
||||||
throw gcnew Exception("Invalid configuration setting.");
|
throw gcnew Exception("Invalid configuration setting.");
|
||||||
|
|||||||
Reference in New Issue
Block a user