summaryrefslogtreecommitdiff
path: root/src/mplayerversion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mplayerversion.cpp')
-rw-r--r--src/mplayerversion.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/mplayerversion.cpp b/src/mplayerversion.cpp
index 1444413..1ffe2d0 100644
--- a/src/mplayerversion.cpp
+++ b/src/mplayerversion.cpp
@@ -1,5 +1,5 @@
/* smplayer, GUI front-end for mplayer.
- Copyright (C) 2006-2009 Ricardo Villalba <rvm@escomposlinux.org>
+ Copyright (C) 2006-2010 Ricardo Villalba <rvm@escomposlinux.org>
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
@@ -26,11 +26,12 @@ using namespace Global;
int MplayerVersion::mplayerVersion(QString string) {
//static QRegExp rx_mplayer_revision("^MPlayer (\\S+)-SVN-r(\\d+)-(.*)");
- static QRegExp rx_mplayer_revision("^MPlayer (.*)-r(\\d+)(.*)");
+ static QRegExp rx_mplayer_revision("^MPlayer (.*)[-\\.]r(\\d+)(.*)");
static QRegExp rx_mplayer_version("^MPlayer ([a-z,0-9,.]+)-(.*)");
- static QRegExp rx_mplayer_git("^MPlayer GIT(.*)");
+ static QRegExp rx_mplayer_git("^MPlayer GIT(.*)", Qt::CaseInsensitive);
#ifndef Q_OS_WIN
static QRegExp rx_mplayer_version_ubuntu("^MPlayer (\\d):(\\d)\\.(\\d)~(.*)");
+ static QRegExp rx_mplayer_version_mandriva("^MPlayer ([a-z0-9\\.]+)-\\d+\\.([a-z0-9]+)\\.[\\d\\.]+[a-z]+[\\d\\.]+-(.*)");
#endif
int mplayer_svn = 0;
@@ -51,8 +52,21 @@ int MplayerVersion::mplayerVersion(QString string) {
string = QString("MPlayer %1.%2%3").arg(v1).arg(v2).arg(rest);
qDebug("MplayerVersion::mplayerVersion: line converted to '%s'", string.toUtf8().data());
}
+ // Hack to recognize mplayer version from Mandriva:
+ if (rx_mplayer_version_mandriva.indexIn(string) > -1) {
+ QString v1 = rx_mplayer_version_mandriva.cap(1);
+ QString v2 = rx_mplayer_version_mandriva.cap(2);
+ QString rest = rx_mplayer_version_mandriva.cap(3);
+ string = QString("MPlayer %1%2-%3").arg(v1).arg(v2).arg(rest);
+ qDebug("MplayerVersion::mplayerVersion: line converted to '%s'", string.toUtf8().data());
+ }
#endif
+ if (rx_mplayer_git.indexIn(string) > -1) {
+ qDebug("MplayerVersion::mplayerVersion: MPlayer from git. Assuming >= 1.0rc3");
+ mplayer_svn = MPLAYER_1_0_RC3_SVN;
+ }
+ else
if (rx_mplayer_revision.indexIn(string) > -1) {
mplayer_svn = rx_mplayer_revision.cap(2).toInt();
qDebug("MplayerVersion::mplayerVersion: MPlayer SVN revision found: %d", mplayer_svn);
@@ -69,11 +83,6 @@ int MplayerVersion::mplayerVersion(QString string) {
if (version == "1.0rc1") mplayer_svn = MPLAYER_1_0_RC1_SVN;
else qWarning("MplayerVersion::mplayerVersion: unknown MPlayer version");
}
- else
- if (rx_mplayer_git.indexIn(string) > -1) {
- qDebug("MplayerVersion::mplayerVersion: MPlayer from git. Assuming >= 1.0rc3");
- mplayer_svn = MPLAYER_1_0_RC3_SVN;
- }
if (pref) {
pref->mplayer_detected_version = mplayer_svn;