This commit is contained in:
chudov
2012-04-17 01:22:49 +00:00
parent 3a50c03cef
commit 8e61e9b54f
19 changed files with 61 additions and 9 deletions

View File

@@ -78,5 +78,8 @@ namespace CUERipper
[DefaultValue(CUETools.Processor.CUEConfigAdvanced.CTDBCoversSearch.Small), Category("CTDB"), DisplayName("Album art search")] [DefaultValue(CUETools.Processor.CUEConfigAdvanced.CTDBCoversSearch.Small), Category("CTDB"), DisplayName("Album art search")]
public CUETools.Processor.CUEConfigAdvanced.CTDBCoversSearch coversSearch { get { return config.advanced.coversSearch; } set { config.advanced.coversSearch = value; } } public CUETools.Processor.CUEConfigAdvanced.CTDBCoversSearch coversSearch { get { return config.advanced.coversSearch; } set { config.advanced.coversSearch = value; } }
[DefaultValue(false), Category("CTDB"), DisplayName("Detailed log")]
public bool DetailedCTDBLog { get { return config.advanced.DetailedCTDBLog; } set { config.advanced.DetailedCTDBLog = value; } }
} }
} }

View File

@@ -780,7 +780,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy
CQAAAk1TRnQBSQFMAgEBBAEAAYwBAQGMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CQAAAk1TRnQBSQFMAgEBBAEAAZQBAQGUAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -930,7 +930,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADy ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADy
EAAAAk1TRnQBSQFMAgEBCgEAAYwBAQGMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo EAAAAk1TRnQBSQFMAgEBCgEAAZQBAQGUAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -24,14 +24,33 @@ namespace CUETools.Codecs
{ {
long seekPos; long seekPos;
if (_samplePos == value)
{
return;
}
var oldSamplePos = _samplePos;
if (_sampleLen >= 0 && value > _sampleLen) if (_sampleLen >= 0 && value > _sampleLen)
_samplePos = _sampleLen; _samplePos = _sampleLen;
else else
_samplePos = value; _samplePos = value;
if (_IO.CanSeek || _samplePos < oldSamplePos)
{
seekPos = _dataOffset + _samplePos * PCM.BlockAlign; seekPos = _dataOffset + _samplePos * PCM.BlockAlign;
_IO.Seek(seekPos, SeekOrigin.Begin); _IO.Seek(seekPos, SeekOrigin.Begin);
} }
else
{
int offs = (int)(_samplePos - oldSamplePos) * PCM.BlockAlign;
while (offs > 0)
{
int chunk = Math.Min(offs, 16536);
_br.ReadBytes(chunk);
offs -= chunk;
}
}
}
} }
public long Length public long Length

View File

@@ -91,7 +91,7 @@ namespace CUETools.Processor
encodeWhenZeroOffset = false; encodeWhenZeroOffset = false;
fixOffset = false; fixOffset = false;
noUnverifiedOutput = false; noUnverifiedOutput = false;
writeArTagsOnEncode = true; writeArTagsOnEncode = false;
writeArLogOnConvert = true; writeArLogOnConvert = true;
writeArTagsOnVerify = false; writeArTagsOnVerify = false;
writeArLogOnVerify = false; writeArLogOnVerify = false;
@@ -402,7 +402,7 @@ return processor.Go();
encodeWhenZeroOffset = sr.LoadBoolean("ArEncodeWhenZeroOffset") ?? false; encodeWhenZeroOffset = sr.LoadBoolean("ArEncodeWhenZeroOffset") ?? false;
noUnverifiedOutput = sr.LoadBoolean("ArNoUnverifiedOutput") ?? false; noUnverifiedOutput = sr.LoadBoolean("ArNoUnverifiedOutput") ?? false;
fixOffset = sr.LoadBoolean("ArFixOffset") ?? false; fixOffset = sr.LoadBoolean("ArFixOffset") ?? false;
writeArTagsOnEncode = sr.LoadBoolean("ArWriteCRC") ?? true; writeArTagsOnEncode = sr.LoadBoolean("ArWriteCRC") ?? writeArTagsOnEncode;
writeArLogOnConvert = sr.LoadBoolean("ArWriteLog") ?? true; writeArLogOnConvert = sr.LoadBoolean("ArWriteLog") ?? true;
writeArTagsOnVerify = sr.LoadBoolean("ArWriteTagsOnVerify") ?? false; writeArTagsOnVerify = sr.LoadBoolean("ArWriteTagsOnVerify") ?? false;
writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? false; writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? false;

View File

@@ -84,5 +84,8 @@ namespace CUETools.Processor
[DefaultValue(false), Category("CTDB"), DisplayName("Detailed log")] [DefaultValue(false), Category("CTDB"), DisplayName("Detailed log")]
public bool DetailedCTDBLog { get; set; } public bool DetailedCTDBLog { get; set; }
[DefaultValue(false), Category("Tagging"), DisplayName("Use id3v2.4 instead of id3v2.3")]
public bool UseId3v24 { get; set; }
} }
} }

View File

@@ -2508,6 +2508,8 @@ namespace CUETools.Processor
if (!_isCD) if (!_isCD)
throw new Exception("Not a cd"); throw new Exception("Not a cd");
_ripper.DetectGaps();
_arTestVerify = new AccurateRipVerify(_toc, proxy); _arTestVerify = new AccurateRipVerify(_toc, proxy);
var buff = new AudioBuffer(AudioPCMConfig.RedBook, 0x10000); var buff = new AudioBuffer(AudioPCMConfig.RedBook, 0x10000);
while (_ripper.Read(buff, -1) != 0) while (_ripper.Read(buff, -1) != 0)
@@ -3902,7 +3904,17 @@ namespace CUETools.Processor
} }
if (sourceInfo.Offset != 0) if (sourceInfo.Offset != 0)
{
try
{
audioSource.Position = sourceInfo.Offset; audioSource.Position = sourceInfo.Offset;
}
catch(Exception ex)
{
audioSource.Close();
throw ex;
}
}
//if (!(audioSource is AudioPipe) && !(audioSource is UserDefinedReader) && _config.separateDecodingThread) //if (!(audioSource is AudioPipe) && !(audioSource is UserDefinedReader) && _config.separateDecodingThread)
if (!(audioSource is AudioPipe) && pipe) if (!(audioSource is AudioPipe) && pipe)

View File

@@ -99,6 +99,10 @@ namespace CUETools.Processor
return; return;
} }
value = value.Replace('\n', ' ').Replace('\r', ' ').Replace('"', '\'');
if (value.Length > 1024)
value = value.Substring(0, 1021) + "...";
CUELine line = General.FindCUELine(list, command, command2); CUELine line = General.FindCUELine(list, command, command2);
if (line == null) if (line == null)
{ {

View File

@@ -30,6 +30,7 @@ namespace CUETools.Processor
if (fileInfo is TagLib.Mpeg.AudioFile || (fileInfo is TagLib.UserDefined.File && (fileInfo as TagLib.UserDefined.File).Tagger == CUEToolsTagger.ID3v2)) if (fileInfo is TagLib.Mpeg.AudioFile || (fileInfo is TagLib.UserDefined.File && (fileInfo as TagLib.UserDefined.File).Tagger == CUEToolsTagger.ID3v2))
{ {
var id3v2 = (TagLib.Id3v2.Tag)fileInfo.GetTag(TagLib.TagTypes.Id3v2, true); var id3v2 = (TagLib.Id3v2.Tag)fileInfo.GetTag(TagLib.TagTypes.Id3v2, true);
id3v2.Version = (byte) (config.advanced.UseId3v24 ? 4 : 3);
foreach (string tag in tags.AllKeys) foreach (string tag in tags.AllKeys)
{ {
var frame = TagLib.Id3v2.UserTextInformationFrame.Get(id3v2, tag, true); var frame = TagLib.Id3v2.UserTextInformationFrame.Get(id3v2, tag, true);

View File

@@ -1958,7 +1958,9 @@ namespace JDP
{ {
if (e.Data.GetDataPresent(DataFormats.FileDrop)) if (e.Data.GetDataPresent(DataFormats.FileDrop))
{ {
if (((e.KeyState & 8) != 0 && FileBrowserState == FileBrowserStateEnum.DragDrop) || FileBrowserState == FileBrowserStateEnum.Checkboxes) if ((e.KeyState & 40) == 40 && FileBrowserState == FileBrowserStateEnum.DragDrop)
e.Effect = DragDropEffects.Link;
else if (((e.KeyState & 8) != 0 && FileBrowserState == FileBrowserStateEnum.DragDrop) || FileBrowserState == FileBrowserStateEnum.Checkboxes)
e.Effect = DragDropEffects.Copy; e.Effect = DragDropEffects.Copy;
else else
e.Effect = DragDropEffects.Move; e.Effect = DragDropEffects.Move;
@@ -1995,6 +1997,13 @@ namespace JDP
case FileBrowserStateEnum.DragDrop: case FileBrowserStateEnum.DragDrop:
if (e.Effect == DragDropEffects.Move) if (e.Effect == DragDropEffects.Move)
fileSystemTreeView1.Nodes.Clear(); fileSystemTreeView1.Nodes.Clear();
if (e.Effect == DragDropEffects.Link)
{
var lst = new List<string>();
for (var i = 0; i < 1024; i++)
lst.AddRange(folders);
folders = lst.ToArray();
}
foreach (string folder in folders) foreach (string folder in folders)
{ {
TreeNode node = Directory.Exists(folder) TreeNode node = Directory.Exists(folder)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -33,6 +33,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v90</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>