diff --git a/res/Tools.qrc b/res/Tools.qrc index 3beabec3..f71330d1 100644 --- a/res/Tools.qrc +++ b/res/Tools.qrc @@ -11,7 +11,8 @@ tools/flac.exe tools/gpgv.exe tools/gpgv.gpg - tools/lame.exe + tools/lame.i386.exe + tools/lame.sse2.exe tools/mac.exe tools/mediainfo.i386.exe tools/mediainfo.x64.exe diff --git a/res/tools/aften.i386.exe b/res/tools/aften.i386.exe index e8e8554a..240bb56f 100644 Binary files a/res/tools/aften.i386.exe and b/res/tools/aften.i386.exe differ diff --git a/res/tools/aften.sse2.exe b/res/tools/aften.sse2.exe index 4b4a89f6..55589336 100644 Binary files a/res/tools/aften.sse2.exe and b/res/tools/aften.sse2.exe differ diff --git a/res/tools/avs2wav.exe b/res/tools/avs2wav.exe index 6851a90f..42fd2e44 100644 Binary files a/res/tools/avs2wav.exe and b/res/tools/avs2wav.exe differ diff --git a/res/tools/faad.exe b/res/tools/faad.exe index 44814748..b59bc20c 100644 Binary files a/res/tools/faad.exe and b/res/tools/faad.exe differ diff --git a/res/tools/lame.i386.exe b/res/tools/lame.i386.exe new file mode 100644 index 00000000..968caf7d Binary files /dev/null and b/res/tools/lame.i386.exe differ diff --git a/res/tools/lame.exe b/res/tools/lame.old similarity index 100% rename from res/tools/lame.exe rename to res/tools/lame.old diff --git a/res/tools/lame.sse2.exe b/res/tools/lame.sse2.exe new file mode 100644 index 00000000..385cd503 Binary files /dev/null and b/res/tools/lame.sse2.exe differ diff --git a/res/tools/wma2wav.exe b/res/tools/wma2wav.exe index 10965a81..2e19ddf5 100644 Binary files a/res/tools/wma2wav.exe and b/res/tools/wma2wav.exe differ diff --git a/src/Config.h b/src/Config.h index a1ded986..28dd7302 100644 --- a/src/Config.h +++ b/src/Config.h @@ -29,8 +29,8 @@ #define VER_LAMEXP_MINOR_HI 0 #define VER_LAMEXP_MINOR_LO 3 #define VER_LAMEXP_TYPE Alpha -#define VER_LAMEXP_PATCH 11 -#define VER_LAMEXP_BUILD 640 +#define VER_LAMEXP_PATCH 12 +#define VER_LAMEXP_BUILD 646 /////////////////////////////////////////////////////////////////////////////// // Tools versions diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp index 7bae7279..5888092b 100644 --- a/src/Thread_Initialization.cpp +++ b/src/Thread_Initialization.cpp @@ -33,15 +33,25 @@ #include //////////////////////////////////////////////////////////// -// TOOLS +// CPU FLags //////////////////////////////////////////////////////////// -#define CPU_TYPE_X86 0x000001 //x86-32 -#define CPU_TYPE_SSE 0x000002 //x86-32 + SSE2 (Intel only!) -#define CPU_TYPE_X64 0x000004 //x86-64 +/* CPU_TYPE__ */ -#define CPU_TYPE_GEN (CPU_TYPE_X86|CPU_TYPE_SSE) //Use for all CPU's, except for x86-64 -#define CPU_TYPE_ALL (CPU_TYPE_X86|CPU_TYPE_SSE|CPU_TYPE_X64) //Use for all CPU's, x86-32 and x86-64 +#define CPU_TYPE_X86_GEN 0x00000001UL //x86, no enhanced instruction set +#define CPU_TYPE_X86_SSE 0x00000002UL //x86, with SSE and SSE2 support (Intel only!) +#define CPU_TYPE_X64_GEN 0x00000004UL //x64, generic (x64 always includes SSE2) + +#define CPU_TYPE_X86_ALL (CPU_TYPE_X86_GEN|CPU_TYPE_X86_SSE) //all x86 CPU's, but not x64) +#define CPU_TYPE_ALL_SSE (CPU_TYPE_X86_SSE|CPU_TYPE_X64_GEN) //all SSE2-capable CPU's (x86 and x64) +#define CPU_TYPE_ALL_ALL (CPU_TYPE_X86_ALL|CPU_TYPE_X64_GEN) //all CPU's, no exceptions + +#define IS_CPU_TYPE_X64_GEN (m_cpuFeatures.x64 && m_cpuFeatures.sse && m_cpuFeatures.sse2) +#define IS_CPU_TYPE_X86_SSE (m_cpuFeatures.intel && m_cpuFeatures.sse && m_cpuFeatures.sse2) + +//////////////////////////////////////////////////////////// +// TOOLS +//////////////////////////////////////////////////////////// static const struct { @@ -52,35 +62,36 @@ static const struct } g_lamexp_tools[] = { - {"cd702b111e13e3b6ed71cb0b6e6e9fc6be994296c65ed367c22ba382ab1e147ba126b02b", CPU_TYPE_X86, "aften.i386.exe", 8}, - {"aa81f531c7cf1be38bfce1656113cfd6d682106958ab269dae8dff70abbc3e00615fdf4e", CPU_TYPE_SSE, "aften.sse2.exe", 8}, - {"29da0d3e810bc3e8d2cddb3db452325eefca0d0c1fff1379fa17806ad447752be1b88e2f", CPU_TYPE_X64, "aften.x64.exe", 8}, - {"1cca303fabd889a18fc01c32a7fd861194cfcac60ba63740ea2d7c55d049dbf8f59259fa", CPU_TYPE_ALL, "alac.exe", 20}, - {"72d7ef3ecb727d6eaf64a8cca8bda2b6cc91154178d7d1783144c4acf1a0c1c2547ca324", CPU_TYPE_ALL, "avs2wav.exe", 12}, - {"c6f23fb7ba18a7972802e013b66ec6ce52088bf4fe783774eb1d33dd3401fa8aad76cc8b", CPU_TYPE_ALL, "elevator.exe", UINT_MAX}, - {"b71736a34afbe3259304a5b5dda980dfdbc3bf4fbc06c62a98a3ee4742deda377020d691", CPU_TYPE_ALL, "faad.exe", 27}, - {"446054f9a7f705f1aadc9053ca7b8a86a775499ef159978954ebdea92de056c34f8841f7", CPU_TYPE_ALL, "flac.exe", 121}, - {"dd68d074c5e13a607580f3a24595c0f3882e37211d2ca628f46e6df20fabcc832dad488a", CPU_TYPE_ALL, "gpgv.exe", 1411}, - {"b3fca757b3567dab75c042e62213c231de378ea0fdd7fe29b733417cd5d3d33558452f94", CPU_TYPE_ALL, "gpgv.gpg", UINT_MAX}, - {"9c1c8024d5d75213edbc1dbad7aeaf2535000f57880b445c763ac45da365446b8cfd84c7", CPU_TYPE_ALL, "lame.exe", 3990}, - {"67933924d68ce319795989648f29e7bd1abaac4ec09c26cbb0ff0d15a67a9df17e257933", CPU_TYPE_ALL, "mac.exe", 406}, - {"bf90f38f8e05249be0937eccb6a8a312625bc66863a185fadb4d7eda8b6282ee1b05dc8b", CPU_TYPE_GEN, "mediainfo.i386.exe", 747}, - {"bd32724ebd1f5a7f39cc1f011df0a0ae475ec8c5958cecd216e9e248283d29ab846e123d", CPU_TYPE_X64, "mediainfo.x64.exe", 747}, - {"a93ec86187025e66fb78026af35555bd3b4e30fe1a40e8d66f600cfd918f07f431f0b2f2", CPU_TYPE_ALL, "mpcdec.exe", 435}, - {"5a89768010efb1ddfd88ccc378a89433ceaecb403a7b1f83f8716f6848d9a05b3d3c6d93", CPU_TYPE_ALL, "mpg123.exe", 1133}, - {"0c781805dda931c529bd16069215f616a7a4c5e5c2dfb6b75fe85d52b20511830693e528", CPU_TYPE_ALL, "oggdec.exe", UINT_MAX}, - {"0c019e13450dc664987e21f4e5489d182be7d6d0d81efbbaaf1c78693dfe3e38e0355b93", CPU_TYPE_X86, "oggenc2.i386.exe", 287603}, - {"693dd6f779df70a047c15c2c79350855db38d5b0cd7e529b6877b7c821cfe6addfdd50a4", CPU_TYPE_SSE, "oggenc2.sse2.exe", 287603}, - {"32cb0b2182488e5e9278ba6b9fc9141214c7546eec67ee02fa895810b0e56900368695be", CPU_TYPE_X64, "oggenc2.x64.exe", 287603}, - {"58c2b8bcff8f27bfa8fab8172b80f5da731221d072c7dba4dd3a3d7d6423490a25dc6760", CPU_TYPE_ALL, "shorten.exe", 361}, - {"abdf9b20a8031a09d0abca9cb10c31c8418f72403b5d1350fd69bfa34041591aca3060ab", CPU_TYPE_ALL, "sox.exe", 1432}, - {"48e7f81c024cd17dac0eaeab253aad6b223e72dc80688f7576276b0563209514ff0bb9c8", CPU_TYPE_ALL, "speexdec.exe", 12}, - {"9b50cf64747d4afbad5d8d9b5a0a2d41c5a58256f47ebdbd8cc920e7e576085dfe1b14ff", CPU_TYPE_ALL, "tta.exe", 21}, - {"875871c942846f6ad163f9e4949bba2f4331bec678ca5aefe58c961b6825bd0d419a078b", CPU_TYPE_ALL, "valdec.exe", 31}, - {"e657331e281840878a37eb4fb357cb79f33d528ddbd5f9b2e2f7d2194bed4720e1af8eaf", CPU_TYPE_ALL, "wget.exe", 1114}, - {"038422e3203674dc36a71e26911220af5349d86697ad5b046f21ea841e6906ed27e9f35c", CPU_TYPE_ALL, "wma2wav.exe", 20110815}, - {"a258711f7a8a0c75528f3ed4d2c17513ff8598b7e0a9d7db13ca941a3140094ffc2ffb62", CPU_TYPE_ALL, "wupdate.exe", UINT_MAX}, - {"6b053b37d47a9c8659ebf2de43ad19dcba17b9cd868b26974b9cc8c27b6167e8bf07a5a2", CPU_TYPE_ALL, "wvunpack.exe", 4601}, + {"1e4c983fe00ccc6236ee1c3f76250f64139cf86a6f4aa68f36929907fe45cf37b00862d8", CPU_TYPE_X86_GEN, "aften.i386.exe", 8}, + {"7c843f1eaf61823285237911493d8d20da11149853d4bb7953a3279196f6dbbd310c61e3", CPU_TYPE_X86_SSE, "aften.sse2.exe", 8}, + {"29da0d3e810bc3e8d2cddb3db452325eefca0d0c1fff1379fa17806ad447752be1b88e2f", CPU_TYPE_X64_GEN, "aften.x64.exe", 8}, + {"1cca303fabd889a18fc01c32a7fd861194cfcac60ba63740ea2d7c55d049dbf8f59259fa", CPU_TYPE_ALL_ALL, "alac.exe", 20}, + {"6d22d4bbd7ce2162e38f70ac9187bc84eb28233b36ee6c0492d0a6195318782d7f05c444", CPU_TYPE_ALL_ALL, "avs2wav.exe", 13}, + {"c6f23fb7ba18a7972802e013b66ec6ce52088bf4fe783774eb1d33dd3401fa8aad76cc8b", CPU_TYPE_ALL_ALL, "elevator.exe", UINT_MAX}, + {"9ae98a3fc779f69ee876a3b477fbc35a709ba5066823b2eb62eeb015057c38807e4be51f", CPU_TYPE_ALL_ALL, "faad.exe", 27}, + {"446054f9a7f705f1aadc9053ca7b8a86a775499ef159978954ebdea92de056c34f8841f7", CPU_TYPE_ALL_ALL, "flac.exe", 121}, + {"dd68d074c5e13a607580f3a24595c0f3882e37211d2ca628f46e6df20fabcc832dad488a", CPU_TYPE_ALL_ALL, "gpgv.exe", 1411}, + {"b3fca757b3567dab75c042e62213c231de378ea0fdd7fe29b733417cd5d3d33558452f94", CPU_TYPE_ALL_ALL, "gpgv.gpg", UINT_MAX}, + {"ed5592d76cefd74e700306ccc3781904ce9602b1193747b0e6467a90d799f3cb711812b2", CPU_TYPE_X86_GEN, "lame.i386.exe", 3990}, + {"2402a8d28301060a1f01c83a96f2f0157a01143e58cf2c484b9e9bb4474fbc1344dd6642", CPU_TYPE_ALL_SSE, "lame.sse2.exe", 3990}, + {"67933924d68ce319795989648f29e7bd1abaac4ec09c26cbb0ff0d15a67a9df17e257933", CPU_TYPE_ALL_ALL, "mac.exe", 406}, + {"bf90f38f8e05249be0937eccb6a8a312625bc66863a185fadb4d7eda8b6282ee1b05dc8b", CPU_TYPE_X86_ALL, "mediainfo.i386.exe", 747}, + {"bd32724ebd1f5a7f39cc1f011df0a0ae475ec8c5958cecd216e9e248283d29ab846e123d", CPU_TYPE_X64_GEN, "mediainfo.x64.exe", 747}, + {"a93ec86187025e66fb78026af35555bd3b4e30fe1a40e8d66f600cfd918f07f431f0b2f2", CPU_TYPE_ALL_ALL, "mpcdec.exe", 435}, + {"5a89768010efb1ddfd88ccc378a89433ceaecb403a7b1f83f8716f6848d9a05b3d3c6d93", CPU_TYPE_ALL_ALL, "mpg123.exe", 1133}, + {"0c781805dda931c529bd16069215f616a7a4c5e5c2dfb6b75fe85d52b20511830693e528", CPU_TYPE_ALL_ALL, "oggdec.exe", UINT_MAX}, + {"0c019e13450dc664987e21f4e5489d182be7d6d0d81efbbaaf1c78693dfe3e38e0355b93", CPU_TYPE_X86_GEN, "oggenc2.i386.exe", 287603}, + {"693dd6f779df70a047c15c2c79350855db38d5b0cd7e529b6877b7c821cfe6addfdd50a4", CPU_TYPE_X86_SSE, "oggenc2.sse2.exe", 287603}, + {"32cb0b2182488e5e9278ba6b9fc9141214c7546eec67ee02fa895810b0e56900368695be", CPU_TYPE_X64_GEN, "oggenc2.x64.exe", 287603}, + {"58c2b8bcff8f27bfa8fab8172b80f5da731221d072c7dba4dd3a3d7d6423490a25dc6760", CPU_TYPE_ALL_ALL, "shorten.exe", 361}, + {"abdf9b20a8031a09d0abca9cb10c31c8418f72403b5d1350fd69bfa34041591aca3060ab", CPU_TYPE_ALL_ALL, "sox.exe", 1432}, + {"48e7f81c024cd17dac0eaeab253aad6b223e72dc80688f7576276b0563209514ff0bb9c8", CPU_TYPE_ALL_ALL, "speexdec.exe", 12}, + {"9b50cf64747d4afbad5d8d9b5a0a2d41c5a58256f47ebdbd8cc920e7e576085dfe1b14ff", CPU_TYPE_ALL_ALL, "tta.exe", 21}, + {"875871c942846f6ad163f9e4949bba2f4331bec678ca5aefe58c961b6825bd0d419a078b", CPU_TYPE_ALL_ALL, "valdec.exe", 31}, + {"e657331e281840878a37eb4fb357cb79f33d528ddbd5f9b2e2f7d2194bed4720e1af8eaf", CPU_TYPE_ALL_ALL, "wget.exe", 1114}, + {"437d3817072d0b9c0bf5a1cf2daf0d7bc22106571f53cf6b6fe10942cdfdc50829847d8f", CPU_TYPE_ALL_ALL, "wma2wav.exe", 20110816}, + {"a258711f7a8a0c75528f3ed4d2c17513ff8598b7e0a9d7db13ca941a3140094ffc2ffb62", CPU_TYPE_ALL_ALL, "wupdate.exe", UINT_MAX}, + {"6b053b37d47a9c8659ebf2de43ad19dcba17b9cd868b26974b9cc8c27b6167e8bf07a5a2", CPU_TYPE_ALL_ALL, "wvunpack.exe", 4601}, {NULL, NULL, NULL, NULL} }; @@ -113,7 +124,7 @@ void InitializationThread::run() delay(); //CPU type selection - unsigned int cpuSupport = m_cpuFeatures.x64 ? CPU_TYPE_X64 : ((m_cpuFeatures.intel && m_cpuFeatures.sse && m_cpuFeatures.sse2) ? CPU_TYPE_SSE : CPU_TYPE_X86); + const unsigned int cpuSupport = IS_CPU_TYPE_X64_GEN ? CPU_TYPE_X64_GEN : (IS_CPU_TYPE_X86_SSE ? CPU_TYPE_X86_SSE : CPU_TYPE_X86_GEN); //Allocate maps QMap mapChecksum;