<li>Updated language files (big thank-you to all contributors !!!)
<li>Improved "downmix" filter by using explicit channel mappings for each number of input channels
<li>Fixed Cue Sheet import for tracks with certain characters in the title
+<li>Fixed a problem with the "normalization" filter that sometimes caused the resulting file to be empty
<li>Workaround for malicious "anti-virus" programs that prevent innocent applications from functioning
<li>Enabled "Aero Glass" theme in installer and web-update program (Vista and Windows 7 only)
<li>Restored Windows 2000 support with Visual Studio 2010 builds (this is experimental!)
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/Dialog_Processing.cpp" line="786"/>
+ <location filename="../../src/Dialog_Processing.cpp" line="798"/>
<source>Playlist creation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/Dialog_Processing.cpp" line="786"/>
+ <location filename="../../src/Dialog_Processing.cpp" line="798"/>
<source>The playlist file could not be created:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/Dialog_Processing.cpp" line="826"/>
+ <location filename="../../src/Dialog_Processing.cpp" line="838"/>
<source>Warning: Computer will shutdown in %1 seconds...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/Dialog_Processing.cpp" line="830"/>
- <location filename="../../src/Dialog_Processing.cpp" line="831"/>
+ <location filename="../../src/Dialog_Processing.cpp" line="842"/>
+ <location filename="../../src/Dialog_Processing.cpp" line="843"/>
<source>Cancel Shutdown</source>
<translation type="unfinished"></translation>
</message>
#define VER_LAMEXP_MINOR_LO 3
#define VER_LAMEXP_TYPE Beta
#define VER_LAMEXP_PATCH 1
-#define VER_LAMEXP_BUILD 683
+#define VER_LAMEXP_BUILD 684
///////////////////////////////////////////////////////////////////////////////
// Tools versions
}
//Init local variables
- const static char *invalidChars = "\\/:*?\"<>|";
QStringList list;
+ QRegExp regExp1("\\[\\d\\d\\][^/\\\\]+$", Qt::CaseInsensitive);
+ QRegExp regExp2("\\(\\d\\d\\)[^/\\\\]+$", Qt::CaseInsensitive);
+ QRegExp regExp3("\\d\\d[^/\\\\]+$", Qt::CaseInsensitive);
+ bool usePrefix[3] = {true, true, true};
bool useUtf8 = false;
int counter = 1;
}
//Clean playlist name
- for(int i = 0; invalidChars[i]; i++)
- {
- playListName = playListName.replace(invalidChars[i], ' ').simplified();
- }
+ playListName = lamexp_clean_filename(playListName);
//Create list of audio files
for(int i = 0; i < m_allJobs.count(); i++)
list << QDir::toNativeSeparators(QDir(m_settings->outputDir()).relativeFilePath(m_playList.value(m_allJobs.at(i), "N/A")));
}
+ //Use prefix?
+ for(int i = 0; i < list.count(); i++)
+ {
+ if(regExp1.indexIn(list.at(i)) < 0) usePrefix[0] = false;
+ if(regExp2.indexIn(list.at(i)) < 0) usePrefix[1] = false;
+ if(regExp3.indexIn(list.at(i)) < 0) usePrefix[2] = false;
+ }
+ if(usePrefix[0] || usePrefix[1] || usePrefix[2])
+ {
+ playListName.prepend(usePrefix[0] ? "[00] " : (usePrefix[1] ? "(00) " : "00 "));
+ }
+
//Do we need an UTF-8 playlist?
for(int i = 0; i < list.count(); i++)
{
const QString lamexp_clean_filename(const QString &str)
{
QString newStr(str);
+
newStr.replace("\\", "-");
newStr.replace(" / ", ", ");
newStr.replace("/", ",");
newStr.replace("<", "[");
newStr.replace(">", "]");
newStr.replace("|", "!");
- return newStr;
+
+ return newStr.simplified();
}
/*