diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-10-09 20:01:12 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-10-09 20:01:12 +0000 |
| commit | 7a3c89bf2d71b74a8edbc39ec1264c68307cc888 (patch) | |
| tree | d1d062c44d9d3c29d5299a59305585e87b00190b /src/plugins | |
| parent | 75380f4441ca591b3a501a13da8fe2428f730933 (diff) | |
| download | qmmp-7a3c89bf2d71b74a8edbc39ec1264c68307cc888.tar.gz qmmp-7a3c89bf2d71b74a8edbc39ec1264c68307cc888.tar.bz2 qmmp-7a3c89bf2d71b74a8edbc39ec1264c68307cc888.zip | |
added engine api, enabled mplayer plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1296 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/plugins/Engines/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | src/plugins/Engines/Engines.pro | 4 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/CMakeLists.txt (renamed from src/plugins/Input/mplayer/CMakeLists.txt) | 15 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/mplayer.pro | 34 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/mplayerengine.cpp (renamed from src/plugins/Input/mplayer/decoder_mplayer.cpp) | 101 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/mplayerengine.h (renamed from src/plugins/Input/mplayer/decoder_mplayer.h) | 28 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/mplayerenginefactory.cpp (renamed from src/plugins/Input/mplayer/decodermplayerfactory.cpp) | 66 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/mplayerenginefactory.h (renamed from src/plugins/Input/mplayer/decodermplayerfactory.h) | 23 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/mplayermetadatamodel.cpp (renamed from src/plugins/Input/mplayer/detailsdialog.cpp) | 57 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/mplayermetadatamodel.h (renamed from src/plugins/Input/mplayer/detailsdialog.h) | 25 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/settingsdialog.cpp (renamed from src/plugins/Input/mplayer/settingsdialog.cpp) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/settingsdialog.h (renamed from src/plugins/Input/mplayer/settingsdialog.h) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/settingsdialog.ui (renamed from src/plugins/Input/mplayer/settingsdialog.ui) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_cs.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_de.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_it.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_lt.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_pl.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_ru.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_tr.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_uk_UA.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_zh_CN.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts (renamed from src/plugins/Input/mplayer/translations/mplayer_plugin_zh_TW.ts) | 0 | ||||
| -rw-r--r-- | src/plugins/Engines/mplayer/translations/translations.qrc (renamed from src/plugins/Input/mplayer/translations/translations.qrc) | 0 | ||||
| -rw-r--r-- | src/plugins/Input/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | src/plugins/Input/cue/cueparser.cpp | 5 | ||||
| -rw-r--r-- | src/plugins/Input/flac/cueparser.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/Input/mplayer/detailsdialog.ui | 390 | ||||
| -rw-r--r-- | src/plugins/Input/mplayer/mplayer.pro | 45 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/cueparser.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/plugins.pro | 3 |
32 files changed, 222 insertions, 595 deletions
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt index 00eabaad5..4f4c53f03 100644 --- a/src/plugins/CMakeLists.txt +++ b/src/plugins/CMakeLists.txt @@ -7,3 +7,4 @@ add_subdirectory(PlaylistFormats) add_subdirectory(CommandLineOptions) add_subdirectory(FileDialogs) add_subdirectory(Transports) +add_subdirectory(Engines)
\ No newline at end of file diff --git a/src/plugins/Engines/CMakeLists.txt b/src/plugins/Engines/CMakeLists.txt new file mode 100644 index 000000000..636972563 --- /dev/null +++ b/src/plugins/Engines/CMakeLists.txt @@ -0,0 +1,5 @@ +SET(USE_MPLAYER TRUE CACHE BOOL "enable/disable mplayer support") + +IF(USE_MPLAYER) +add_subdirectory(mplayer) +ENDIF(USE_MPLAYER) diff --git a/src/plugins/Engines/Engines.pro b/src/plugins/Engines/Engines.pro new file mode 100644 index 000000000..1dddcfd5d --- /dev/null +++ b/src/plugins/Engines/Engines.pro @@ -0,0 +1,4 @@ +include(../../../qmmp.pri) + +SUBDIRS += mplayer +TEMPLATE = subdirs diff --git a/src/plugins/Input/mplayer/CMakeLists.txt b/src/plugins/Engines/mplayer/CMakeLists.txt index 2b87c27c7..1dea9477b 100644 --- a/src/plugins/Input/mplayer/CMakeLists.txt +++ b/src/plugins/Engines/mplayer/CMakeLists.txt @@ -28,16 +28,16 @@ link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp) SET(libmplayer_SRCS - decoder_mplayer.cpp - decodermplayerfactory.cpp - detailsdialog.cpp + mplayerenginefactory.cpp + mplayerengine.cpp + mplayermetadatamodel.cpp settingsdialog.cpp ) SET(libmplayer_MOC_HDRS - decodermplayerfactory.h - decoder_mplayer.h - detailsdialog.h + mplayerenginefactory.h + mplayerengine.h + mplayermetadatamodel.h settingsdialog.h ) @@ -52,7 +52,6 @@ QT4_WRAP_CPP(libmplayer_MOC_SRCS ${libmplayer_MOC_HDRS}) SET(libmplayer_UIS settingsdialog.ui - detailsdialog.ui ) QT4_WRAP_UI(libmplayer_UIS_H ${libmplayer_UIS}) @@ -63,5 +62,5 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) ADD_LIBRARY(mplayer MODULE ${libmplayer_SRCS} ${libmplayer_MOC_SRCS} ${libmplayer_RCC_SRCS} ${libmplayer_UIS_H}) add_dependencies(mplayer qmmp) target_link_libraries(mplayer ${QT_LIBRARIES} -lqmmp) -install(TARGETS mplayer DESTINATION ${LIB_DIR}/qmmp/Input) +install(TARGETS mplayer DESTINATION ${LIB_DIR}/qmmp/Engines) diff --git a/src/plugins/Engines/mplayer/mplayer.pro b/src/plugins/Engines/mplayer/mplayer.pro new file mode 100644 index 000000000..dbcde014d --- /dev/null +++ b/src/plugins/Engines/mplayer/mplayer.pro @@ -0,0 +1,34 @@ +include(../../plugins.pri) +HEADERS += mplayerenginefactory.h \ + mplayerengine.h \ + settingsdialog.h \ + mplayermetadatamodel.h +SOURCES += mplayerengine.cpp \ + mplayerenginefactory.cpp \ + settingsdialog.cpp \ + mplayermetadatamodel.cpp +TARGET = $$PLUGINS_PREFIX/Engines/mplayer +QMAKE_CLEAN = $$PLUGINS_PREFIX/Engines/libmplayer.so +INCLUDEPATH += ../../../ +CONFIG += release \ + warn_on \ + plugin +TEMPLATE = lib +QMAKE_LIBDIR += ../../../../lib +LIBS += -lqmmp \ + -L/usr/lib +TRANSLATIONS = translations/mplayer_plugin_ru.ts \ + translations/mplayer_plugin_uk_UA.ts \ + translations/mplayer_plugin_zh_CN.ts \ + translations/mplayer_plugin_zh_TW.ts \ + translations/mplayer_plugin_cs.ts \ + translations/mplayer_plugin_pl.ts \ + translations/mplayer_plugin_de.ts \ + translations/mplayer_plugin_it.ts \ + translations/mplayer_plugin_tr.ts \ + translations/mplayer_plugin_lt.ts +RESOURCES = translations/translations.qrc +isEmpty(LIB_DIR):LIB_DIR = /lib +target.path = $$LIB_DIR/qmmp/Input +INSTALLS += target +FORMS += settingsdialog.ui diff --git a/src/plugins/Input/mplayer/decoder_mplayer.cpp b/src/plugins/Engines/mplayer/mplayerengine.cpp index 862bc3c90..33a2c69ae 100644 --- a/src/plugins/Input/mplayer/decoder_mplayer.cpp +++ b/src/plugins/Engines/mplayer/mplayerengine.cpp @@ -18,12 +18,6 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include <qmmp/buffer.h> -#include <qmmp/output.h> -#include <qmmp/recycler.h> -#include <qmmp/fileinfo.h> -#include <qmmp/decoderfactory.h> - #include <QObject> #include <QProcess> #include <QFile> @@ -34,8 +28,13 @@ #include <QMenu> #include <QRegExp> #include <QSettings> - -#include "decoder_mplayer.h" +#include <qmmp/buffer.h> +#include <qmmp/output.h> +#include <qmmp/recycler.h> +#include <qmmp/fileinfo.h> +#include <qmmp/decoderfactory.h> +#include <qmmp/inputsource.h> +#include "mplayerengine.h" #define MPLAYER_DEBUG @@ -84,10 +83,10 @@ QStringList MplayerInfo::filters() return filters; } -DecoderMplayer::DecoderMplayer(QObject *parent, DecoderFactory *d, const QString &url) - : Decoder(parent, d) +MplayerEngine::MplayerEngine(QObject *parent) + : AbstractEngine(parent) { - m_url = url; + //m_url = url; m_bitrate = 0; m_samplerate = 0; m_channels = 0; @@ -95,15 +94,46 @@ DecoderMplayer::DecoderMplayer(QObject *parent, DecoderFactory *d, const QString m_length = 0; m_currentTime = 0; m_process = new QProcess(this); + connect(m_process, SIGNAL(readyReadStandardOutput()), SLOT(readStdOut())); } -DecoderMplayer::~DecoderMplayer() +MplayerEngine::~MplayerEngine() { qDebug("%s",__FUNCTION__); m_process->close(); } -bool DecoderMplayer::initialize() +bool MplayerEngine::play() +{ + if(m_process->state() != QProcess::NotRunning) + return FALSE; + startMplayerProcess(); + return TRUE; +} + +bool MplayerEngine::enqueue(InputSource *source) +{ + QString url = source->url(); + QStringList filters = MplayerInfo::filters(); + bool supports = FALSE; + foreach(QString filter, filters) + { + QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard); + supports = regexp.exactMatch(source->url()); + if(supports) + break; + } + if(!supports) + return FALSE; + source->deleteLater(); + if(m_process->state() == QProcess::NotRunning) + m_url = url; + else + m_files.enqueue(url); + return TRUE; +} + +bool MplayerEngine::initialize() { FileInfo *info = MplayerInfo::createFileInfo(m_url); m_length = info->length(); @@ -122,22 +152,21 @@ bool DecoderMplayer::initialize() m_args << QString("-autosync %1").arg(settings.value("autosync_factor", 100).toInt()); m_args << m_url; - connect(m_process, SIGNAL(readyReadStandardOutput()), SLOT(readStdOut())); return TRUE; } -qint64 DecoderMplayer::totalTime() +qint64 MplayerEngine::totalTime() { return m_length * 1000; } -void DecoderMplayer::seek(qint64 pos) +void MplayerEngine::seek(qint64 pos) { if (m_process->state() == QProcess::Running) m_process->write(QString("seek %1 \n").arg(pos/1000 - m_currentTime).toLocal8Bit ()); } -void DecoderMplayer::stop() +void MplayerEngine::stop() { if (m_process->state() == QProcess::Running) { @@ -145,31 +174,27 @@ void DecoderMplayer::stop() m_process->waitForFinished(1500); } StateHandler::instance()->dispatch(Qmmp::Stopped); + m_files.clear(); + m_url.clear(); } -void DecoderMplayer::pause() +void MplayerEngine::pause() { m_process->write("pause\n"); } -void DecoderMplayer::setEQ(double bands[10], double preamp) +void MplayerEngine::setEQ(double bands[10], double preamp) { Q_UNUSED(bands[10]); Q_UNUSED(preamp); } -void DecoderMplayer::setEQEnabled(bool on) +void MplayerEngine::setEQEnabled(bool on) { Q_UNUSED(on); } -void DecoderMplayer::run() -{ - QMetaObject::invokeMethod(this, "startMplayerProcess"); - StateHandler::instance()->dispatch(Qmmp::Playing); -} - -void DecoderMplayer::readStdOut() +void MplayerEngine::readStdOut() { QString line = QString::fromLocal8Bit(m_process->readAll ()).trimmed(); QStringList lines = line.split("\n"); @@ -192,8 +217,19 @@ void DecoderMplayer::readStdOut() else if (rx_end.indexIn(line) > -1) { if (m_process->state() == QProcess::Running) - m_process->waitForFinished(1500); - finish(); + m_process->waitForFinished(3500); + emit playbackFinished(); + if(!m_files.isEmpty()) + { + StateHandler::instance()->dispatch(Qmmp::Stopped); + m_url = m_files.dequeue(); + startMplayerProcess(); + } + else + { + StateHandler::instance()->dispatch(Qmmp::Stopped); + return; + } } else if (rx_quit.indexIn(line) > -1) { @@ -215,7 +251,12 @@ void DecoderMplayer::readStdOut() } } -void DecoderMplayer::startMplayerProcess() +void MplayerEngine::startMplayerProcess() { + initialize(); m_process->start ("mplayer", m_args); + StateHandler::instance()->dispatch(Qmmp::Playing); + FileInfo *info = MplayerInfo::createFileInfo(m_url); + StateHandler::instance()->dispatch(info->metaData()); + delete info; } diff --git a/src/plugins/Input/mplayer/decoder_mplayer.h b/src/plugins/Engines/mplayer/mplayerengine.h index 38d47e629..cc6b12d16 100644 --- a/src/plugins/Input/mplayer/decoder_mplayer.h +++ b/src/plugins/Engines/mplayer/mplayerengine.h @@ -18,18 +18,21 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef DECODER_MPLAYER_H -#define DECODER_MPLAYER_H +#ifndef MPLAYERENGINE_H +#define MPLAYERENGINE_H -#include <qmmp/decoder.h> +#include <QQueue> +#include <QString> #include <qmmp/statehandler.h> +#include <qmmp/abstractengine.h> class Output; class QIDevice; class DecoderPhonon; class QMenu; class QProcess; - +class FileInfo; +class InputSource; class MplayerInfo { @@ -38,16 +41,16 @@ public: static QStringList filters(); }; - - -class DecoderMplayer : public Decoder +class MplayerEngine : public AbstractEngine { Q_OBJECT public: - DecoderMplayer(QObject *, DecoderFactory *, const QString &url); - virtual ~DecoderMplayer(); + MplayerEngine(QObject *parent); + virtual ~MplayerEngine(); - // Standard Decoder API + // Engine API + bool play(); + bool enqueue(InputSource *source); bool initialize(); qint64 totalTime(); void seek(qint64); @@ -63,8 +66,6 @@ private slots: void startMplayerProcess(); private: - // thread run function - void run(); int mplayer_pipe[2]; QString m_url; QStringList m_args; @@ -75,7 +76,8 @@ private: int m_bitsPerSample; qint64 m_currentTime; qint64 m_length; + QQueue <QString> m_files; }; -#endif // DECODER_MPLAYER_H +#endif // MPLAYERENGINE_H diff --git a/src/plugins/Input/mplayer/decodermplayerfactory.cpp b/src/plugins/Engines/mplayer/mplayerenginefactory.cpp index 15db7cd34..33ca2e4cf 100644 --- a/src/plugins/Input/mplayer/decodermplayerfactory.cpp +++ b/src/plugins/Engines/mplayer/mplayerenginefactory.cpp @@ -19,34 +19,17 @@ ***************************************************************************/ #include <QtGui> -#include "detailsdialog.h" +#include "mplayermetadatamodel.h" #include "settingsdialog.h" -#include "decoder_mplayer.h" -#include "decodermplayerfactory.h" +#include "mplayerengine.h" +#include "mplayerenginefactory.h" -// DecoderMplayerFactory +// MplayerEngineFactory -bool DecoderMplayerFactory::supports(const QString &source) const +const EngineProperties MplayerEngineFactory::properties() const { - QStringList filters = MplayerInfo::filters(); - foreach(QString filter, filters) - { - QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard); - if (regexp.exactMatch(source)) - return TRUE; - } - return FALSE; -} - -bool DecoderMplayerFactory::canDecode(QIODevice *) const -{ - return FALSE; -} - -const DecoderProperties DecoderMplayerFactory::properties() const -{ - DecoderProperties properties; + EngineProperties properties; properties.name = tr("Mplayer Plugin"); properties.shortName = "mplayer"; properties.filter = MplayerInfo::filters().join(" "); @@ -55,20 +38,27 @@ const DecoderProperties DecoderMplayerFactory::properties() const properties.protocols = "file"; properties.hasAbout = TRUE; properties.hasSettings = TRUE; - properties.noInput = TRUE; - properties.noOutput = TRUE; return properties; } -Decoder *DecoderMplayerFactory::create(QObject *parent, QIODevice *input, - Output *output, const QString &url) +bool MplayerEngineFactory::supports(const QString &source) const +{ + QStringList filters = MplayerInfo::filters(); + foreach(QString filter, filters) + { + QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard); + if (regexp.exactMatch(source)) + return TRUE; + } + return FALSE; +} + +AbstractEngine *MplayerEngineFactory::create(QObject *parent) { - Q_UNUSED(input); - Q_UNUSED(output); - return new DecoderMplayer(parent, this, url); + return new MplayerEngine(parent); } -QList<FileInfo *> DecoderMplayerFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> MplayerEngineFactory::createPlayList(const QString &fileName, bool useMetaData) { Q_UNUSED(useMetaData); QList<FileInfo *> info; @@ -76,20 +66,18 @@ QList<FileInfo *> DecoderMplayerFactory::createPlayList(const QString &fileName, return info; } -QObject* DecoderMplayerFactory::showDetails(QWidget *parent, const QString &path) +MetaDataModel* MplayerEngineFactory::createMetaDataModel(const QString &path, QObject *parent) { - DetailsDialog *d = new DetailsDialog(path, parent); - d->show(); - return d; + return new MplayerMetaDataModel(path, parent); } -void DecoderMplayerFactory::showSettings(QWidget *parent) +void MplayerEngineFactory::showSettings(QWidget *parent) { SettingsDialog *s = new SettingsDialog(parent); s->show(); } -void DecoderMplayerFactory::showAbout(QWidget *parent) +void MplayerEngineFactory::showAbout(QWidget *parent) { QMessageBox::about (parent, tr("About MPlayer Plugin"), tr("Qmmp MPlayer Plugin")+"\n"+ @@ -97,7 +85,7 @@ void DecoderMplayerFactory::showAbout(QWidget *parent) tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>")); } -QTranslator *DecoderMplayerFactory::createTranslator(QObject *parent) +QTranslator *MplayerEngineFactory::createTranslator(QObject *parent) { QTranslator *translator = new QTranslator(parent); QString locale = Qmmp::systemLanguageID(); @@ -105,4 +93,4 @@ QTranslator *DecoderMplayerFactory::createTranslator(QObject *parent) return translator; } -Q_EXPORT_PLUGIN(DecoderMplayerFactory) +Q_EXPORT_PLUGIN(MplayerEngineFactory) diff --git a/src/plugins/Input/mplayer/decodermplayerfactory.h b/src/plugins/Engines/mplayer/mplayerenginefactory.h index a752d5a43..4c43b15a2 100644 --- a/src/plugins/Input/mplayer/decodermplayerfactory.h +++ b/src/plugins/Engines/mplayer/mplayerenginefactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2008 by Ilya Kotov * + * Copyright (C) 2006-2009 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -17,31 +17,30 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef DECODERMPLAYERFACTORY_H -#define DECODERMPLAYERFACTORY_H +#ifndef MPLAYERENGINEFACTORY_H +#define MPLAYERENGINEFACTORY_H #include <QObject> #include <QString> #include <QIODevice> #include <QWidget> -#include <qmmp/decoder.h> -#include <qmmp/output.h> -#include <qmmp/decoderfactory.h> +#include <qmmp/abstractengine.h> +#include <qmmp/enginefactory.h> #include <qmmp/fileinfo.h> +#include <qmmp/metadatamodel.h> -class DecoderMplayerFactory : public QObject, DecoderFactory +class MplayerEngineFactory : public QObject, EngineFactory { Q_OBJECT -Q_INTERFACES(DecoderFactory); +Q_INTERFACES(EngineFactory); public: + const EngineProperties properties() const; bool supports(const QString &source) const; - bool canDecode(QIODevice *input) const; - const DecoderProperties properties() const; - Decoder *create(QObject *, QIODevice *, Output *, const QString &); + AbstractEngine *create(QObject *parent = 0); QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); - QObject* showDetails(QWidget *parent, const QString &path); + MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); QTranslator *createTranslator(QObject *parent); diff --git a/src/plugins/Input/mplayer/detailsdialog.cpp b/src/plugins/Engines/mplayer/mplayermetadatamodel.cpp index b541c1162..7aa8b3e3a 100644 --- a/src/plugins/Input/mplayer/detailsdialog.cpp +++ b/src/plugins/Engines/mplayer/mplayermetadatamodel.cpp @@ -18,20 +18,25 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include <QProcess> #include <QRegExp> #include <QFileInfo> +#include <QStringList> +#include <QProcess> +#include "mplayermetadatamodel.h" + +MplayerMetaDataModel::MplayerMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent) +{ + m_path = path; +} -#include "detailsdialog.h" +MplayerMetaDataModel::~MplayerMetaDataModel() +{} -DetailsDialog::DetailsDialog(const QString &path, QWidget *parent) - : QDialog(parent) +QHash<QString, QString> MplayerMetaDataModel::audioProperties() { - ui.setupUi(this); - setAttribute(Qt::WA_DeleteOnClose); - ui.pathLineEdit->setText(path); - ui.sizeLabel->setText(QString("%1 ").arg(QFileInfo(path).size ()/1024)+tr("KB")); - setWindowTitle(QFileInfo(path).fileName()); + QHash<QString, QString> vp; + QHash<QString, QString> ap; + ap.insert(tr("Size"), QString("%1 ").arg(QFileInfo(m_path).size ()/1024)+tr("KB")); //regular expressions QRegExp rx_id_length("^ID_LENGTH=([0-9,.]+)*"); QRegExp rx_id_demuxer("^ID_DEMUXER=(.*)"); @@ -56,7 +61,7 @@ DetailsDialog::DetailsDialog(const QString &path, QWidget *parent) args << "null"; args << "-ao"; args << "null"; - args << path; + args << m_path; QProcess mplayer_process; mplayer_process.start("mplayer", args); mplayer_process.waitForFinished(); @@ -68,40 +73,34 @@ DetailsDialog::DetailsDialog(const QString &path, QWidget *parent) { //general info if (rx_id_length.indexIn(line) > -1) - ui.lengthLabel->setText(rx_id_length.cap(1)); //TODO use hh:mm:ss format + ap.insert(tr("Length"),rx_id_length.cap(1)); //TODO use hh:mm:ss format else if (rx_id_demuxer.indexIn(line) > -1) - ui.demuxerLabel->setText(rx_id_demuxer.cap(1)); + ap.insert(tr("Demuxer"), rx_id_demuxer.cap(1)); //video info else if (rx_id_video_format.indexIn(line) > -1) - ui.videoFormatLabel->setText(rx_id_video_format.cap(1)); + ap.insert(tr("Video format"), rx_id_video_format.cap(1)); else if (rx_id_video_fps.indexIn(line) > -1) - ui.fpsLabel->setText(rx_id_video_fps.cap(1)); + ap.insert(tr("FPS"), rx_id_video_fps.cap(1)); else if (rx_id_video_codec.indexIn(line) > -1) - ui.videoCodecLabel->setText(rx_id_video_codec.cap(1)); + ap.insert(tr("Video codec"), rx_id_video_codec.cap(1)); else if (rx_id_video_aspect.indexIn(line) > -1) - ui. ratioLabel->setText(rx_id_video_aspect.cap(1)); + ap.insert(tr("Aspect ratio"),rx_id_video_aspect.cap(1)); else if (rx_id_video_bitrate.indexIn(line) > -1) - ui.videoBitrateLabel->setText(rx_id_video_bitrate.cap(1)); + ap.insert(tr("Video bitrate"), rx_id_video_bitrate.cap(1)); else if (rx_id_width.indexIn(line) > -1) width = rx_id_width.cap(1).toInt(); else if (rx_id_height.indexIn(line) > -1) height = rx_id_height.cap(1).toInt(); //audio info else if (rx_id_audio_codec.indexIn(line) > -1) - ui.audioCodecLabel->setText(rx_id_audio_codec.cap(1)); + ap.insert(tr("Audio codec"),rx_id_audio_codec.cap(1)); else if (rx_id_audio_rate.indexIn(line) > -1) - ui.sampleRateLabel->setText(rx_id_audio_rate.cap(1)); + ap.insert(tr("Sample rate"), rx_id_audio_rate.cap(1)); else if (rx_id_audio_bitrate.indexIn(line) > -1) - ui.audioBitrateLabel->setText(rx_id_audio_bitrate.cap(1)); + ap.insert(tr("Audio bitrate"), rx_id_audio_bitrate.cap(1)); else if (rx_id_audio_nch.indexIn(line) > -1) - ui.channelsLabel->setText(rx_id_audio_nch.cap(1)); + ap.insert(tr("Channels"), rx_id_audio_nch.cap(1)); } - ui.resolutionLabel->setText(QString("%1x%2").arg(width).arg(height)); + vp.insert(tr("Resolution"), QString("%1x%2").arg(width).arg(height)); + return ap; } - - -DetailsDialog::~DetailsDialog() -{ -} - - diff --git a/src/plugins/Input/mplayer/detailsdialog.h b/src/plugins/Engines/mplayer/mplayermetadatamodel.h index 0d4af20a7..3cfe4662c 100644 --- a/src/plugins/Input/mplayer/detailsdialog.h +++ b/src/plugins/Engines/mplayer/mplayermetadatamodel.h @@ -17,27 +17,22 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef DETAILSDIALOG_H -#define DETAILSDIALOG_H -#include <QDialog> +#ifndef MPLAYERMETADATAMODEL_H +#define MPLAYERMETADATAMODEL_H -#include "ui_detailsdialog.h" +#include <qmmp/metadatamodel.h> -/** - @author Ilya Kotov <forkotov02@hotmail.ru> -*/ -class DetailsDialog : public QDialog +class MplayerMetaDataModel : public MetaDataModel { - Q_OBJECT +Q_OBJECT public: - DetailsDialog(const QString &path, QWidget *parent = 0); - - ~DetailsDialog(); + MplayerMetaDataModel(const QString &path, QObject *parent); + ~MplayerMetaDataModel(); + QHash<QString, QString> audioProperties(); private: - Ui::DetailsDialog ui; - + QString m_path; }; -#endif +#endif // MPLAYERMETADATAMODEL_H diff --git a/src/plugins/Input/mplayer/settingsdialog.cpp b/src/plugins/Engines/mplayer/settingsdialog.cpp index 029890eb1..029890eb1 100644 --- a/src/plugins/Input/mplayer/settingsdialog.cpp +++ b/src/plugins/Engines/mplayer/settingsdialog.cpp diff --git a/src/plugins/Input/mplayer/settingsdialog.h b/src/plugins/Engines/mplayer/settingsdialog.h index 9ba56bce8..9ba56bce8 100644 --- a/src/plugins/Input/mplayer/settingsdialog.h +++ b/src/plugins/Engines/mplayer/settingsdialog.h diff --git a/src/plugins/Input/mplayer/settingsdialog.ui b/src/plugins/Engines/mplayer/settingsdialog.ui index 86dbfe8f6..86dbfe8f6 100644 --- a/src/plugins/Input/mplayer/settingsdialog.ui +++ b/src/plugins/Engines/mplayer/settingsdialog.ui diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_cs.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts index 26f09d606..26f09d606 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_cs.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_de.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts index 2f029c38b..2f029c38b 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_de.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_it.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts index f405e4505..f405e4505 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_it.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_lt.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts index 87d1c6b33..87d1c6b33 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_lt.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_pl.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts index fadc08ecc..fadc08ecc 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_pl.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_ru.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts index b4169c849..b4169c849 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_ru.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_tr.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts index f1ba30cb0..f1ba30cb0 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_tr.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_uk_UA.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts index 95a95ccb6..95a95ccb6 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_uk_UA.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_zh_CN.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts index a20be020d..a20be020d 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_zh_CN.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_zh_TW.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts index 66c75d389..66c75d389 100644 --- a/src/plugins/Input/mplayer/translations/mplayer_plugin_zh_TW.ts +++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts diff --git a/src/plugins/Input/mplayer/translations/translations.qrc b/src/plugins/Engines/mplayer/translations/translations.qrc index 7a98c5a7f..7a98c5a7f 100644 --- a/src/plugins/Input/mplayer/translations/translations.qrc +++ b/src/plugins/Engines/mplayer/translations/translations.qrc diff --git a/src/plugins/Input/CMakeLists.txt b/src/plugins/Input/CMakeLists.txt index b6cb405d5..2d2ca0a49 100644 --- a/src/plugins/Input/CMakeLists.txt +++ b/src/plugins/Input/CMakeLists.txt @@ -11,7 +11,6 @@ SET(USE_WAVPACK TRUE CACHE BOOL "enable/disable wavpack plugin") SET(USE_MODPLUG TRUE CACHE BOOL "enable/disable modplug plugin") SET(USE_AAC TRUE CACHE BOOL "enable/disable aac plugin") SET(USE_CUE TRUE CACHE BOOL "enable/disable cue plugin") -#SET(USE_MPLAYER TRUE CACHE BOOL "enable/disable mplayer support") SET(USE_CDA TRUE CACHE BOOL "enable/disable cd audio support") pkg_check_modules(TAGLIB taglib) @@ -56,10 +55,6 @@ IF(USE_CUE) add_subdirectory(cue) ENDIF(USE_CUE) -IF(USE_MPLAYER) -#add_subdirectory(mplayer) -ENDIF(USE_MPLAYER) - IF(USE_CDA) add_subdirectory(cdaudio) ENDIF(USE_CDA) diff --git a/src/plugins/Input/cue/cueparser.cpp b/src/plugins/Input/cue/cueparser.cpp index b6fb8594d..ba4305bfc 100644 --- a/src/plugins/Input/cue/cueparser.cpp +++ b/src/plugins/Input/cue/cueparser.cpp @@ -25,6 +25,7 @@ #include <QTextCodec> #include <qmmp/decoder.h> +#include <qmmp/metadatamanager.h> #include "cueparser.h" @@ -113,7 +114,7 @@ CUEParser::CUEParser(const QString &fileName) m_infoList[i].setLength(m_infoList[i+1].length() - m_infoList[i].length()); else { - QList <FileInfo *> f_list = Decoder::createPlayList(m_files[i], FALSE); + QList <FileInfo *> f_list = MetaDataManager::instance()->createPlayList(m_files[i], FALSE); qint64 l = f_list.isEmpty() ? 0 : f_list.at(0)->length() * 1000; if (l > m_infoList[i].length()) m_infoList[i].setLength(l - m_infoList[i].length()); @@ -123,7 +124,7 @@ CUEParser::CUEParser(const QString &fileName) } //calculate last item length - QList <FileInfo *> f_list = Decoder::createPlayList(m_filePath, FALSE); + QList <FileInfo *> f_list = MetaDataManager::instance()->createPlayList(m_filePath, FALSE); qint64 l = f_list.isEmpty() ? 0 : f_list.at(0)->length() * 1000; if (l > m_infoList.last().length()) m_infoList.last().setLength(l - m_infoList.last().length()); diff --git a/src/plugins/Input/flac/cueparser.cpp b/src/plugins/Input/flac/cueparser.cpp index 20bf94ec7..75b538bcf 100644 --- a/src/plugins/Input/flac/cueparser.cpp +++ b/src/plugins/Input/flac/cueparser.cpp @@ -21,7 +21,7 @@ #include <QTextStream> #include <QTextCodec> -#include <qmmp/decoder.h> +#include <qmmp/metadatamanager.h> #include "cueparser.h" @@ -94,7 +94,7 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName) for (int i = 0; i < m_infoList.size() - 1; ++i) m_infoList[i].setLength(m_infoList[i+1].length() - m_infoList[i].length()); //calculate last item length - QList <FileInfo *> f_list = Decoder::createPlayList(m_filePath, FALSE); + QList <FileInfo *> f_list = MetaDataManager::instance()->createPlayList(m_filePath, FALSE); qint64 l = f_list.isEmpty() ? 0 : f_list.at(0)->length() * 1000; if (l > m_infoList.last().length()) m_infoList.last().setLength(l - m_infoList.last().length()); diff --git a/src/plugins/Input/mplayer/detailsdialog.ui b/src/plugins/Input/mplayer/detailsdialog.ui deleted file mode 100644 index 37358df2b..000000000 --- a/src/plugins/Input/mplayer/detailsdialog.ui +++ /dev/null @@ -1,390 +0,0 @@ -<ui version="4.0" > - <class>DetailsDialog</class> - <widget class="QDialog" name="DetailsDialog" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>415</width> - <height>351</height> - </rect> - </property> - <property name="windowTitle" > - <string>Details</string> - </property> - <layout class="QGridLayout" name="gridLayout_4" > - <property name="leftMargin" > - <number>5</number> - </property> - <property name="topMargin" > - <number>9</number> - </property> - <property name="rightMargin" > - <number>5</number> - </property> - <property name="bottomMargin" > - <number>5</number> - </property> - <item row="0" column="0" colspan="2" > - <widget class="QGroupBox" name="groupBox_3" > - <property name="title" > - <string>General information</string> - </property> - <layout class="QGridLayout" name="gridLayout" > - <item row="0" column="0" > - <widget class="QLabel" name="label" > - <property name="text" > - <string>File path:</string> - </property> - </widget> - </item> - <item row="0" column="1" > - <widget class="QLineEdit" name="pathLineEdit" > - <property name="readOnly" > - <bool>true</bool> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QLabel" name="label_2" > - <property name="text" > - <string>Size:</string> - </property> - </widget> - </item> - <item row="1" column="1" > - <widget class="QLabel" name="sizeLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="2" column="0" > - <widget class="QLabel" name="label_4" > - <property name="text" > - <string>Demuxer:</string> - </property> - </widget> - </item> - <item row="2" column="1" > - <widget class="QLabel" name="demuxerLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="3" column="0" > - <widget class="QLabel" name="label_3" > - <property name="text" > - <string>Length:</string> - </property> - </widget> - </item> - <item row="3" column="1" > - <widget class="QLabel" name="lengthLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item row="1" column="0" > - <widget class="QGroupBox" name="groupBox" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Preferred" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title" > - <string>Video</string> - </property> - <layout class="QGridLayout" name="gridLayout_2" > - <item row="0" column="0" > - <widget class="QLabel" name="label_9" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Resolution:</string> - </property> - </widget> - </item> - <item row="0" column="1" colspan="2" > - <widget class="QLabel" name="resolutionLabel" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Expanding" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QLabel" name="label_10" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Bitrate:</string> - </property> - </widget> - </item> - <item row="1" column="1" colspan="2" > - <widget class="QLabel" name="videoBitrateLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="2" column="0" > - <widget class="QLabel" name="label_11" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Format:</string> - </property> - </widget> - </item> - <item row="2" column="1" colspan="2" > - <widget class="QLabel" name="videoFormatLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="3" column="0" > - <widget class="QLabel" name="label_12" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>FPS:</string> - </property> - </widget> - </item> - <item row="3" column="1" colspan="2" > - <widget class="QLabel" name="fpsLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="4" column="0" > - <widget class="QLabel" name="label_13" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Codec:</string> - </property> - </widget> - </item> - <item row="4" column="1" colspan="2" > - <widget class="QLabel" name="videoCodecLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="5" column="0" > - <widget class="QLabel" name="label_19" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Aspect ratio:</string> - </property> - </widget> - </item> - <item row="5" column="1" colspan="2" > - <widget class="QLabel" name="ratioLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item row="1" column="1" > - <widget class="QGroupBox" name="groupBox_2" > - <property name="title" > - <string>Audio</string> - </property> - <layout class="QGridLayout" name="gridLayout_3" > - <item row="0" column="0" > - <widget class="QLabel" name="label_21" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Codec:</string> - </property> - </widget> - </item> - <item row="0" column="2" > - <widget class="QLabel" name="audioCodecLabel" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Expanding" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QLabel" name="label_23" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Sample rate:</string> - </property> - </widget> - </item> - <item row="1" column="2" > - <widget class="QLabel" name="sampleRateLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="2" column="0" > - <widget class="QLabel" name="label_25" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Bitrate:</string> - </property> - </widget> - </item> - <item row="2" column="2" > - <widget class="QLabel" name="audioBitrateLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="3" column="0" > - <widget class="QLabel" name="label_24" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Channels:</string> - </property> - </widget> - </item> - <item row="3" column="2" > - <widget class="QLabel" name="channelsLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="4" column="0" colspan="2" > - <spacer name="verticalSpacer" > - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0" > - <size> - <width>20</width> - <height>37</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - </item> - <item row="2" column="0" colspan="2" > - <layout class="QHBoxLayout" name="horizontalLayout" > - <property name="spacing" > - <number>0</number> - </property> - <item> - <spacer name="horizontalSpacer" > - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0" > - <size> - <width>330</width> - <height>24</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="closeButton" > - <property name="text" > - <string>Close</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>closeButton</sender> - <signal>clicked()</signal> - <receiver>DetailsDialog</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel" > - <x>381</x> - <y>334</y> - </hint> - <hint type="destinationlabel" > - <x>23</x> - <y>324</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/src/plugins/Input/mplayer/mplayer.pro b/src/plugins/Input/mplayer/mplayer.pro deleted file mode 100644 index 4be7bbd50..000000000 --- a/src/plugins/Input/mplayer/mplayer.pro +++ /dev/null @@ -1,45 +0,0 @@ -include(../../plugins.pri) - -HEADERS += decodermplayerfactory.h \ - decoder_mplayer.h \ - detailsdialog.h \ - settingsdialog.h - -SOURCES += decoder_mplayer.cpp \ - decodermplayerfactory.cpp \ - detailsdialog.cpp \ - settingsdialog.cpp - -TARGET =$$PLUGINS_PREFIX/Input/mplayer -QMAKE_CLEAN =$$PLUGINS_PREFIX/Input/libmplayer.so - -INCLUDEPATH += ../../../ -CONFIG += release \ -warn_on \ -plugin - -TEMPLATE = lib - -QMAKE_LIBDIR += ../../../../lib -LIBS += -lqmmp -L/usr/lib - -TRANSLATIONS = translations/mplayer_plugin_ru.ts \ - translations/mplayer_plugin_uk_UA.ts \ - translations/mplayer_plugin_zh_CN.ts \ - translations/mplayer_plugin_zh_TW.ts \ - translations/mplayer_plugin_cs.ts \ - translations/mplayer_plugin_pl.ts \ - translations/mplayer_plugin_de.ts \ - translations/mplayer_plugin_it.ts \ - translations/mplayer_plugin_tr.ts \ - translations/mplayer_plugin_lt.ts -RESOURCES = translations/translations.qrc - -isEmpty(LIB_DIR){ - LIB_DIR = /lib -} -target.path = $$LIB_DIR/qmmp/Input -INSTALLS += target - -FORMS += detailsdialog.ui \ - settingsdialog.ui diff --git a/src/plugins/Input/wavpack/cueparser.cpp b/src/plugins/Input/wavpack/cueparser.cpp index 41190be4b..cf63e41a1 100644 --- a/src/plugins/Input/wavpack/cueparser.cpp +++ b/src/plugins/Input/wavpack/cueparser.cpp @@ -20,9 +20,7 @@ #include <QTextStream> #include <QTextCodec> - -#include <qmmp/decoder.h> - +#include <qmmp/metadatamanager.h> #include "cueparser.h" CUEParser::CUEParser(const QByteArray &array, const QString &fileName) @@ -94,7 +92,7 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName) for (int i = 0; i < m_infoList.size() - 1; ++i) m_infoList[i].setLength(m_infoList[i+1].length() - m_infoList[i].length()); //calculate last item length - QList <FileInfo *> f_list = Decoder::createPlayList(m_filePath, FALSE); + QList <FileInfo *> f_list = MetaDataManager::instance()->createPlayList(m_filePath, FALSE); qint64 l = f_list.isEmpty() ? 0 : f_list.at(0)->length() * 1000; if (l > m_infoList.last().length()) m_infoList.last().setLength(l - m_infoList.last().length()); diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index dfa993d89..17c618685 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -2,7 +2,8 @@ SUBDIRS += Input \ Output \ General \ Visual \ - Transports + Transports \ + Engines unix:SUBDIRS += Effect \ PlaylistFormats \ |
