aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-09-29 19:39:16 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-09-29 19:39:16 +0000
commitd0e69a239a8aed7ff06c470e0b2e7e81c0313f21 (patch)
tree00de3ce2bccf0656fe8b6267fab769bee4f96a18
parentda82e9b8ea8e24a09e1e0a8ebbe890b81abf9810 (diff)
downloadqmmp-d0e69a239a8aed7ff06c470e0b2e7e81c0313f21.tar.gz
qmmp-d0e69a239a8aed7ff06c470e0b2e7e81c0313f21.tar.bz2
qmmp-d0e69a239a8aed7ff06c470e0b2e7e81c0313f21.zip
short name based plugin identification
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@571 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/Effect/srconverter/effectsrconverterfactory.cpp1
-rw-r--r--src/plugins/Input/mad/decodermadfactory.cpp1
-rw-r--r--src/plugins/Input/vorbis/decodervorbisfactory.cpp1
-rw-r--r--src/plugins/Output/alsa/outputalsafactory.cpp1
-rw-r--r--src/plugins/Visual/analyzer/visualanalyzerfactory.cpp1
-rw-r--r--src/qmmp/decoder.cpp18
-rw-r--r--src/qmmp/decoderfactory.h1
-rw-r--r--src/qmmp/effect.cpp10
-rw-r--r--src/qmmp/effectfactory.h9
-rw-r--r--src/qmmp/output.cpp21
-rw-r--r--src/qmmp/outputfactory.h9
-rw-r--r--src/qmmp/visual.cpp10
-rw-r--r--src/qmmp/visualfactory.h9
13 files changed, 54 insertions, 38 deletions
diff --git a/src/plugins/Effect/srconverter/effectsrconverterfactory.cpp b/src/plugins/Effect/srconverter/effectsrconverterfactory.cpp
index d25296004..f7606d641 100644
--- a/src/plugins/Effect/srconverter/effectsrconverterfactory.cpp
+++ b/src/plugins/Effect/srconverter/effectsrconverterfactory.cpp
@@ -28,6 +28,7 @@ const EffectProperties EffectSRConverterFactory::properties() const
{
EffectProperties properties;
properties.name = tr("SRC Plugin");
+ properties.shortName = "SRC";
properties.hasSettings = TRUE;
properties.hasAbout = TRUE;
return properties;
diff --git a/src/plugins/Input/mad/decodermadfactory.cpp b/src/plugins/Input/mad/decodermadfactory.cpp
index cc0ecd020..0d66c68a2 100644
--- a/src/plugins/Input/mad/decodermadfactory.cpp
+++ b/src/plugins/Input/mad/decodermadfactory.cpp
@@ -85,6 +85,7 @@ const DecoderProperties DecoderMADFactory::properties() const
{
DecoderProperties properties;
properties.name = tr("MPEG Plugin");
+ properties.shortName = "mad";
properties.filter = "*.mp1 *.mp2 *.mp3 *.wav";
properties.description = tr("MPEG Files");
properties.contentType = "audio/mp3;audio/mpeg";
diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp
index 095f6b5ff..2bc97a8f7 100644
--- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp
+++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp
@@ -48,6 +48,7 @@ const DecoderProperties DecoderVorbisFactory::properties() const
{
DecoderProperties properties;
properties.name = tr("Ogg Vorbis Plugin");
+ properties.shortName = "vorbis";
properties.filter = "*.ogg";
properties.description = tr("Ogg Vorbis Files");
properties.contentType = "application/ogg;audio/x-vorbis+ogg";
diff --git a/src/plugins/Output/alsa/outputalsafactory.cpp b/src/plugins/Output/alsa/outputalsafactory.cpp
index 3b90073a5..a708d9df0 100644
--- a/src/plugins/Output/alsa/outputalsafactory.cpp
+++ b/src/plugins/Output/alsa/outputalsafactory.cpp
@@ -29,6 +29,7 @@ const OutputProperties OutputALSAFactory::properties() const
{
OutputProperties properties;
properties.name = tr("ALSA Plugin");
+ properties.shortName = "alsa";
properties.hasAbout = TRUE;
properties.hasSettings = TRUE;
return properties;
diff --git a/src/plugins/Visual/analyzer/visualanalyzerfactory.cpp b/src/plugins/Visual/analyzer/visualanalyzerfactory.cpp
index e57341d62..ad9122a87 100644
--- a/src/plugins/Visual/analyzer/visualanalyzerfactory.cpp
+++ b/src/plugins/Visual/analyzer/visualanalyzerfactory.cpp
@@ -28,6 +28,7 @@ const VisualProperties VisualAnalyzerFactory::properties() const
{
VisualProperties properties;
properties.name = tr("Analyzer Plugin");
+ properties.shortName = "analyzer";
properties.hasSettings = TRUE;
properties.hasAbout = TRUE;
return properties;
diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp
index 13be451dc..c6c1f83b1 100644
--- a/src/qmmp/decoder.cpp
+++ b/src/qmmp/decoder.cpp
@@ -224,18 +224,15 @@ void Decoder::checkFactories()
}
//remove physically deleted plugins from disabled list
QStringList names;
- foreach (QString filePath, m_files)
+ foreach (DecoderFactory *factory, *m_factories)
{
- names.append(filePath.section('/',-1));
+ names.append(factory->properties().shortName);
}
- int i = 0;
QStringList disabledList = settings.value("Decoder/disabled_plugins").toStringList ();
- while (i < disabledList.size())
+ foreach (QString name, disabledList)
{
- if (!names.contains(disabledList.at(i)))
- disabledList.removeAt(i);
- else
- i++;
+ if (!names.contains(name))
+ disabledList.removeAll(name);
}
settings.setValue("Decoder/disabled_plugins",disabledList);
}
@@ -378,7 +375,7 @@ void Decoder::setEnabled(DecoderFactory* factory, bool enable)
if (!m_factories->contains(factory))
return;
- QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1);
+ QString name = factory->properties().shortName;
QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
QStringList disabledList = settings.value("Decoder/disabled_plugins").toStringList();
@@ -397,7 +394,7 @@ bool Decoder::isEnabled(DecoderFactory* factory)
checkFactories();
if (!m_factories->contains(factory))
return FALSE;
- QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1);
+ QString name = factory->properties().shortName;
QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
QStringList disabledList = settings.value("Decoder/disabled_plugins").toStringList();
return !disabledList.contains(name);
@@ -439,4 +436,3 @@ QList<DecoderFactory*> *Decoder::factories()
checkFactories();
return m_factories;
}
-
diff --git a/src/qmmp/decoderfactory.h b/src/qmmp/decoderfactory.h
index cf05ba124..c7f3f47da 100644
--- a/src/qmmp/decoderfactory.h
+++ b/src/qmmp/decoderfactory.h
@@ -44,6 +44,7 @@ public:
}
QString name;
+ QString shortName;
QString filter;
QString description;
QString contentType;
diff --git a/src/qmmp/effect.cpp b/src/qmmp/effect.cpp
index 9b279fab8..63729c339 100644
--- a/src/qmmp/effect.cpp
+++ b/src/qmmp/effect.cpp
@@ -122,9 +122,9 @@ void Effect::setEnabled(EffectFactory* factory, bool enable)
if(!factories->contains(factory))
return;
- QString name = files.at(factories->indexOf(factory)).section('/',-1);
+ QString name = factory->properties().shortName;
QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- QStringList effList = settings.value("Effect/plugin_files").toStringList();
+ QStringList effList = settings.value("Effect/enabled_plugins").toStringList();
if(enable)
{
@@ -133,7 +133,7 @@ void Effect::setEnabled(EffectFactory* factory, bool enable)
}
else
effList.removeAll(name);
- settings.setValue("Effect/plugin_files", effList);
+ settings.setValue("Effect/enabled_plugins", effList);
}
bool Effect::isEnabled(EffectFactory* factory)
@@ -141,9 +141,9 @@ bool Effect::isEnabled(EffectFactory* factory)
checkFactories();
if(!factories->contains(factory))
return FALSE;
- QString name = files.at(factories->indexOf(factory)).section('/',-1);
+ QString name = factory->properties().shortName;
QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- QStringList effList = settings.value("Effect/plugin_files").toStringList();
+ QStringList effList = settings.value("Effect/enabled_plugins").toStringList();
return effList.contains(name);
}
diff --git a/src/qmmp/effectfactory.h b/src/qmmp/effectfactory.h
index 96354cf6e..18f605eed 100644
--- a/src/qmmp/effectfactory.h
+++ b/src/qmmp/effectfactory.h
@@ -31,9 +31,16 @@ class QTranslator;
class Effect;
-struct EffectProperties
+class EffectProperties
{
+public:
+ EffectProperties()
+ {
+ hasAbout = FALSE;
+ hasSettings = FALSE;
+ }
QString name;
+ QString shortName;
bool hasAbout;
bool hasSettings;
};
diff --git a/src/qmmp/output.cpp b/src/qmmp/output.cpp
index 839fb1f50..85f636daf 100644
--- a/src/qmmp/output.cpp
+++ b/src/qmmp/output.cpp
@@ -159,28 +159,21 @@ void Output::setCurrentFactory(OutputFactory* factory)
checkFactories();
if (!m_factories->contains(factory))
return;
-
- QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1);
- //TODO use plugin id instead
QSettings settings (QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat);
- settings.setValue ("Output/plugin_file", name);
+ settings.setValue ("Output/current_plugin", factory->properties().shortName);
}
OutputFactory *Output::currentFactory()
{
checkFactories();
QSettings settings (QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat);
- QString name = settings.value("Output/plugin_file", "libalsa.so").toString();
- foreach(QString path, m_files)
+ QString name = settings.value("Output/current_plugin", "alsa").toString(); //TODO freebsd support
+ foreach(OutputFactory *factory, *m_factories)
{
- if (path.section('/',-1) == name)
- {
- int i = m_files.indexOf(path);
- if (i < 0)
- return 0;
- else
- return m_factories->at(i);
- }
+ if (factory->properties().shortName == name)
+ return factory;
}
+ if (!m_factories->isEmpty())
+ return m_factories->at(0);
return 0;
}
diff --git a/src/qmmp/outputfactory.h b/src/qmmp/outputfactory.h
index 3e27f2396..c4522ea2a 100644
--- a/src/qmmp/outputfactory.h
+++ b/src/qmmp/outputfactory.h
@@ -31,9 +31,16 @@ class VolumeControl;
class Decoder;
class Output;
-struct OutputProperties
+class OutputProperties
{
+public:
+ OutputProperties()
+ {
+ hasAbout = FALSE;
+ hasSettings = FALSE;
+ }
QString name;
+ QString shortName;
bool hasAbout;
bool hasSettings;
};
diff --git a/src/qmmp/visual.cpp b/src/qmmp/visual.cpp
index 453a7abd0..1b4378334 100644
--- a/src/qmmp/visual.cpp
+++ b/src/qmmp/visual.cpp
@@ -97,9 +97,9 @@ void Visual::setEnabled(VisualFactory* factory, bool enable)
if (!m_factories->contains(factory))
return;
- QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1);
+ QString name = factory->properties().shortName;
QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- QStringList visList = settings.value("Visualization/plugin_files").toStringList();
+ QStringList visList = settings.value("Visualization/enabled_plugins").toStringList();
if (enable)
{
@@ -126,7 +126,7 @@ void Visual::setEnabled(VisualFactory* factory, bool enable)
m_vis_map.remove (factory);
}
}
- settings.setValue("Visualization/plugin_files", visList);
+ settings.setValue("Visualization/enabled_plugins", visList);
}
bool Visual::isEnabled(VisualFactory* factory)
@@ -134,9 +134,9 @@ bool Visual::isEnabled(VisualFactory* factory)
checkFactories();
if (!m_factories->contains(factory))
return FALSE;
- QString name = m_files.at(m_factories->indexOf(factory)).section('/',-1);
+ QString name = factory->properties().shortName;
QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- QStringList visList = settings.value("Visualization/plugin_files").toStringList();
+ QStringList visList = settings.value("Visualization/enabled_plugins").toStringList();
return visList.contains(name);
}
diff --git a/src/qmmp/visualfactory.h b/src/qmmp/visualfactory.h
index 723c86970..d57b5cf55 100644
--- a/src/qmmp/visualfactory.h
+++ b/src/qmmp/visualfactory.h
@@ -28,9 +28,16 @@ class QDialog;
class Visual;
-struct VisualProperties
+class VisualProperties
{
+public:
+ VisualProperties()
+ {
+ hasAbout = FALSE;
+ hasSettings = FALSE;
+ }
QString name;
+ QString shortName;
bool hasAbout;
bool hasSettings;
};