From 39f4792319f91b6ed88d5e2d4ce9c2efba16448a Mon Sep 17 00:00:00 2001 From: Grigory Chudov Date: Mon, 26 Feb 2018 21:31:07 -0500 Subject: [PATCH] eac3toui is now called BluTools and has improved looks --- CUETools.Codecs.BDLPCM/MPLSReader.cs | 16 +++ CUETools.eac3ui/App.config | 6 +- CUETools.eac3ui/App.xaml | 4 +- CUETools.eac3ui/App.xaml.cs | 2 +- ...CUETools.eac3ui.csproj => BLUTools.csproj} | 57 +++++++++- CUETools.eac3ui/Icons/cue2.ico | Bin 0 -> 23558 bytes CUETools.eac3ui/Icons/discogs.png | Bin 0 -> 424 bytes CUETools.eac3ui/Icons/freedb16.png | Bin 0 -> 394 bytes CUETools.eac3ui/Icons/headphones-box.png | Bin 0 -> 765 bytes .../Icons/ic_surround_sound_black_48dp_1x.png | Bin 0 -> 570 bytes .../Icons/icons8-audio-wave-32.png | Bin 0 -> 250 bytes CUETools.eac3ui/Icons/icons8-cancel-48.png | Bin 0 -> 731 bytes CUETools.eac3ui/Icons/icons8-copy-48.png | Bin 0 -> 357 bytes .../Icons/icons8-dolby-digital-32.png | Bin 0 -> 371 bytes CUETools.eac3ui/Icons/icons8-dts-48.png | Bin 0 -> 698 bytes CUETools.eac3ui/Icons/icons8-export-48.png | Bin 0 -> 436 bytes CUETools.eac3ui/Icons/icons8-import-48.png | Bin 0 -> 439 bytes .../Icons/icons8-musical-notes-48.png | Bin 0 -> 539 bytes CUETools.eac3ui/Icons/icons8-open-48.png | Bin 0 -> 435 bytes CUETools.eac3ui/Icons/icons8-playlist-48.png | Bin 0 -> 451 bytes CUETools.eac3ui/Icons/icons8-tags-48.png | Bin 0 -> 711 bytes CUETools.eac3ui/Icons/musicbrainz.ico | Bin 0 -> 1406 bytes CUETools.eac3ui/MainWindow.xaml | 101 +++++++++++++----- CUETools.eac3ui/MainWindow.xaml.cs | 91 +++++++++++++--- CUETools.eac3ui/Properties/AssemblyInfo.cs | 4 +- .../Properties/Resources.Designer.cs | 46 ++++---- CUETools.eac3ui/Properties/Resources.resx | 14 ++- .../Properties/Settings.Designer.cs | 2 +- CUETools.eac3ui/Properties/Settings.settings | 2 +- CUETools/CUETools.sln | 44 ++++---- 30 files changed, 281 insertions(+), 108 deletions(-) rename CUETools.eac3ui/{CUETools.eac3ui.csproj => BLUTools.csproj} (77%) create mode 100644 CUETools.eac3ui/Icons/cue2.ico create mode 100644 CUETools.eac3ui/Icons/discogs.png create mode 100644 CUETools.eac3ui/Icons/freedb16.png create mode 100644 CUETools.eac3ui/Icons/headphones-box.png create mode 100644 CUETools.eac3ui/Icons/ic_surround_sound_black_48dp_1x.png create mode 100644 CUETools.eac3ui/Icons/icons8-audio-wave-32.png create mode 100644 CUETools.eac3ui/Icons/icons8-cancel-48.png create mode 100644 CUETools.eac3ui/Icons/icons8-copy-48.png create mode 100644 CUETools.eac3ui/Icons/icons8-dolby-digital-32.png create mode 100644 CUETools.eac3ui/Icons/icons8-dts-48.png create mode 100644 CUETools.eac3ui/Icons/icons8-export-48.png create mode 100644 CUETools.eac3ui/Icons/icons8-import-48.png create mode 100644 CUETools.eac3ui/Icons/icons8-musical-notes-48.png create mode 100644 CUETools.eac3ui/Icons/icons8-open-48.png create mode 100644 CUETools.eac3ui/Icons/icons8-playlist-48.png create mode 100644 CUETools.eac3ui/Icons/icons8-tags-48.png create mode 100644 CUETools.eac3ui/Icons/musicbrainz.ico diff --git a/CUETools.Codecs.BDLPCM/MPLSReader.cs b/CUETools.Codecs.BDLPCM/MPLSReader.cs index 541adde..3df666b 100644 --- a/CUETools.Codecs.BDLPCM/MPLSReader.cs +++ b/CUETools.Codecs.BDLPCM/MPLSReader.cs @@ -591,6 +591,22 @@ namespace CUETools.Codecs.BDLPCM } } + public byte CodingType + { + get + { + return coding_type; + } + } + + public byte FormatType + { + get + { + return format; + } + } + public string LanguageString { get diff --git a/CUETools.eac3ui/App.config b/CUETools.eac3ui/App.config index e0bccd9..a5d6c59 100644 --- a/CUETools.eac3ui/App.config +++ b/CUETools.eac3ui/App.config @@ -2,20 +2,20 @@ -
+
- + - + \ No newline at end of file diff --git a/CUETools.eac3ui/App.xaml b/CUETools.eac3ui/App.xaml index 4f11c27..839d66f 100644 --- a/CUETools.eac3ui/App.xaml +++ b/CUETools.eac3ui/App.xaml @@ -1,7 +1,7 @@ - diff --git a/CUETools.eac3ui/App.xaml.cs b/CUETools.eac3ui/App.xaml.cs index dbb0c4c..ab98cf4 100644 --- a/CUETools.eac3ui/App.xaml.cs +++ b/CUETools.eac3ui/App.xaml.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Threading.Tasks; using System.Windows; -namespace CUETools.eac3ui +namespace BluTools { /// /// Interaction logic for App.xaml diff --git a/CUETools.eac3ui/CUETools.eac3ui.csproj b/CUETools.eac3ui/BLUTools.csproj similarity index 77% rename from CUETools.eac3ui/CUETools.eac3ui.csproj rename to CUETools.eac3ui/BLUTools.csproj index 95d581e..09fd988 100644 --- a/CUETools.eac3ui/CUETools.eac3ui.csproj +++ b/CUETools.eac3ui/BLUTools.csproj @@ -6,8 +6,8 @@ AnyCPU {678875A6-6B3A-4AAC-83B6-D9A72D9016CF} WinExe - CUETools.eac3ui - CUETools.eac3ui + BluTools + BluTools v4.6.1 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} @@ -36,6 +36,7 @@ + @@ -85,6 +86,7 @@ ResXFileCodeGenerator Resources.Designer.cs + Designer SettingsSingleFileGenerator @@ -120,5 +122,56 @@ CUETools.Processor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CUETools.eac3ui/Icons/cue2.ico b/CUETools.eac3ui/Icons/cue2.ico new file mode 100644 index 0000000000000000000000000000000000000000..5212447b33693b6dff89d912ee0dbb3cc3260a61 GIT binary patch literal 23558 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 literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/headphones-box.png b/CUETools.eac3ui/Icons/headphones-box.png new file mode 100644 index 0000000000000000000000000000000000000000..412a463b5b82515bf12e29461df34e68bbd48504 GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F!lvNA9* zFct^7J29*~C-ahlfk7eJBgmJ5p-PQ`p`nF=;THn~L&FOOhEf9thF1v;3|2E37{m+a z>>^2Fq16jM|KJCBhb{|*MR$u0l42*j-8kL|d|(!&4B zMkhs&=>YSoU5C>noPKX1lkE<%Xp2KQlLdwySc?8>fpNFkZa-Y^T$Y z1$`?0O%gY+F!C*Zp5@{{d&SEwI+dm&j3s3gvR{5)x6I#hOYbMYB^%~V=->8z#rL{^ z@=4)Sd6rGs^ZSc1L&c^GCbPPK#>5=``g{KJK=y=awRg;`vX$B$|Nay#VAy6l zm0?*ti^`{Kj1j(q31^o?-kAA>F+zRM_L6mNt_jW+%j?88Eq!Ut{WZ5;I>?`WL9X@J z33(+_p&$RpT-dv2#;Wo^<*TDsF{J-+o>BTiu3(nRp2?FZ2mkuT+QEDL&a~fWwHX)~ zR7+eVN>UO_QmvAUQWHy38H@}JEp!cxbdAhI3=FM|EUXO7wG9lc3=Ga5bP0l+XkKFnA)> literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/ic_surround_sound_black_48dp_1x.png b/CUETools.eac3ui/Icons/ic_surround_sound_black_48dp_1x.png new file mode 100644 index 0000000000000000000000000000000000000000..764880467a19c241cc79a00d8c1ba1b06a2d9822 GIT binary patch literal 570 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4i*LmhQHi~JPZs>jGiuzAr*{or}<|K2Z|i6 zU#u89eQlGr=u*{}eg~I|>~FE&8ey{Vty7Ffk~r)BE~h}nT#cr#Iu_2m9g!Wg7wxz( z!`}Dcwq&t(?$1V_?%jBqcP@7B;ivy5nH!h4Ikj@Bh9u6_`>43uf3nxFAAE&=S3RBA z2tSXI?pZlodqMl^jnndHvgPgWQ{{7OUL$`Io#nS#-GL&`hLBpz&=)Xg*H%?5`cLDRNx8LMS3+ zg}vf#{m5RDc}^hP%kR=x=6N^Y-w)q(V1G#X@qK^WP4y2Pv)#DaeOBsZ$E52nWx8^j zJ72TMOsvCCjJ>~{jnXX@XKw~+6!{VKKO_|5p4 z{+-NOq7A3turZbROqP;wvp5~De){L;r|thYFRi~KA9pr}u~+%;kE`p7mc|yJc(`q~ fPb-(`FYdF8RwNjmJI}|!z`)??>gTe~DWM4fd}Iqc literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-audio-wave-32.png b/CUETools.eac3ui/Icons/icons8-audio-wave-32.png new file mode 100644 index 0000000000000000000000000000000000000000..15937122ba61d3ca774072902b1928dab52660a4 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}EX7WqAsieW95oy%9SjT% zoCO|{#S9EWB_ParFHOFJfq_A?#5JNMI6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#W zDFz0Ha!(h>kcigg1c{do6Ir$z@$m3W3;0&Z#@42;a?5pPU0VPfTigEt8Lw4oF~4S> zFz8s7aD}n?7GsN$?9xvxvJT<~uNYF;FDzN0c$ATu$xYVaRYM^A28E5`#tXJh@X+Nx xamoIHqQNVMpaU6;ORg}QFgmZwHnU-5I4Yzhe}8&k5d#AQgQu&X%Q~loCIGRrPKy8l literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-cancel-48.png b/CUETools.eac3ui/Icons/icons8-cancel-48.png new file mode 100644 index 0000000000000000000000000000000000000000..0c04dea146683ef788d4349a792e64b07c33768a GIT binary patch literal 731 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Fp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}C5uPrNAsLNtXYS7yaTGaj|8dcC#YrqqT`U{7nM!ypjQus^kA7f~`{@-o;%Coa z(s9wjDwkP|lS3@i&-Ea;n9@h~9b%iAUvIF#w`cC|vy*-w(w=tr`?KG*pVQLP+1Ml= zBqeJE%<(>8QXoEqF^|!FPQD$(`v&I+ydT7VNUx|hRck!%z}{iAR`|Eyx4EVUTsDm7 zT2em0;fY{%`{i24_(P~+NA~>2pK(I@4CkvI?rcpjjCL$!z44B@GCR6(wxa>ho)^lM z*}DsGFa5ZM>C?5a)05)YOsHvzRDYL!vY&amD0fFg-kGD)moDAxK0AFz|NL^zyDW9w zOzRVu?Kyp*kG(Q}|NH|}`WxJv7F0VJKfLTR?V`#4=}h}YHGi@_JMKN}s7ja1jwc6w zroL|aW;J8}F{d+JO_?rJ6!UZ4loD<#F9>nr_$2tjLFquc!85@v%pt*9k=t|y3)XPV zxh|||l>gR4X~CICQ?CiHQ}BJZwstDVkI+SpHiD@q-DiA#VBfK9X#>Yr_VcddwQXev z&F0+uw70El+0tyWw&W7q#*(L@{Eu{9A8a`j&m70h?r^$t`P)w4&W84Rj+>3*w@k>a zO7c{C;Fs`8(e=(W4hbedmV=*8shwW#W4YH~dA3=v+lT`xoB`^V&XT_lxaQE!Uqyq3rpABz`fFCH mPTl|B;;OS&2N+6^+i#fqM<(MF`wIpJ1_n=8KbLh*2~7aUY(hN% literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-copy-48.png b/CUETools.eac3ui/Icons/icons8-copy-48.png new file mode 100644 index 0000000000000000000000000000000000000000..4fdb1e9113a70dc31a2fb315fcd3c8301e420e8e GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Fp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa|Xk33x*LoyoQ&h+JLa^P{Be{AVJhgeD5J@)1wTv!$zvDGuxNpo7ZRAArq4GPSc z?bI?SGdXpLxIbVEaY(P(ScK0`3w;V7PN_y-V&C)Y$bwq&_|`)c z9ZZBe+?XzUC`fU-C^u%P2%LSxYSy{c)9=x*Gyhmr1bSH(d4?{Okx%$t{{G|b6=!V& zikQwfm8%OrW-|HFD=PiqjV8nXkGr1E`OI1FMYR^DWL-gYp>|7#KWV{an^L HB{Ts5;*W>6 literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-dolby-digital-32.png b/CUETools.eac3ui/Icons/icons8-dolby-digital-32.png new file mode 100644 index 0000000000000000000000000000000000000000..0586ec3a43c278a38fa2470bf8c33522ab552110 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}EX7WqAsieW95oy%9SjT% zoCO|{#S9F**Fl)kNn>^e0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa|XA3R+gLn2z=UNiJ#HWX-mnBT0VlA*~gr29z1WXb_XjTf4e^jKvYjlvglhA(hh z^h~NlhqW_hlFsWj)9)VJZ!$@@_rA@|ta- zD(-vzbk@UJVY*BA_b)sk(XCJ}%6&)u)pd29${R@uQXAKqGFMmdf4YC<>*cn(%W8iP z>C8C)N5;`;qcy{G$A6L0zjjMl@O1V>{*J%=%&dL|?bo{=CE7gZayR_-(|*Fql&a^_Ws{@S Voa}dmGcYhPc)I$ztaD0e0sxbLjFp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}C=AJH&AsLNtulslSCQ2Ot*#Fx8Y{Ib=iF&Uakw3Oi>_{^XOwKed6N^Y#ETTPY z?VAj-NsDxJQd(~YsBj5(v2werDYqq_*-&xb^!kkI^OnW$Ltp*9_VP~j{^ynRpIg4K zocCRz(?w~bhl4eEE zUmUW1v##~9jsF6vs15wp8#YYqdp-Ann~a0{va89BRjL=-if?GeFFxVBS16(>xAfCr z_N{&k7(Y*{mf9@zR=_U&f{Enay2BNdZ}gmInf7>i+}wkB_Nlsg8(YNB|8ZxIP$ZE1=1>7Eay(!_YV z52dU*!g|O5Vu-hVl~LC1LhlzPToKcfJ|sLUe41pxF73*?qp@o=9yoVZ6q*J;P2jLD zjM?TKr(MPM!dI}2^Y5?t56tcxoii3@uF-tJvM)?v>jSoJPdJ{Wv-vKaT%dn1^+Vy# zAB&mgL+z(@#jarF58lG;R9w;f{m?wSZsUqciEFzL_53=^RPs1dviYA3r$Ae>`MlrN zi}<*iUt0M+Dk$2&_>;{G;kLWW9w|Nb>nh$5^yAPkrJi?*FJ)h6E|T|F7E3g<;|!Hw v^I$pa=iaai7YpXSzLEAq(3tE@c`lxu@GfeS{g)XG3=9mOu6{1-oD!M<_p~qP literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-export-48.png b/CUETools.eac3ui/Icons/icons8-export-48.png new file mode 100644 index 0000000000000000000000000000000000000000..fe86168c69d3fb32fef271be671479386e4caf09 GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Fp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}?hMq2tAsLNtXWHf+au9Hn*I*TT!ln|+WD=vP>fSYFni{K$`2#Ky6PZIsN*qf| zwX{z}spxNhyz!__CRg<9{O6a~d^^tF_qe5k?V1CdNT)LMzDDu2Pv$qoD1OX(avGo+D9E~SAaGWW{)crdF1k4d{oVKEvDpK*HHFOAb}(kk@%-}HwXS3zQ?AJe zJ{}dOtAD*NiyV-f;mxv!SLA^Hh6x-I(i+K}JgQ6^-EJ^cEg}wr?r}0|SGntDnm{r-UW|6xFDN literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-import-48.png b/CUETools.eac3ui/Icons/icons8-import-48.png new file mode 100644 index 0000000000000000000000000000000000000000..6de272020bbdc8ebc41eec2f0b2fde084aaf01a6 GIT binary patch literal 439 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Fp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}?CY~;iAsLNtXKu_p8I6! z{eK&>TD9XF1s?cvd{ASlm^_Ppo5SZ9w~A~xPh|55P0-@4VpU7t%dGvzTupmHwj#s7 o{z%<(r>{xKZ)Q7a`;q-~wcd(rUJpMqFfcH9y85}Sb4q9e02b${4FCWD literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-musical-notes-48.png b/CUETools.eac3ui/Icons/icons8-musical-notes-48.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c1519a1bde61a6da773110a8378b3e2866d7b0 GIT binary patch literal 539 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Fp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}?Gdx`!LoyoQ&al^Kag;b#-|nU<)cUAvvO-1)*VUCZOucSvFJ8E7F0j|%$yde7 zG3Kd@s|TOpS-~(v?Z|TFw6y1QEe-dlY?^)c+;6+{&u-qdpWyK)Uuz?4Ng(5@10im# zVr}4In}P*1|6dk3y!4{lhgCCwtMk0cc*bHFz+ToE{6K8#W#iLs*?o_^B|l8P8u;L1 z;GfB>E9OV$T6CRnP!|8VZ*x`9p##&_R&=h}XK^ii@uT#fkg(f*rs26qnq$Jg%f2$r zIocc(Ha(#Jsn4sDhEnm53bU{BK6pFbs(r=M+mbKWoLeZ@q5FVw2YX**Zo literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-open-48.png b/CUETools.eac3ui/Icons/icons8-open-48.png new file mode 100644 index 0000000000000000000000000000000000000000..460e81e83ec3bc5117f5f9d9d8f4ac4316ce500d GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Fp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}?2A(dCAsLNtukZId93av5asHwmuaxx4g7$FcpE`Ne`hxYuuE~?Tt+<=IH}CM+ znozjrh@+OOZ}#L%Ch@lXHK)sq9@G~7n=rvcMX2+LhVGV&j%KN{`YM@>x+T8ydkTee zuO2dYTa<3r*y?>os_xpW2Taw0tZY}0=A|_9Jg;w!l~leUVzdS zrh6+_vD&_gyEykVg|fWb*ZHgBpysvN5*vKxK0WNVqqVK_=(z&rTaq_Um@neAc_w|4 zCGS&j22=S@w0ez){a;Ba7QMes2YVr#vY)jz!lgoZ_<4z_?i)DC;z^!#11{m1<2`Z7~_?H@2quiIz;itpZG jQNGn}{vaRze<*Ef>)I`U-6NZUfq}u()z4*}Q$iB}A9k)@ literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-playlist-48.png b/CUETools.eac3ui/Icons/icons8-playlist-48.png new file mode 100644 index 0000000000000000000000000000000000000000..2053a237212d4c20f4b001f9eb130103a9218ef5 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Fp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}?4xTQKAsLNtr|EjL1d6oDyB<-}nemN(hS?4F?!wu*t8<%=KJt&)FvGOF^nZg{ zFI)M|tT-0?3o0CaiF!Sc8j8=`KAt)C^MNUe_l)0Hpa08ryimq_+8SPl$|v9N+vsac z873}$6#J&bBk<+FL*)mUBZ9ZG-P&M$^;vw`fmtggH++!&z;Nw{XHGBshGYIo*)|QP zatCIuV%T}9m^Y_xz>% literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/icons8-tags-48.png b/CUETools.eac3ui/Icons/icons8-tags-48.png new file mode 100644 index 0000000000000000000000000000000000000000..e4580a1bcbe7942bfbdc5056b7a552dc6a75e3ca GIT binary patch literal 711 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?Fp_??PHLhI0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}CE}kxqAsLNtXYTbA36yA?ADg>_VFv@Z-oaVc3m6SIZfxPc&?0{~m9^JC(16it z%KU_+hNgM5&IJTT1VlGsFWF@*ysyXljCuOGnKP5_J@G9oPCHk5@9de~>FEo@ z)<)S~VGwIjX!i~lj__?*RnwrhVG+xkm-_v;hwqLs5L21Q^TZ{A$C&zBNyx-_y?3T;%;f!*cV$qxjr4Q7wo!~#fQowG} z(fhZM(SCJ91n)z~>wXja8{;;H@qdWx`G1bvesM#D@Q3rp2iRxK>dlVn`G1P}ejvjd z?h0S)(%o+!Wp#d>zwJZr(MQru|2kP~80IkjO}cCMV6nviL}q>aMwR`H>spT6Z)@qV zX}UQ{htYlG#`lpA=WB_@Jb5Htrl(#rYkz9v^%%CI{K-pmb81($PA{*Ubib(ZX2z|P zt^Ot-l)E~wZCvm5p7C3-+D(>qZO6B9x9~TtpT#g=e`bRBf$dyv{0;iE7^*qd^SOUi zs~%vVQEeQ`Jfn8IO`-b%|7k4t3mf}Q)SP6J%t9ArtIN+j#U#&fD78;shx6Y)-aR~p zx;1mJ`Ptn$#Vmh4_3e|xm-QYh?wnimqcOYU#XUbeo5##{mvYZcW{m$(UVF%WSLe^d zw^I9JS!z_SD{{5=n>5W9ICopEJ8y!%%kqjR|5K$8d57N0nvtWpCv553whOH@bh!f- zE1r40U*$*p(}gcfxj&0o^6htU{r}*_veyUnK5$mFbB3-C)8)5fzs9!gnV|FJTMP^g N44$rjF6*2Ung9z%D}Mk0 literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/Icons/musicbrainz.ico b/CUETools.eac3ui/Icons/musicbrainz.ico new file mode 100644 index 0000000000000000000000000000000000000000..7942139f7dc7f5449321d2dc61ddf1fce1dc7254 GIT binary patch literal 1406 zcmZQzU}Ruq5D;KsU|`^2$Y5n)5My9q&|qL-00}8DfaEzqk{||z29bTW zKR$hCSe2H`@a6RzhQ*PI3~%l|VAxbr#c;T(gF#M5i{bFmgA6PT3=Dhr?qztmYahdb zz9|gnmakzrzj7_Z>hwH@=htp9?CI!Z*jm}ZaImqRAu=hEfti7UK~qwiVc-7!3{MXq zWmuO}%<$seMTYBJwll2BEMPb>Zz03AZ95ruR5dW1ZSQ3Wi;HErbm}<6iq*>*OjXnv zPPTS4oSQU*p~TaVVR2Cz!}0b$hV}Vn3|q=;89I|Q7*ynC89I78879x0!!Tpf0tPin zDTYY}#S9i|>I_#VOlR0x-^y^fsgprMM}W+E#{!uxJKlX<3FF4{tHN z|NM-Bft!>}_mkC<_c>u&}aVIDPRH z!{!xB8BSd~$?*8yeTL+a0EYOGAcpycWen%LCo>#vXkj?o)W)#0vXDr|L+-|etgWZbJqrj+fS}BJpcHJ;pLYn4E|2e3=C{+41wmR3@herWmqtAIm6QF z>lo7Gau}>^Eg6EH-5H*Jdc^Sl+iQj;i)J&Nzjm5o^3GkRfOHCx*=9{~63I zEg1g)|H<&>*9V4YZyqqb`|*lFnt_4A+Q5L}=+V6lU;cbzXsfAaa56Dv0Hy2P>;D-% zecTxi9o@_D|Nmcx4?o{A=o=a``~{iu;|)XijsFZ;XZ|x3T>8)8*0P2{PCzqE(!tqN1XyRh^wCCMG6TqE%HJK;~3|cwm0)lq!%m7=KC? zXKZYhC|q9Di?eD9g0BiPOdrnY+yD{~6@{rc;jH5H0$B*vZ(?G?Sv93M6(o-kno_la P)1;~aR1T6Eu^_zwcl@TF literal 0 HcmV?d00001 diff --git a/CUETools.eac3ui/MainWindow.xaml b/CUETools.eac3ui/MainWindow.xaml index 0fed59e..1324dc6 100644 --- a/CUETools.eac3ui/MainWindow.xaml +++ b/CUETools.eac3ui/MainWindow.xaml @@ -1,31 +1,67 @@ - + MinWidth="300" MaxWidth="1200" MinHeight="260" MaxHeight="300" + DataContext="{Binding RelativeSource={RelativeSource Self}}" + Icon="Icons/cue2.ico" + Title="BluTools" Height="260" Width="600" Closing="Window_Closing" Initialized="Window_Initialized"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + diff --git a/CUETools.eac3ui/MainWindow.xaml.cs b/CUETools.eac3ui/MainWindow.xaml.cs index 55bd145..5c730b0 100644 --- a/CUETools.eac3ui/MainWindow.xaml.cs +++ b/CUETools.eac3ui/MainWindow.xaml.cs @@ -20,9 +20,11 @@ using System.ComponentModel; using Krystalware.UploadHelper; using CUETools.Codecs; using CUETools.Codecs.FLAKE; +using CUETools.Processor; +using System.Collections.ObjectModel; //using Microsoft.Win32; -namespace CUETools.eac3ui +namespace BluTools { /// /// Interaction logic for MainWindow.xaml @@ -31,6 +33,7 @@ namespace CUETools.eac3ui { public MainWindow() { + metaresults = new ObservableCollection(); filterShort = 900; filterRepeats = 2; filterDups = true; @@ -158,9 +161,19 @@ namespace CUETools.eac3ui ctdb.ContactDB(null, "CUETools.eac3to 2.1.7", "", false, true, CTDBMetadataSearch.Extensive); this.Dispatcher.Invoke(() => { + //metaresults.RaiseListChangedEvents = false; + cmbMetadata.ItemsSource = null; + metaresults.Clear(); + foreach (var m in ctdb.Metadata) + { + var entry = new CUEMetadataEntry(ctdb.TOC, m.source); + entry.metadata.FillFromCtdb(m, entry.TOC.FirstAudio - 1); + metaresults.Add(entry); + } + //metaresults.RaiseListChangedEvents = true; + cmbMetadata.ItemsSource = metaresults; pbStatus.Visibility = Visibility.Collapsed; pbStatus.IsIndeterminate = false; - cmbMetadata.ItemsSource = ctdb.Metadata; cmbMetadata.SelectedIndex = 0; }); } @@ -185,7 +198,8 @@ namespace CUETools.eac3ui CUEToolsDB ctdb; BackgroundWorker workerExtract; - CTDBResponseMeta meta; + CUEMetadataEntry metaresult; + ObservableCollection metaresults; MPLSReader chosenReader; ushort pid; string outputFolderPath; @@ -201,11 +215,11 @@ namespace CUETools.eac3ui if (cmbTitleSet.SelectedItem == null) return; pid = ((MPLSStream)cmbAudioTrack.SelectedItem).pid; chosenReader = cmbTitleSet.SelectedItem as MPLSReader; - meta = cmbMetadata.SelectedItem as CTDBResponseMeta; - outputFolderPath = Path.Combine(textBoxDestination.Text, meta != null ? - meta.artist + " - " + meta.year + " - " + meta.album : + metaresult = cmbMetadata.SelectedItem as CUEMetadataEntry; + outputFolderPath = Path.Combine(textBoxDestination.Text, metaresult != null ? + metaresult.metadata.Artist + " - " + metaresult.metadata.Year + " - " + metaresult.metadata.Title : Path.GetFileName(textBoxSource.Text) + "." + chosenReader.FileName + "." + pid.ToString()); - outputAudioPath = Path.Combine(outputFolderPath, meta != null ? meta.artist + " - " + meta.year + " - " + meta.album + ".flac" : "image.flac"); + outputAudioPath = Path.Combine(outputFolderPath, metaresult != null ? metaresult.metadata.Artist + " - " + metaresult.metadata.Year + " - " + metaresult.metadata.Title + ".flac" : "image.flac"); outputCuePath = Path.ChangeExtension(outputAudioPath, "cue"); pbStatus.Visibility = Visibility.Visible; @@ -213,6 +227,7 @@ namespace CUETools.eac3ui //pbStatus.IsIndeterminate = true; stackParams.IsEnabled = false; buttonExtract.IsEnabled = false; + buttonExtract.Visibility = Visibility.Hidden; buttonStop.Visibility = Visibility.Visible; buttonStop.IsEnabled = true; @@ -243,14 +258,14 @@ namespace CUETools.eac3ui using (StreamWriter cueWriter = new StreamWriter(outputCuePath, false, Encoding.UTF8)) { cueWriter.WriteLine("REM COMMENT \"{0}\"", "Created by CUETools.eac3to"); - if (meta != null && meta.year != null) - cueWriter.WriteLine("REM DATE {0}", meta.year); + if (metaresult != null && metaresult.metadata.Year != "") + cueWriter.WriteLine("REM DATE {0}", metaresult.metadata.Year); else cueWriter.WriteLine("REM DATE XXXX"); - if (meta != null) + if (metaresult != null) { - cueWriter.WriteLine("PERFORMER \"{0}\"", meta.artist); - cueWriter.WriteLine("TITLE \"{0}\"", meta.album); + cueWriter.WriteLine("PERFORMER \"{0}\"", metaresult.metadata.Artist); + cueWriter.WriteLine("TITLE \"{0}\"", metaresult.metadata.Title); } else { @@ -263,11 +278,11 @@ namespace CUETools.eac3ui if (toc[track].IsAudio) { cueWriter.WriteLine(" TRACK {0:00} AUDIO", toc[track].Number); - if (meta != null && meta.track.Length >= toc[track].Number) + if (metaresult != null && metaresult.metadata.Tracks.Count >= toc[track].Number) { - cueWriter.WriteLine(" TITLE \"{0}\"", meta.track[(int)toc[track].Number - 1].name); - if (meta.track[(int)toc[track].Number - 1].artist != null) - cueWriter.WriteLine(" PERFORMER \"{0}\"", meta.track[(int)toc[track].Number - 1].artist); + cueWriter.WriteLine(" TITLE \"{0}\"", metaresult.metadata.Tracks[(int)toc[track].Number - 1].Title); + if (metaresult.metadata.Tracks[(int)toc[track].Number - 1].Artist != "") + cueWriter.WriteLine(" PERFORMER \"{0}\"", metaresult.metadata.Tracks[(int)toc[track].Number - 1].Artist); } else { @@ -330,6 +345,7 @@ namespace CUETools.eac3ui //pbStatus.IsIndeterminate = false; stackParams.IsEnabled = true; buttonExtract.IsEnabled = true; + buttonExtract.Visibility = Visibility.Visible; buttonStop.Visibility = Visibility.Hidden; buttonStop.IsEnabled = false; }); @@ -346,6 +362,49 @@ namespace CUETools.eac3ui { textBoxSource.Text = Properties.Settings.Default.SourceFolder; textBoxDestination.Text = Properties.Settings.Default.DestinationFolder; + cmbMetadata.ItemsSource = metaresults; + } + } + public class CodingTypeToIcon : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + // TODO: ResourceDictionary? + var image = Application.Current.MainWindow.Resources["coding_type_" + value.ToString()] as Image; + return image == null ? null : image.Source; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + return null; + } + } + + public class FormatTypeToIcon : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + var image = Application.Current.MainWindow.Resources["format_type_" + value.ToString()] as Image; + return image == null ? null : image.Source; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + return null; + } + } + + public class MetadataSourceToIcon : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + var image = Application.Current.MainWindow.Resources[value.ToString()] as Image; + return image == null ? null : image.Source; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + return null; } } } diff --git a/CUETools.eac3ui/Properties/AssemblyInfo.cs b/CUETools.eac3ui/Properties/AssemblyInfo.cs index 8b293f4..6a65b5f 100644 --- a/CUETools.eac3ui/Properties/AssemblyInfo.cs +++ b/CUETools.eac3ui/Properties/AssemblyInfo.cs @@ -7,11 +7,11 @@ using System.Windows; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("CUETools.eac3ui")] +[assembly: AssemblyTitle("BluTools")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CUETools.eac3ui")] +[assembly: AssemblyProduct("BluTools")] [assembly: AssemblyCopyright("Copyright © 2018")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.eac3ui/Properties/Resources.Designer.cs b/CUETools.eac3ui/Properties/Resources.Designer.cs index 880bc93..c9872e0 100644 --- a/CUETools.eac3ui/Properties/Resources.Designer.cs +++ b/CUETools.eac3ui/Properties/Resources.Designer.cs @@ -8,10 +8,10 @@ // //------------------------------------------------------------------------------ -namespace CUETools.eac3ui.Properties -{ - - +namespace BluTools.Properties { + using System; + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -19,51 +19,43 @@ namespace CUETools.eac3ui.Properties // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CUETools.eac3ui.Properties.Resources", typeof(Resources).Assembly); + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BluTools.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/CUETools.eac3ui/Properties/Resources.resx b/CUETools.eac3ui/Properties/Resources.resx index af7dbeb..2f96abe 100644 --- a/CUETools.eac3ui/Properties/Resources.resx +++ b/CUETools.eac3ui/Properties/Resources.resx @@ -46,7 +46,7 @@ mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with - : System.Serialization.Formatters.Binary.BinaryFormatter + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 @@ -60,6 +60,7 @@ : and then encoded with base64 encoding. --> + @@ -68,9 +69,10 @@ - + + @@ -85,9 +87,10 @@ - + + @@ -109,9 +112,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CUETools.eac3ui/Properties/Settings.Designer.cs b/CUETools.eac3ui/Properties/Settings.Designer.cs index b489b1f..b0899f9 100644 --- a/CUETools.eac3ui/Properties/Settings.Designer.cs +++ b/CUETools.eac3ui/Properties/Settings.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace CUETools.eac3ui.Properties { +namespace BluTools.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] diff --git a/CUETools.eac3ui/Properties/Settings.settings b/CUETools.eac3ui/Properties/Settings.settings index 19c84e5..a95c727 100644 --- a/CUETools.eac3ui/Properties/Settings.settings +++ b/CUETools.eac3ui/Properties/Settings.settings @@ -1,5 +1,5 @@  - + diff --git a/CUETools/CUETools.sln b/CUETools/CUETools.sln index 07b8ad5..ae17257 100644 --- a/CUETools/CUETools.sln +++ b/CUETools/CUETools.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.27130.2027 +VisualStudioVersion = 15.0.27130.2036 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CodecLibs", "CodecLibs", "{8B179853-B7D6-479C-B8B2-6CBCE835D040}" EndProject @@ -154,8 +154,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.DSP.Resampler", ". EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.Codecs.Icecast", "..\CUETools.Codecs.Icecast\CUETools.Codecs.Icecast.csproj", "{8FC5DA7C-F6AC-4D04-85BC-1233DDF569E7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFRipper", "..\WPFRipper\WPFRipper.csproj", "{2D8D7A03-DFFA-44EF-9299-8BB56D122245}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.Codecs.FLACCL", "..\CUETools.Codecs.FLACCL\CUETools.Codecs.FLACCL.csproj", "{DFE55765-564C-4B8F-993B-A94C4D1C212E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.FLACL.cmd", "..\CUETools.FLACCL.cmd\CUETools.FLACL.cmd.csproj", "{1FCA8834-34E6-47CF-B53F-D8DF35345363}" @@ -188,7 +186,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.eac3to", "..\CUETo EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GUI", "GUI", "{BC0C1801-0212-4ECC-92D5-8F2D6F69E888}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.eac3ui", "..\CUETools.eac3ui\CUETools.eac3ui.csproj", "{678875A6-6B3A-4AAC-83B6-D9A72D9016CF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLUTools", "..\CUETools.eac3ui\BLUTools.csproj", "{678875A6-6B3A-4AAC-83B6-D9A72D9016CF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUERipper.WPF", "..\CUERipper.WPF\CUERipper.WPF.csproj", "{2D8D7A03-DFFA-44EF-9299-8BB56D122245}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -901,20 +901,6 @@ Global {8FC5DA7C-F6AC-4D04-85BC-1233DDF569E7}.Release|Win32.ActiveCfg = Release|Any CPU {8FC5DA7C-F6AC-4D04-85BC-1233DDF569E7}.Release|x64.ActiveCfg = Release|Any CPU {8FC5DA7C-F6AC-4D04-85BC-1233DDF569E7}.Release|x86.ActiveCfg = Release|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Win32.ActiveCfg = Debug|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|x64.ActiveCfg = Debug|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|x86.ActiveCfg = Debug|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Any CPU.Build.0 = Release|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Win32.ActiveCfg = Release|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|x64.ActiveCfg = Release|Any CPU - {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|x86.ActiveCfg = Release|Any CPU {DFE55765-564C-4B8F-993B-A94C4D1C212E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DFE55765-564C-4B8F-993B-A94C4D1C212E}.Debug|Any CPU.Build.0 = Debug|Any CPU {DFE55765-564C-4B8F-993B-A94C4D1C212E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -1130,6 +1116,26 @@ Global {678875A6-6B3A-4AAC-83B6-D9A72D9016CF}.Release|x64.Build.0 = Release|Any CPU {678875A6-6B3A-4AAC-83B6-D9A72D9016CF}.Release|x86.ActiveCfg = Release|Any CPU {678875A6-6B3A-4AAC-83B6-D9A72D9016CF}.Release|x86.Build.0 = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Win32.ActiveCfg = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|Win32.Build.0 = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|x64.ActiveCfg = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|x64.Build.0 = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|x86.ActiveCfg = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Debug|x86.Build.0 = Debug|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Any CPU.Build.0 = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Win32.ActiveCfg = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|Win32.Build.0 = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|x64.ActiveCfg = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|x64.Build.0 = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|x86.ActiveCfg = Release|Any CPU + {2D8D7A03-DFFA-44EF-9299-8BB56D122245}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1174,7 +1180,6 @@ Global {6C74652F-1EF4-459E-84F4-99D93D3D17DA} = {D9D97BB6-002F-4858-8EF2-49B4C4C4DDB4} {8DD1E84B-0B03-4C0B-9B42-1E49F75E7CB1} = {7E402406-7E51-4F0D-8209-60824C1CD6E8} {1AF02E2C-2CB2-44B5-B417-37653071FEC6} = {93B7AE1D-DEF6-4A04-A222-5CDE09DF262D} - {2D8D7A03-DFFA-44EF-9299-8BB56D122245} = {90FD290C-5D65-42A6-AC9C-928730432116} {DFE55765-564C-4B8F-993B-A94C4D1C212E} = {93B7AE1D-DEF6-4A04-A222-5CDE09DF262D} {1FCA8834-34E6-47CF-B53F-D8DF35345363} = {4B59E09C-A51F-4B80-91BE-987904DCEF7D} {758285C6-1ACA-458A-9906-EE6701D5AF87} = {7E402406-7E51-4F0D-8209-60824C1CD6E8} @@ -1188,6 +1193,7 @@ Global {E75F7CCD-4266-42E1-A039-DC7EB5EDD8F6} = {93B7AE1D-DEF6-4A04-A222-5CDE09DF262D} {E3FF7539-6B22-4922-8FEF-6D26F2C2E3CE} = {4B59E09C-A51F-4B80-91BE-987904DCEF7D} {678875A6-6B3A-4AAC-83B6-D9A72D9016CF} = {BC0C1801-0212-4ECC-92D5-8F2D6F69E888} + {2D8D7A03-DFFA-44EF-9299-8BB56D122245} = {BC0C1801-0212-4ECC-92D5-8F2D6F69E888} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C634D169-5814-4203-94B6-6A11371DDA95}