diff --git a/src/Config.h b/src/Config.h
index cb5cf03e..72c4783b 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -25,7 +25,7 @@
#define VER_LAMEXP_MAJOR 4
#define VER_LAMEXP_MINOR_HI 0
#define VER_LAMEXP_MINOR_LO 0
-#define VER_LAMEXP_BUILD 156
+#define VER_LAMEXP_BUILD 157
#define VER_LAMEXP_SUFFIX TechPreview
/*
diff --git a/src/Dialog_About.cpp b/src/Dialog_About.cpp
index bea5d8cb..b1cb99de 100644
--- a/src/Dialog_About.cpp
+++ b/src/Dialog_About.cpp
@@ -40,6 +40,7 @@
//Helper macros
#define LINK(URL) QString("%2").arg(URL).arg(URL)
#define CONTRIBUTOR(LANG, CNTR, ICON) QString("
| | %2 | | %3 |
").arg(ICON, LANG, CNTR);
+#define VSTR(BASE,TOOL,FORMAT) QString(BASE).arg(lamexp_version2string(FORMAT, lamexp_tool_version(TOOL)))
//Constants
const char *AboutDialog::neroAacUrl = "http://www.nero.com/eng/technologies-aac-codec.html";
@@ -215,24 +216,29 @@ void AboutDialog::showMoreAbout(void)
QString moreAboutText;
moreAboutText += "The following third-party software is used in LameXP:
";
moreAboutText += "";
- moreAboutText += "- LAME - OpenSource mp3 Encoder
";
+
+ moreAboutText += VSTR( " - LAME - OpenSource mp3 Encoder (%1)
", "lame.exe", "v?.?? a??");
moreAboutText += "Released under the terms of the GNU Leser General Public License.
";
moreAboutText += LINK("http://lame.sourceforge.net/");
moreAboutText += "
";
- moreAboutText += " - OggEnc - Ogg Vorbis Encoder";
+
+ moreAboutText += VSTR("
- OggEnc - Ogg Vorbis Encoder (%1)", "oggenc2_i386.exe", "v?.??");
moreAboutText += "
Completely open and patent-free audio encoding technology.
";
moreAboutText += LINK("http://www.vorbis.com/");
moreAboutText += "
";
- moreAboutText += " - Nero AAC reference MPEG-4 Encoder
";
+
+ moreAboutText += VSTR(" - Nero AAC reference MPEG-4 Encoder (%1)
", "neroAacEnc.exe", "v?.?.?.?");
moreAboutText += "Freeware state-of-the-art HE-AAC encoder with 2-Pass support.
";
moreAboutText += "Available from vendor web-site as free download:
";
moreAboutText += LINK(neroAacUrl);
moreAboutText += "
";
- moreAboutText += " - FLAC - Free Lossless Audio Codec";
- moreAboutText += "
Open and patent-free lossless audio compression.
";
+
+ moreAboutText += VSTR(" - FLAC - Free Lossless Audio Codec (%1)
", "flac.exe", "v?.?.?");
+ moreAboutText += "Open and patent-free lossless audio compression technology.
";
moreAboutText += LINK("http://flac.sourceforge.net/");
moreAboutText += "
";
- moreAboutText += " - MediaInfo - Media File Analysis Tool
";
+
+ moreAboutText += VSTR(" - MediaInfo - Media File Analysis Tool (%1)
", "mediainfo_icl11.exe", "v?.?.??");
moreAboutText += "Released under the terms of the GNU Leser General Public License.
";
moreAboutText += LINK("http://mediainfo.sourceforge.net/");
moreAboutText += "
";
diff --git a/src/Global.cpp b/src/Global.cpp
index fad493ff..194e241d 100644
--- a/src/Global.cpp
+++ b/src/Global.cpp
@@ -762,7 +762,7 @@ bool lamexp_check_tool(const QString &toolName)
}
/*
- * Lookup tool
+ * Lookup tool path
*/
const QString lamexp_lookup_tool(const QString &toolName)
{
@@ -777,7 +777,7 @@ const QString lamexp_lookup_tool(const QString &toolName)
}
/*
- * Lookup tool
+ * Lookup tool version
*/
unsigned int lamexp_tool_version(const QString &toolName)
{
@@ -796,6 +796,11 @@ unsigned int lamexp_tool_version(const QString &toolName)
*/
const QString lamexp_version2string(const QString &pattern, unsigned int version)
{
+ if(version == UINT_MAX)
+ {
+ return "n/a";
+ }
+
QString result = pattern;
int digits = result.count("?", Qt::CaseInsensitive);
diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp
index 20ba2b6a..5d3f2fdf 100644
--- a/src/Thread_Initialization.cpp
+++ b/src/Thread_Initialization.cpp
@@ -41,36 +41,37 @@ struct lamexp_tool_t
{
char *pcHash;
char *pcName;
+ unsigned int uiVersion;
};
static const struct lamexp_tool_t g_lamexp_tools[] =
{
- {"153f4274702f3629093b561a31dbf50e2c146305", "alac.exe"},
- {"4ecc017a66fe43092110f11494f384e57d99280d", "elevator.exe"},
- {"097dd004f44dbda57dbaeb5f15b34a220724ad60", "faad.exe"},
- {"133171ac21f083d565ee9c33ef9cd92fc966811e", "flac.exe"},
- {"cf379081035ae6bfb6f7bc22f13bfb7ac6302ac5", "gpgv.exe"},
- {"d837bf6ee4dab557d8b02d46c75a24e58980fffa", "gpgv.gpg"},
- {"143fc001a2f6c56fe1b9e6f8a2eb2b53b9e1e504", "lame.exe"},
- {"775b260b3f64101beaeb317b74746f9bccdab842", "MAC.exe"},
- {"e8719fbfd7b690b3e518489f7aae3915305711c2", "mediainfo_icl11.exe"},
- {"55c293a80475f7aeccf449ac9487a4626e5139cb", "mpcdec.exe"},
- {"8bbf4a3fffe2ff143eb5ba2cf82ca16d676e865d", "mpg123.exe"},
- {"380c734e3c3948a844b9fae213d53a93ab20beba", "oggdec.exe"},
- {"ecd15abe103184aca96e406f5f1c82c6fb2e665d", "oggenc2_i386.exe"},
- {"ffe0fbd73352396dc3752ac9d484dbfc754a226d", "oggenc2_sse2.exe"},
- {"a8c50872e544a55495a824426e9378984f2ae01d", "oggenc2_x64.exe"},
- {"cd95369051f96b9ca3a997658771c5ea52bc874d", "selfdelete.exe"},
- {"ffeaa70bd6321185eafcb067ab2dc441650038bf", "shorten.exe"},
- {"346ce516281c97e92e1b8957ddeca52edcf2d056", "speexdec.exe"},
- {"8a74b767cfe88bf88c068fdae0de02d65589d25e", "takc.exe"},
- {"1c5cedb56358a0e8c4590a863a97c94d7d7e98b2", "ttaenc.exe"},
- {"7dcf6517aa90ed15737ee8ea50ea00a6dece2d27", "valdec.exe"},
- {"8159f4e824b3e343ece95ba6dbb5e16da9c4866e", "volumax.exe"},
- {"62e2805d1b2eb2a4d86a5ca6e6ea58010d05d2a7", "wget.exe"},
- {"a17011961aa8696bc935e097b3242d33c38a9842", "wupdate.exe"},
- {"4d018ac7f6a42abd53faacfae5055c2a3c176430", "wvunpack.exe"},
- {NULL, NULL}
+ {"153f4274702f3629093b561a31dbf50e2c146305", "alac.exe", UINT_MAX},
+ {"4ecc017a66fe43092110f11494f384e57d99280d", "elevator.exe", UINT_MAX},
+ {"097dd004f44dbda57dbaeb5f15b34a220724ad60", "faad.exe", UINT_MAX},
+ {"133171ac21f083d565ee9c33ef9cd92fc966811e", "flac.exe", 121},
+ {"cf379081035ae6bfb6f7bc22f13bfb7ac6302ac5", "gpgv.exe", UINT_MAX},
+ {"d837bf6ee4dab557d8b02d46c75a24e58980fffa", "gpgv.gpg", UINT_MAX},
+ {"143fc001a2f6c56fe1b9e6f8a2eb2b53b9e1e504", "lame.exe", 39910},
+ {"775b260b3f64101beaeb317b74746f9bccdab842", "MAC.exe", UINT_MAX},
+ {"e8719fbfd7b690b3e518489f7aae3915305711c2", "mediainfo_icl11.exe", 737},
+ {"55c293a80475f7aeccf449ac9487a4626e5139cb", "mpcdec.exe", UINT_MAX},
+ {"8bbf4a3fffe2ff143eb5ba2cf82ca16d676e865d", "mpg123.exe", UINT_MAX},
+ {"380c734e3c3948a844b9fae213d53a93ab20beba", "oggdec.exe", UINT_MAX},
+ {"ecd15abe103184aca96e406f5f1c82c6fb2e665d", "oggenc2_i386.exe", 287},
+ {"ffe0fbd73352396dc3752ac9d484dbfc754a226d", "oggenc2_sse2.exe", 287},
+ {"a8c50872e544a55495a824426e9378984f2ae01d", "oggenc2_x64.exe", 287},
+ {"cd95369051f96b9ca3a997658771c5ea52bc874d", "selfdelete.exe", UINT_MAX},
+ {"ffeaa70bd6321185eafcb067ab2dc441650038bf", "shorten.exe", UINT_MAX},
+ {"346ce516281c97e92e1b8957ddeca52edcf2d056", "speexdec.exe", UINT_MAX},
+ {"8a74b767cfe88bf88c068fdae0de02d65589d25e", "takc.exe", UINT_MAX},
+ {"1c5cedb56358a0e8c4590a863a97c94d7d7e98b2", "ttaenc.exe", UINT_MAX},
+ {"7dcf6517aa90ed15737ee8ea50ea00a6dece2d27", "valdec.exe", UINT_MAX},
+ {"8159f4e824b3e343ece95ba6dbb5e16da9c4866e", "volumax.exe", UINT_MAX},
+ {"62e2805d1b2eb2a4d86a5ca6e6ea58010d05d2a7", "wget.exe", UINT_MAX},
+ {"a17011961aa8696bc935e097b3242d33c38a9842", "wupdate.exe", UINT_MAX},
+ {"4d018ac7f6a42abd53faacfae5055c2a3c176430", "wvunpack.exe", UINT_MAX},
+ {NULL, NULL, NULL}
};
////////////////////////////////////////////////////////////
@@ -91,14 +92,17 @@ void InitializationThread::run()
m_bSuccess = false;
delay();
- QMap checksum;
+ QMap checksum;
+ QMap version;
//Init checksums
for(int i = 0; i < INT_MAX; i++)
{
if(g_lamexp_tools[i].pcName && g_lamexp_tools[i].pcHash)
{
- checksum.insert(QString::fromLatin1(g_lamexp_tools[i].pcName), QString::fromLatin1(g_lamexp_tools[i].pcHash));
+ const QString currentTool = QString::fromLatin1(g_lamexp_tools[i].pcName);
+ checksum.insert(currentTool, QString::fromLatin1(g_lamexp_tools[i].pcHash));
+ version.insert(currentTool, g_lamexp_tools[i].uiVersion);
continue;
}
break;
@@ -115,12 +119,13 @@ void InitializationThread::run()
qDebug("Extracting file: %s", g_lamexp_tools[i].pcName);
QString toolName = toolsList.at(i).fileName();
QByteArray toolHash = checksum.take(toolName).toLatin1();
+ unsigned int toolVersion = version.take(toolName);
if(toolHash.size() != 40)
{
throw "The required checksum is missing, take care!";
}
LockedFile *lockedFile = new LockedFile(QString(":/tools/%1").arg(toolName), QString(lamexp_temp_folder()).append(QString("/tool_%1").arg(toolName)), toolHash);
- lamexp_register_tool(toolName, lockedFile);
+ lamexp_register_tool(toolName, lockedFile, toolVersion);
}
catch(char *errorMsg)
{