summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/phonon
diff options
context:
space:
mode:
authorFrans Englich <frans.englich@nokia.com>2009-07-03 14:33:19 (GMT)
committerFrans Englich <frans.englich@nokia.com>2009-07-03 14:33:19 (GMT)
commit0e54042f2d339ecf85a89f8603317c32da265a90 (patch)
treeab6d9abecbec726b9cc5f623b79e66ac5b97131b /src/3rdparty/phonon
parent0089269b13244e0a906443e30f39275bb0cc01f0 (diff)
downloadQt-0e54042f2d339ecf85a89f8603317c32da265a90.zip
Qt-0e54042f2d339ecf85a89f8603317c32da265a90.tar.gz
Qt-0e54042f2d339ecf85a89f8603317c32da265a90.tar.bz2
Load Helix backend before loading the Phonon backend.
Diffstat (limited to 'src/3rdparty/phonon')
-rw-r--r--src/3rdparty/phonon/phonon/factory.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/3rdparty/phonon/phonon/factory.cpp b/src/3rdparty/phonon/phonon/factory.cpp
index 43c45ee..1026bb3 100644
--- a/src/3rdparty/phonon/phonon/factory.cpp
+++ b/src/3rdparty/phonon/phonon/factory.cpp
@@ -131,7 +131,23 @@ bool FactoryPrivate::createBackend()
pDebug() << Q_FUNC_INFO << dir.absolutePath() << "does not exist";
continue;
}
- foreach (const QString &pluginName, dir.entryList(QDir::Files)) {
+
+ QStringList plugins(dir.entryList(QDir::Files));
+
+#ifdef Q_OS_SYMBIAN
+ /* On Symbian OS we might have two plugins, one which uses Symbian
+ * MMF framework("mmf"), and one which uses Real Networks's
+ * Helix("hxphonon"). We prefer the latter because it's more
+ * sophisticated, so we make sure the Helix backend is attempted
+ * to be loaded first, and the MMF backend is used for backup. */
+ {
+ const int helix = plugins.indexof(QLatin1String("hxphonon"));
+ if (helix != -1)
+ plugins.move(helix, 0);
+ }
+#endif
+
+ foreach (const QString &pluginName, plugins) {
QPluginLoader pluginLoader(libPath + pluginName);
if (!pluginLoader.load()) {
pDebug() << Q_FUNC_INFO << " load failed:"