diff options
Diffstat (limited to 'src/mplayerversion.cpp')
-rw-r--r-- | src/mplayerversion.cpp | 25 |
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; |