diff options
author | Frans Englich <frans.englich@nokia.com> | 2009-07-03 14:33:19 (GMT) |
---|---|---|
committer | Frans Englich <frans.englich@nokia.com> | 2009-07-03 14:33:19 (GMT) |
commit | 0e54042f2d339ecf85a89f8603317c32da265a90 (patch) | |
tree | ab6d9abecbec726b9cc5f623b79e66ac5b97131b /src/3rdparty/phonon | |
parent | 0089269b13244e0a906443e30f39275bb0cc01f0 (diff) | |
download | Qt-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.cpp | 18 |
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:" |