+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// http://www.gnu.org/licenses/gpl-2.0.txt
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include "Decoder_Abstract.h"
+
+class SpeexDecoder : public AbstractDecoder
+{
+public:
+ SpeexDecoder(void);
+ ~SpeexDecoder(void);
+
+ virtual bool decode(const QString &sourceFile, const QString &outputFile, volatile bool *abortFlag);
+ static bool isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion);
+ static QStringList supportedTypes(void);
+
+private:
+ const QString m_binary;
+};
diff --git a/src/Dialog_About.cpp b/src/Dialog_About.cpp
index bc4d34c3..5874144a 100644
--- a/src/Dialog_About.cpp
+++ b/src/Dialog_About.cpp
@@ -307,10 +307,6 @@ void AboutDialog::showMoreAbout(void)
tr("Completely open audio compression format."),
"http://www.wavpack.com/"
);
- moreAboutText += QString
- (
- ""
- );
moreAboutText += makeToolText
(
tr("Musepack − Living Audio Compression"),
@@ -318,6 +314,10 @@ void AboutDialog::showMoreAbout(void)
tr("Released under the terms of the GNU Lesser General Public License."),
"http://www.musepack.net/"
);
+ moreAboutText += QString
+ (
+ " | "
+ );
moreAboutText += makeToolText
(
tr("Monkey's Audio − Lossless Audio Compressor"),
@@ -333,6 +333,13 @@ void AboutDialog::showMoreAbout(void)
"http://etree.org/shnutils/shorten/"
);
moreAboutText += makeToolText
+ (
+ tr("Speex − Free Codec For Free Speech"),
+ "speexdec.exe", "v?.?",
+ tr("Open Source patent-free audio format designed for speech."),
+ "http://www.speex.org/"
+ );
+ moreAboutText += makeToolText
(
tr("The True Audio − Lossless Audio Codec"),
"ttaenc.exe", "v?.?.?",
@@ -360,6 +367,17 @@ void AboutDialog::showMoreAbout(void)
tr("Released under the terms of the GNU Lesser General Public License."),
"http://www.gnupg.org/"
);
+
+
+ moreAboutText += makeToolText
+ (
+ tr("GNU Wget − Software for retrieving files using HTTP"),
+ "wget.exe", "v?.??.?",
+ tr("Released under the terms of the GNU Lesser General Public License."),
+ "http://www.gnu.org/software/wget/"
+ );
+
+
moreAboutText += makeToolText
(
tr("Silk Icons − Over 700 icons in PNG format"),
diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp
index 58eaa5f3..0bbc7446 100644
--- a/src/Dialog_MainWindow.cpp
+++ b/src/Dialog_MainWindow.cpp
@@ -771,7 +771,7 @@ void MainWindow::windowShown(void)
messageText += QString("%1 ").arg(tr("LameXP detected that your version of the Nero AAC encoder is outdated!"));
messageText += QString("%1
").arg(tr("The current version available is %1 (or later), but you still have version %2 installed.").arg(lamexp_version2string("?.?.?.?", lamexp_toolver_neroaac(), tr("n/a")), lamexp_version2string("?.?.?.?", lamexp_tool_version("neroAacEnc.exe"), tr("n/a"))));
messageText += QString("%1 ").arg(tr("You can download the latest version of the Nero AAC encoder from the Nero website at:"));
- messageText += "" + LINK(AboutDialog::neroAacUrl) + " ";
+ messageText += "" + LINK(AboutDialog::neroAacUrl) + " ";
QMessageBox::information(this, tr("AAC Encoder Outdated"), messageText);
}
}
@@ -786,7 +786,7 @@ void MainWindow::windowShown(void)
messageText += QString("%1 ").arg(tr("Your LameXP directory is located here:"));
messageText += QString("%1
").arg(QDir::toNativeSeparators(appPath));
messageText += QString("%1 ").arg(tr("You can download the Nero AAC encoder for free from the official Nero website at:"));
- messageText += "" + LINK(AboutDialog::neroAacUrl) + " ";
+ messageText += "" + LINK(AboutDialog::neroAacUrl) + " ";
QMessageBox::information(this, tr("AAC Support Disabled"), messageText);
}
}
diff --git a/src/PlaylistImporter.cpp b/src/PlaylistImporter.cpp
index 96b3bc7e..359f6638 100644
--- a/src/PlaylistImporter.cpp
+++ b/src/PlaylistImporter.cpp
@@ -47,6 +47,9 @@ g_xmlEscapeSequence[] =
{NULL, NULL}
};
+const char *PlaylistImporter::supportedExtensions = "*.m3u *.m3u8 *.pls *.asx *.wpl";
+
+
////////////////////////////////////////////////////////////
// Public Functions
////////////////////////////////////////////////////////////
diff --git a/src/PlaylistImporter.h b/src/PlaylistImporter.h
index 60fbb5a8..e31e590c 100644
--- a/src/PlaylistImporter.h
+++ b/src/PlaylistImporter.h
@@ -38,6 +38,7 @@ public:
wplPlaylist
};
+ static const char *supportedExtensions;
static bool importPlaylist(QStringList &fileList, const QString &playlistFile);
private:
diff --git a/src/Registry_Decoder.cpp b/src/Registry_Decoder.cpp
index bb08a62b..8ab2c160 100644
--- a/src/Registry_Decoder.cpp
+++ b/src/Registry_Decoder.cpp
@@ -30,18 +30,18 @@
#include "Decoder_MP3.h"
#include "Decoder_Musepack.h"
#include "Decoder_Shorten.h"
+#include "Decoder_Speex.h"
#include "Decoder_TTA.h"
#include "Decoder_Vorbis.h"
#include "Decoder_Wave.h"
#include "Decoder_WavPack.h"
#include "Decoder_WMA.h"
+#include "PlaylistImporter.h"
#include
#include
#include
-static const char *g_playlistExt = "*.m3u *.m3u8 *.pls *.asx *.wpl";
-
#define PROBE_DECODER(DEC) if(DEC::isDecoderAvailable() && DEC::isFormatSupported(containerType, containerProfile, formatType, formatProfile, formatVersion)) { return new DEC(); }
#define GET_FILETYPES(DEC) (DEC::isDecoderAvailable() ? DEC::supportedTypes() : QStringList())
@@ -57,6 +57,7 @@ AbstractDecoder *DecoderRegistry::lookup(const QString &containerType, const QSt
PROBE_DECODER(ShortenDecoder);
PROBE_DECODER(MACDecoder);
PROBE_DECODER(TTADecoder);
+ PROBE_DECODER(SpeexDecoder);
PROBE_DECODER(ALACDecoder);
PROBE_DECODER(WMADecoder);
PROBE_DECODER(ADPCMDecoder);
@@ -80,12 +81,13 @@ QStringList DecoderRegistry::getSupportedTypes(void)
types << GET_FILETYPES(ShortenDecoder);
types << GET_FILETYPES(MACDecoder);
types << GET_FILETYPES(TTADecoder);
+ types << GET_FILETYPES(SpeexDecoder);
types << GET_FILETYPES(ALACDecoder);
types << GET_FILETYPES(WMADecoder);
types << GET_FILETYPES(ADPCMDecoder);
QStringList extensions;
- extensions << QString(g_playlistExt).split(" ", QString::SkipEmptyParts);
+ extensions << QString(PlaylistImporter::supportedExtensions).split(" ", QString::SkipEmptyParts);
QRegExp regExp("\\((.+)\\)", Qt::CaseInsensitive);
for(int i = 0; i < types.count(); i++)
@@ -103,7 +105,7 @@ QStringList DecoderRegistry::getSupportedTypes(void)
types.prepend(QString("%1 (%2)").arg(tr("All supported types"), extensions.join(" ")));
}
- types << QString("%1 (%2)").arg(tr("Playlists"), g_playlistExt);
+ types << QString("%1 (%2)").arg(tr("Playlists"), PlaylistImporter::supportedExtensions);
types << QString("%1 (*.*)").arg(tr("All files"));
return types;
diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp
index a105454b..4c2e81c5 100644
--- a/src/Thread_Initialization.cpp
+++ b/src/Thread_Initialization.cpp
@@ -65,10 +65,10 @@ g_lamexp_tools[] =
{"a8c50872e544a55495a824426e9378984f2ae01d", "oggenc2_x64.exe", 287},
{"0d9035bb62bdf46a2785261f8be5a4a0972abd15", "shorten.exe", 361},
{"2d08c3586f9cf99f2e4c89ac54eeb595f63aef61", "sox.exe", 1431},
- {"346ce516281c97e92e1b8957ddeca52edcf2d056", "speexdec.exe", UINT_MAX},
+ {"8671e16497a2d217d3707d4aa418678d02b16bcc", "speexdec.exe", 12},
{"d6e0de1e7a2d9dee10d06ae0b6b4f93b63205920", "ttaenc.exe", 341},
{"8c842eef65248b46fa6cb9a9e5714f575672d999", "valdec.exe", 31},
- {"62e2805d1b2eb2a4d86a5ca6e6ea58010d05d2a7", "wget.exe", UINT_MAX},
+ {"62e2805d1b2eb2a4d86a5ca6e6ea58010d05d2a7", "wget.exe", 1114},
{"a7e8aad52213e339ad985829722f35eab62be182", "wupdate.exe", UINT_MAX},
{"b7d14b3540d24df13119a55d97623a61412de6e3", "wvunpack.exe", 4601},
{NULL, NULL, NULL}
|