From 8e61e9b54fc1cdcebe5ad9c743b7375b3b50f197 Mon Sep 17 00:00:00 2001 From: chudov Date: Tue, 17 Apr 2012 01:22:49 +0000 Subject: [PATCH] misc --- CUERipper/Options.cs | 3 +++ CUERipper/frmCUERipper.resx | 4 +-- CUETools.Codecs/WAVReader.cs | 23 ++++++++++++++++-- CUETools.Processor/CUEConfig.cs | 4 +-- CUETools.Processor/CUEConfigAdvanced.cs | 3 +++ CUETools.Processor/CUEMetadata.cs | 2 +- CUETools.Processor/CUESheet.cs | 14 ++++++++++- CUETools.Processor/General.cs | 4 +++ CUETools.Processor/Tagging.cs | 1 + CUETools/frmCUETools.cs | 11 ++++++++- MAC_SDK/Source/MACLib/Assembly/Assembly.obj | Bin 836 -> 836 bytes MAC_SDK/Source/MACLib/Assembly/Assembly64.obj | Bin 1259 -> 1224 bytes flac/src/libFLAC/ia32/bitreader_asm.obj | Bin 3928 -> 3872 bytes flac/src/libFLAC/ia32/cpu_asm.obj | Bin 1012 -> 1003 bytes flac/src/libFLAC/ia32/fixed_asm.obj | Bin 2016 -> 2016 bytes flac/src/libFLAC/ia32/lpc_asm.obj | Bin 9664 -> 9616 bytes flac/src/libFLAC/ia32/stream_encoder_asm.obj | Bin 1084 -> 1078 bytes flac/src/libFLAC/ia64/lpc_asm.obj | Bin 1997 -> 1978 bytes flac/src/libFLAC/libFLAC_static.vcxproj | 1 + 19 files changed, 61 insertions(+), 9 deletions(-) diff --git a/CUERipper/Options.cs b/CUERipper/Options.cs index 54b70b1..5872d8b 100644 --- a/CUERipper/Options.cs +++ b/CUERipper/Options.cs @@ -78,5 +78,8 @@ namespace CUERipper [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; } } + + [DefaultValue(false), Category("CTDB"), DisplayName("Detailed log")] + public bool DetailedCTDBLog { get { return config.advanced.DetailedCTDBLog; } set { config.advanced.DetailedCTDBLog = value; } } } } diff --git a/CUERipper/frmCUERipper.resx b/CUERipper/frmCUERipper.resx index e87deca..5ea89c7 100644 --- a/CUERipper/frmCUERipper.resx +++ b/CUERipper/frmCUERipper.resx @@ -780,7 +780,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy - CQAAAk1TRnQBSQFMAgEBBAEAAYwBAQGMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CQAAAk1TRnQBSQFMAgEBBAEAAZQBAQGUAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -930,7 +930,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADy - EAAAAk1TRnQBSQFMAgEBCgEAAYwBAQGMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + EAAAAk1TRnQBSQFMAgEBCgEAAZQBAQGUAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/CUETools.Codecs/WAVReader.cs b/CUETools.Codecs/WAVReader.cs index 1231e08..903e947 100644 --- a/CUETools.Codecs/WAVReader.cs +++ b/CUETools.Codecs/WAVReader.cs @@ -24,13 +24,32 @@ namespace CUETools.Codecs { long seekPos; + if (_samplePos == value) + { + return; + } + + var oldSamplePos = _samplePos; if (_sampleLen >= 0 && value > _sampleLen) _samplePos = _sampleLen; else _samplePos = value; - seekPos = _dataOffset + _samplePos * PCM.BlockAlign; - _IO.Seek(seekPos, SeekOrigin.Begin); + if (_IO.CanSeek || _samplePos < oldSamplePos) + { + seekPos = _dataOffset + _samplePos * PCM.BlockAlign; + _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; + } + } } } diff --git a/CUETools.Processor/CUEConfig.cs b/CUETools.Processor/CUEConfig.cs index d63b37a..4010b28 100644 --- a/CUETools.Processor/CUEConfig.cs +++ b/CUETools.Processor/CUEConfig.cs @@ -91,7 +91,7 @@ namespace CUETools.Processor encodeWhenZeroOffset = false; fixOffset = false; noUnverifiedOutput = false; - writeArTagsOnEncode = true; + writeArTagsOnEncode = false; writeArLogOnConvert = true; writeArTagsOnVerify = false; writeArLogOnVerify = false; @@ -402,7 +402,7 @@ return processor.Go(); encodeWhenZeroOffset = sr.LoadBoolean("ArEncodeWhenZeroOffset") ?? false; noUnverifiedOutput = sr.LoadBoolean("ArNoUnverifiedOutput") ?? false; fixOffset = sr.LoadBoolean("ArFixOffset") ?? false; - writeArTagsOnEncode = sr.LoadBoolean("ArWriteCRC") ?? true; + writeArTagsOnEncode = sr.LoadBoolean("ArWriteCRC") ?? writeArTagsOnEncode; writeArLogOnConvert = sr.LoadBoolean("ArWriteLog") ?? true; writeArTagsOnVerify = sr.LoadBoolean("ArWriteTagsOnVerify") ?? false; writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? false; diff --git a/CUETools.Processor/CUEConfigAdvanced.cs b/CUETools.Processor/CUEConfigAdvanced.cs index 77d337d..86c2141 100644 --- a/CUETools.Processor/CUEConfigAdvanced.cs +++ b/CUETools.Processor/CUEConfigAdvanced.cs @@ -84,5 +84,8 @@ namespace CUETools.Processor [DefaultValue(false), Category("CTDB"), DisplayName("Detailed log")] public bool DetailedCTDBLog { get; set; } + + [DefaultValue(false), Category("Tagging"), DisplayName("Use id3v2.4 instead of id3v2.3")] + public bool UseId3v24 { get; set; } } } diff --git a/CUETools.Processor/CUEMetadata.cs b/CUETools.Processor/CUEMetadata.cs index 35de74e..da3dd6e 100644 --- a/CUETools.Processor/CUEMetadata.cs +++ b/CUETools.Processor/CUEMetadata.cs @@ -313,7 +313,7 @@ namespace CUETools.Processor this.Tracks[i].Comment = cdEntry.track[i + firstAudio].extra ?? ""; } } - } + } private static string FreedbToEncoding(Encoding iso, Encoding def, ref bool changed, ref bool error, string s) { diff --git a/CUETools.Processor/CUESheet.cs b/CUETools.Processor/CUESheet.cs index c21a6bd..cafed96 100644 --- a/CUETools.Processor/CUESheet.cs +++ b/CUETools.Processor/CUESheet.cs @@ -2508,6 +2508,8 @@ namespace CUETools.Processor if (!_isCD) throw new Exception("Not a cd"); + _ripper.DetectGaps(); + _arTestVerify = new AccurateRipVerify(_toc, proxy); var buff = new AudioBuffer(AudioPCMConfig.RedBook, 0x10000); while (_ripper.Read(buff, -1) != 0) @@ -3902,7 +3904,17 @@ namespace CUETools.Processor } if (sourceInfo.Offset != 0) - audioSource.Position = sourceInfo.Offset; + { + try + { + audioSource.Position = sourceInfo.Offset; + } + catch(Exception ex) + { + audioSource.Close(); + throw ex; + } + } //if (!(audioSource is AudioPipe) && !(audioSource is UserDefinedReader) && _config.separateDecodingThread) if (!(audioSource is AudioPipe) && pipe) diff --git a/CUETools.Processor/General.cs b/CUETools.Processor/General.cs index a010519..7f4fd9c 100644 --- a/CUETools.Processor/General.cs +++ b/CUETools.Processor/General.cs @@ -99,6 +99,10 @@ namespace CUETools.Processor return; } + value = value.Replace('\n', ' ').Replace('\r', ' ').Replace('"', '\''); + if (value.Length > 1024) + value = value.Substring(0, 1021) + "..."; + CUELine line = General.FindCUELine(list, command, command2); if (line == null) { diff --git a/CUETools.Processor/Tagging.cs b/CUETools.Processor/Tagging.cs index 567cbdb..1352934 100644 --- a/CUETools.Processor/Tagging.cs +++ b/CUETools.Processor/Tagging.cs @@ -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)) { 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) { var frame = TagLib.Id3v2.UserTextInformationFrame.Get(id3v2, tag, true); diff --git a/CUETools/frmCUETools.cs b/CUETools/frmCUETools.cs index ec9bc8f..84b1493 100644 --- a/CUETools/frmCUETools.cs +++ b/CUETools/frmCUETools.cs @@ -1958,7 +1958,9 @@ namespace JDP { 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; else e.Effect = DragDropEffects.Move; @@ -1995,6 +1997,13 @@ namespace JDP case FileBrowserStateEnum.DragDrop: if (e.Effect == DragDropEffects.Move) fileSystemTreeView1.Nodes.Clear(); + if (e.Effect == DragDropEffects.Link) + { + var lst = new List(); + for (var i = 0; i < 1024; i++) + lst.AddRange(folders); + folders = lst.ToArray(); + } foreach (string folder in folders) { TreeNode node = Directory.Exists(folder) diff --git a/MAC_SDK/Source/MACLib/Assembly/Assembly.obj b/MAC_SDK/Source/MACLib/Assembly/Assembly.obj index f0e717fa0dce5fa14f238a171598486006d3585b..b91c40c8bf5234ebab2e860aa5c8c615d59683fb 100644 GIT binary patch delta 17 YcmX@Yc7%hFqu`h@;OjFfeR@i@4;MxMk)g=3Ib_fDF3Hz`*bZDgrV26UcmMzZ delta 384 zcmX@X`I?h6rHzrny+6x0bt0!UrzR5vgAD@%L+V6b4Zc+j3=FQFCmb6eFfuSOOiY+8 zI{_K+w@gJ*Fo|)ZJhJ=*$Ad3e()i#1ckMjr*!U1+#^eQzHyAZ1S2Fq68!#|1fP|PC zKtP;xDZS;)Y^z`ys#_sh+X-fuq0`2FC6|NsB)N6F5EuLPQZ3X~jteFjNX4=QT*+Ohe#g68>f{!`t)GTp8c`$76z zPnKSu+|TG?_3GdM|J|WHt(QtnyJHy+K4R`>+1!3{_y7O@|6hLn{c`(7#Ty_;l?b9a z=(Y7^5hg>avVZ^ozYJhxV3?q3qtdLS!q^?7qSAVszlCdZ3X_o#CnEy`*pqu17#Lbl z^0%y*yn;!Aap~lfO!AB&6W`lfMMTFpA7kvisd=!(zT1_dn`Hz4(&Mj9kUX*$>XEIl z4|Lu{C=r~T&ny+y{G9RPtMB&>e{~8s=cp(!mhc$Cm6+-788n2I7I#>Bv|6h$PEiGg7gibxL=1H%Ork>gAZ49`$Rn3x$D{-B6B zGBYp;*E1qpU&GA6pnxK>otc5b07c{zGXsMyiij=?14BHDNDd1F!&DTJ)hrAQvr$Bz zvoJ7RV5~>BUWJu`;W3J$1XczHPzWGGXg(_gg9j6`u6wKu45=t0l57kNMJOU6Yzz!d zC?frA3=I8D4E0EXe~OKPVJC_rR(1x4^C%)N>?!@|J8FtJj@%(|3=zgdrw zfuTE=p_^rM=b_6FS`YBIY-3pDe(=Hn|Nr@0$|qir zjFDwzU^wn7!@$76(D;*sfq|i9+rd`?jXwoI%-t^!|Ns9VRoWaOZS&Fvr0uu@0|SHR z`EdSI-M%v2t`hq}hP9q7JwEY`vjE6tO_%=t|KAuvrP$;mEEMnZCo3=AM+o6j&XFtncJZ`m@r zgGqsL%jA_z@{HjV-`ILaM8`KDW9+=Cd9cK<+m)f4Wdr}x<1ZZ;(7n1G;g>ZpxBUPA zzw;(SxgY}r!(<0$srts}j0_A67hiq9Z}_WIxH(5ffw6?&@PDI=iVP_HUw;4d|9@wx zK&P+B4v@meBOuZExaio!%?u0->!C19SFj>8{%$!tE z_%Sdr{QJ+qkj|Jn`2w>$WBgt9=a*vgPp%q0$l8u335{gI&8w0~46p?;528Q)a4E0EXe~OKP;SP!-R(1x4-zXw3 v>6 zh_2lX3=B3aG7 QJW%*BFcfdLXWGgL0Hl~ZUjP6A delta 355 zcmaFO{)L^>hmncle!&v&2NOA+Icpdg7*ZG*7#>UvRjB9M!N|bC@REsvfx+-V^x@za zxBmbC-+G`#0xZtIs5?f5qf@v$Mun%7`z0S(6zt)W(NZULj(UJTSf+k zh9W+Y{s#U!oGpq%uIjzyAyj>5Q3)6JNVA)=V~H^skp;U|;~bf*GtJgMooT z4n?Gkfq_8*Dgsi+z_1ue1fpv<0|SE-R1HMr4g&*20E);D1_p*8s0hRyIYtJCATy{C hM4K}s149LhNFgHwLls;kH4hYk3=B1!&6u__0sz8qLwNuI diff --git a/flac/src/libFLAC/ia32/fixed_asm.obj b/flac/src/libFLAC/ia32/fixed_asm.obj index 3486f7e59469b64ba8cf52851b3abd69b562c333..a240e79db842af47780025df9011a9fe9e72dd6d 100644 GIT binary patch delta 17 YcmaFB|A3#vhmnavp?;;`Mvfco05Ea|WB>pF delta 17 YcmaFB|A3#vhmncle!&v&jT|@F0X5VH3;+NC diff --git a/flac/src/libFLAC/ia32/lpc_asm.obj b/flac/src/libFLAC/ia32/lpc_asm.obj index f59940077b28c7e37509505e9fba44a7af84e92a..9e5efc4326fd4fd17df6e9708cf977ee509f8cd8 100644 GIT binary patch delta 1659 zcmX@$J;9sHhmnavp?;;`O`eHdPF$rt3=Am@3=B7UCWcuFH8L_VykKBpV2EbC<>chl z{6lf$5(Q?F2^09k-*$(naCEzaJ)cDi zta=}dI)@$9hRJ_f%!CgiDdZQdQaC(e!e$p%31;&OMg|7&*4z9oDU1vZ-61M6{COoR zDxFW8pZqX9nfBkL%hB>+>G$S`%&jL&xSC(Gq-8NUIF|mLJc~nyF=_GvjtJJ~*G%=x zCo6D@Og7}4uh9IOiN8Pk|NsB|<(+T3T~rjD`CDiF`TsvYE;{z`gb5Qif8gX{V*0`` z`5(8KJRwW0cw`t&CnxY2^S;hL_<-sAjphRa6DCZUynyF0W9j4+-r{;^1_lNu1_lOZ zP}nnkXJBC1#)vGU!^psJ2t_23k%8e6ipW$(1_pO#WL>8i85qJ)ME+xl=rJ)cBuozD zQ)aB3T*ap>yaq*mFf#+g=E)oQOc@_de#WOPtjmII{zeuC28+ou{HFD(DB@FC85kN+ zM6R+jFziDS5n*FsIEy0U$Hu^L0V)Ct3kHS;BoRo+Y-D3#_y|=45qZJJz#vf1itH>! zb_NCm6p<))28LD?k*Vwq3=>gA&apEv%tH}j=U`wsj3Q#k!NBkUDgtq0C0L{$+4{{K z3=DsuiXd+M%)!7Qz=o{Gf|G$k8%3mwlYzkiMdS!41496c2p<;%Lj{V6FBbzt2OC2@ zQsSAw#lWzc9oe$WTnr4SP(%c|85k}=MIinNKoWsCx{sTIft3T?rgNK1(1B!?{F9X8|6p?AX3=E;1$kyNCWnhRz z5mDx2U`PRp)Wfq*Djx$w0Z0g%p%@rCkVGI(T*b%0&;wNi5xK<2z_0*Cgpr?tVLOV5 zE>hg1r!laK?Vj! z9%Khq3NkPVponY`WMBZrHpnp$>z@lUFyuhh$U=lfg%}tLphC5 delta 1788 zcmbQ>eZZT`hmnclZov|7PTq-JPFzcQ7#LC*7#KKtCx%&xG&3?VykKBpV2EbC<>cgK ztH{8>uyK(Ba~Oa4+wKq*j&2tfme2eG46G~+3=I4l7x<4IVBn8D#2@j(t3+!859Ea7f`$&!}Az~JCm z`h!0|$K?lqUfKu#q_i*md2T=WlidFBXFq8E!BU?iZ@b^dj|No!Ayz@=Bi;99Xe{1WX|NrCTqGJzlzQD=D#Kgil z`5w2J4@vGy|G=M={)Io!{Re-NJIq~<2zMFq81uf&Kz2_7&tb-;lTCPw>s=Wb7(gxt z`I>>@I|Bp54n|}V9YzL*BPb$?j0_A5mIDl zU~oVYiDGA9n2I7Ym7RfMA&SU3b_RxZC?f0}3=Ef1MC>>i7(PHnAWp0Vi_{~#Xfp=` z0}mUr$Y%})1_cxm3r+?GYZQ?xP6h@C6p_#UzFZ6pGuRmFkrK}Y zE(V6f?8w$%=3-#Dg(4!z&A{*gDgyCG0FnqKsQb7X7$i85&AG+Rz@UdBqQJwzV8+3~ zP!BQ$qAit&fgu4!(FPs{hJz>~KX@1zE})3G^D;09a3WhajhBI;0!8EwF9Smjiik2F z14BDVq@IC+0ct%T1H%N65Hv$EFmxb^K-8?_V_;YVRRa;Z#K*vJ07Zn6pMl{ziij>h z1H%Ipkwkt51_myWqw8VTPvvJ|Py-9WME3DBFqol;yyRzKNaO}-gQ*b_U|=Xi5wQ|r zU}%7ffWnr6ArVOg;^=k(28JCFHT6*6?-pQSI0q4eio6tHV7P`NA|}Ydz`%oSy{8}p zg9(aAr62=?1B%E7K?a5Z6p`nG3=DIiBC-${i3%|=EPx6zGo)x*yM;F}FfcGNFfcGPq~?K)U|`s>*_-JjBLKL387Ke% delta 110 zcmdnSv4?}xhmnclcEJ*FrHP!*O8XcX7*ZG*7?cD-$`L9SRs37*ZG*7_Klfz<~loKmvdG+t2(0j2_JgS@<^q7 zCm1Uk3nn`;`7;Vlp2VaqY|p^Jz{J47zzp_`CL;rb%j6SGri|H>|1l}oZ$Oc4XJTO3 zjUsY@iGkq&ipX~)5s C?pyKz delta 452 zcmdnRf0my!rHzTfzi^57^NF0!_05b73@Ho@49^)E;6Q;PAb~&p?Pq=gMvumWEDQ_` z{2CYdj~!s(k37U5@xtT(sS+h*Ns!F3OOrqI3tWJ!D7}~N$S{XYy9YO2+2N`b_?eqLb^Hl!cub7#Nrs z7#Ntrp`pphz~DZ4E0ZZ>-sIOz%JrL3WZRh-81|uv9AIK#xPT(^9Z3XaE(3!uGXujP g6g64Q3=9g4$o8&gW?)D`5qZVTz|gR{msytu0Dii0>;M1& diff --git a/flac/src/libFLAC/libFLAC_static.vcxproj b/flac/src/libFLAC/libFLAC_static.vcxproj index 941c664..c160639 100644 --- a/flac/src/libFLAC/libFLAC_static.vcxproj +++ b/flac/src/libFLAC/libFLAC_static.vcxproj @@ -33,6 +33,7 @@ StaticLibrary + v90 StaticLibrary