diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-09-12 14:59:16 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-09-12 14:59:16 +0000 |
| commit | d3fd87588a559dc23b29106cd8a7283ecc8b4507 (patch) | |
| tree | cd1849b78bf077f05a6bc2c6f0f07e4737d83e62 | |
| parent | 07ae1ec8ca7452899b65b579e65fb1ad28764c58 (diff) | |
| download | qmmp-d3fd87588a559dc23b29106cd8a7283ecc8b4507.tar.gz qmmp-d3fd87588a559dc23b29106cd8a7283ecc8b4507.tar.bz2 qmmp-d3fd87588a559dc23b29106cd8a7283ecc8b4507.zip | |
some changes
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@550 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmp/decoder.cpp | 49 | ||||
| -rw-r--r-- | src/qmmp/decoder.h | 3 | ||||
| -rw-r--r-- | src/qmmp/output.cpp | 52 | ||||
| -rw-r--r-- | src/qmmp/output.h | 5 |
4 files changed, 58 insertions, 51 deletions
diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp index 9d52ee019..3d460e1ba 100644 --- a/src/qmmp/decoder.cpp +++ b/src/qmmp/decoder.cpp @@ -119,18 +119,17 @@ void Decoder::volume(int *l, int *r) } // static methods +QList<DecoderFactory*> *Decoder::m_factories = 0; +QStringList Decoder::m_files; -static QList<DecoderFactory*> *factories = 0; -static QStringList files; - -static void checkFactories() +void Decoder::checkFactories() { QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat ); - if (! factories) + if (!m_factories) { - files.clear(); - factories = new QList<DecoderFactory *>; + m_files.clear(); + m_factories = new QList<DecoderFactory *>; QDir pluginsDir (qApp->applicationDirPath()); pluginsDir.cdUp(); @@ -149,13 +148,13 @@ static void checkFactories() if (factory) { - factories->append(factory); - files << pluginsDir.absoluteFilePath(fileName); + m_factories->append(factory); + m_files << pluginsDir.absoluteFilePath(fileName); } } //remove physically deleted plugins from disabled list QStringList names; - foreach (QString filePath, files) + foreach (QString filePath, m_files) { names.append(filePath.section('/',-1)); } @@ -179,7 +178,7 @@ QStringList Decoder::all() QStringList l; DecoderFactory *fact; - foreach(fact, *factories) + foreach(fact, *m_factories) { l << fact->properties().description; } @@ -189,7 +188,7 @@ QStringList Decoder::all() QStringList Decoder::decoderFiles() { checkFactories(); - return files; + return m_files; } @@ -198,7 +197,7 @@ bool Decoder::supports(const QString &source) checkFactories(); DecoderFactory *fact; - foreach(fact, *factories) + foreach(fact, *m_factories) { if (fact->supports(source) && isEnabled(fact)) { @@ -243,7 +242,7 @@ DecoderFactory *Decoder::findByPath(const QString& source) { checkFactories(); DecoderFactory *fact; - foreach(fact, *factories) + foreach(fact, *m_factories) { if (fact->supports(source) && isEnabled(fact)) { @@ -258,7 +257,7 @@ DecoderFactory *Decoder::findByMime(const QString& type) { checkFactories(); DecoderFactory *fact; - foreach(fact, *factories) + foreach(fact, *m_factories) { if (isEnabled(fact)) { @@ -278,7 +277,7 @@ DecoderFactory *Decoder::findByContent(QIODevice *input) { checkFactories(); DecoderFactory *fact; - foreach(fact, *factories) + foreach(fact, *m_factories) { if (fact->canDecode(input) && isEnabled(fact)) { @@ -292,10 +291,10 @@ DecoderFactory *Decoder::findByContent(QIODevice *input) void Decoder::setEnabled(DecoderFactory* factory, bool enable) { checkFactories(); - if (!factories->contains(factory)) + if (!m_factories->contains(factory)) return; - QString name = files.at(factories->indexOf(factory)).section('/',-1); + QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1); QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat ); QStringList disabledList = settings.value("Decoder/disabled_plugins").toStringList(); @@ -312,9 +311,9 @@ void Decoder::setEnabled(DecoderFactory* factory, bool enable) bool Decoder::isEnabled(DecoderFactory* factory) { checkFactories(); - if (!factories->contains(factory)) + if (!m_factories->contains(factory)) return FALSE; - QString name = files.at(factories->indexOf(factory)).section('/',-1); + QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1); QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat ); QStringList disabledList = settings.value("Decoder/disabled_plugins").toStringList(); return !disabledList.contains(name); @@ -334,7 +333,7 @@ QStringList Decoder::filters() { checkFactories(); QStringList filters; - foreach(DecoderFactory *fact, *factories) + foreach(DecoderFactory *fact, *m_factories) filters << fact->properties().description + " (" + fact->properties().filter + ")"; return filters; } @@ -343,10 +342,10 @@ QStringList Decoder::nameFilters() { checkFactories(); QStringList filters; - for (int i=0; i<factories->size(); ++i) + for (int i=0; i<m_factories->size(); ++i) { - if (isEnabled(factories->at(i))) - filters << factories->at(i)->properties().filter.split(" ", QString::SkipEmptyParts); + if (isEnabled(m_factories->at(i))) + filters << m_factories->at(i)->properties().filter.split(" ", QString::SkipEmptyParts); } return filters; } @@ -354,7 +353,7 @@ QStringList Decoder::nameFilters() QList<DecoderFactory*> *Decoder::decoderFactories() { checkFactories(); - return factories; + return m_factories; } void Decoder::configure(quint32 srate, int chan, int bps) diff --git a/src/qmmp/decoder.h b/src/qmmp/decoder.h index ec82ad096..d1f3818df 100644 --- a/src/qmmp/decoder.h +++ b/src/qmmp/decoder.h @@ -84,6 +84,7 @@ protected: private: void changeVolume(char *data, qint64 size, int chan); + static void checkFactories(); DecoderFactory *m_factory; QList <Effect*> m_effects; @@ -99,6 +100,8 @@ private: bool m_useVolume; int m_volL, m_volR, m_volLF, m_volRF; StateHandler *m_handler; + static QList<DecoderFactory*> *m_factories; + static QStringList m_files; }; diff --git a/src/qmmp/output.cpp b/src/qmmp/output.cpp index 8e4f579f5..11e4eb781 100644 --- a/src/qmmp/output.cpp +++ b/src/qmmp/output.cpp @@ -40,7 +40,7 @@ void Output::setStateHandler(StateHandler *handler) Output::~Output() { - foreach(Visual *visual, m_vis_map.values ()) + /*foreach(Visual *visual, m_vis_map.values ()) { visual->setOutput(0); visual->close(); @@ -48,7 +48,7 @@ Output::~Output() foreach (Visual *visual , visuals) //external { visual->setOutput(0); - } + }*/ } void Output::addVisual ( Visual *v ) @@ -56,7 +56,7 @@ void Output::addVisual ( Visual *v ) if (visuals.indexOf (v) == -1) { visuals.append (v); - v->setOutput(this); +// v->setOutput(this); qDebug("Output: added external visualization"); } } @@ -64,7 +64,7 @@ void Output::addVisual ( Visual *v ) void Output::removeVisual (Visual *v) { - v->setOutput(0); + //v->setOutput(0); visuals.removeAll (v); if (m_vis_map.key(v)) { @@ -93,7 +93,7 @@ void Output::addVisual(VisualFactory *factory, QWidget *parent) visual->setWindowFlags(Qt::Window); if (visual) { - visual->setOutput(this); + //visual->setOutput(this); qDebug("Output: added visual factory: %s", qPrintable(factory->properties().name)); m_vis_map.insert (factory, visual); @@ -218,16 +218,16 @@ void Output::dispatch(const Qmmp::State &state) // static methods -static QList<OutputFactory*> *factories = 0; -static QStringList files; -static QTimer *timer = 0; +QList<OutputFactory*> *Output::m_factories = 0; +QStringList Output::m_files; +QTimer *Output::m_timer = 0; -static void checkFactories() +void Output::checkFactories() { - if ( ! factories ) + if ( ! m_factories ) { - files.clear(); - factories = new QList<OutputFactory *>; + m_files.clear(); + m_factories = new QList<OutputFactory *>; QDir pluginsDir ( qApp->applicationDirPath() ); pluginsDir.cdUp(); @@ -248,7 +248,7 @@ static void checkFactories() if ( factory ) { Output::registerFactory ( factory ); - files << pluginsDir.absoluteFilePath(fileName); + m_files << pluginsDir.absoluteFilePath(fileName); } } } @@ -256,7 +256,7 @@ static void checkFactories() void Output::registerFactory ( OutputFactory *fact ) { - factories->append ( fact ); + m_factories->append ( fact ); } Output *Output::create (QObject *parent) @@ -264,18 +264,18 @@ Output *Output::create (QObject *parent) Output *output = 0; checkFactories(); - if (factories->isEmpty ()) + if (m_factories->isEmpty ()) { qDebug("Output: unable to find output plugins"); return output; } OutputFactory *fact = 0; - foreach(fact, *factories) + foreach(fact, *m_factories) { if (isEnabled(fact)) break; else - fact = factories->at(0); + fact = m_factories->at(0); } QSettings settings (QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat); bool useVolume = !settings.value("Volume/software_volume", FALSE).toBool(); @@ -284,9 +284,9 @@ Output *Output::create (QObject *parent) output = fact->create (parent, useVolume); if (useVolume) { - timer = new QTimer(output); - connect(timer, SIGNAL(timeout()), output, SLOT(checkVolume())); - timer->start(125); + m_timer = new QTimer(output); + connect(m_timer, SIGNAL(timeout()), output, SLOT(checkVolume())); + m_timer->start(125); } else { @@ -299,22 +299,22 @@ Output *Output::create (QObject *parent) QList<OutputFactory*> *Output::outputFactories() { checkFactories(); - return factories; + return m_factories; } QStringList Output::outputFiles() { checkFactories(); - return files; + return m_files; } void Output::setEnabled(OutputFactory* factory) { checkFactories(); - if (!factories->contains(factory)) + if (!m_factories->contains(factory)) return; - QString name = files.at(factories->indexOf(factory)).section('/',-1); + QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1); QSettings settings (QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat); settings.setValue ("Output/plugin_file", name); } @@ -322,9 +322,9 @@ void Output::setEnabled(OutputFactory* factory) bool Output::isEnabled(OutputFactory* factory) { checkFactories(); - if (!factories->contains(factory)) + if (!m_factories->contains(factory)) return FALSE; - QString name = files.at(factories->indexOf(factory)).section('/',-1); + QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1); QSettings settings (QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat); return name == settings.value("Output/plugin_file", "libalsa.so").toString(); } diff --git a/src/qmmp/output.h b/src/qmmp/output.h index 630b17539..7b0ce4a0b 100644 --- a/src/qmmp/output.h +++ b/src/qmmp/output.h @@ -88,6 +88,11 @@ private: QMap<VisualFactory*, Visual*> m_vis_map; //internal visualization int m_bl, m_br; StateHandler *m_handler; + + static void checkFactories(); + static QList<OutputFactory*> *m_factories; + static QStringList m_files; + static QTimer *m_timer; }; |
