Hello community,
here is the log from the commit of package phonon for openSUSE:13.1 checked in
at 2013-10-01 08:20:54
Comparing /work/SRC/openSUSE:13.1/phonon (Old)
and /work/SRC/openSUSE:13.1/.phonon.new (New)
Package is "phonon"
Changes:
--- /work/SRC/openSUSE:13.1/phonon/phonon.changes 2013-09-26
11:49:33.0 +0200
+++ /work/SRC/openSUSE:13.1/.phonon.new/phonon.changes 2013-10-01
08:20:55.0 +0200
@@ -1,0 +2,9 @@
+Mon Sep 30 18:42:23 UTC 2013 - hrvoje.sen...@gmail.com
+
+- Update to 4.6.80~git20130930
+ * Add preference system ontop of Qt5 backend loading
+ * Unbreak documentation of AO47
+ * Don't crash when trying to create the singleton out of a
+qapp parented AO (kde#293004)
+
+---
Old:
_service_error
phonon-4.6.80~git20130915.tar.xz
New:
phonon-4.6.80~git20130930.tar.xz
Other differences:
--
++ phonon.spec ++
--- /var/tmp/diff_new_pack.KyUrL2/_old 2013-10-01 08:20:55.0 +0200
+++ /var/tmp/diff_new_pack.KyUrL2/_new 2013-10-01 08:20:55.0 +0200
@@ -17,7 +17,7 @@
Name: phonon
-Version:4.6.80~git20130915
+Version:4.6.80~git20130930
Release:0
Summary:Multimedia Platform Abstraction
License:LGPL-2.0+
++ phonon-4.6.80~git20130915.tar.xz -> phonon-4.6.80~git20130930.tar.xz
++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/phonon-4.6.80~git20130915/phonon/audiooutputinterface.h
new/phonon-4.6.80~git20130930/phonon/audiooutputinterface.h
--- old/phonon-4.6.80~git20130915/phonon/audiooutputinterface.h 2013-09-09
18:37:42.0 +0200
+++ new/phonon-4.6.80~git20130930/phonon/audiooutputinterface.h 2013-09-30
16:43:58.0 +0200
@@ -135,7 +135,7 @@
{
public:
/**
- * This function is meant to be used in conjuction with \class PulseSupport
+ * This function is meant to be used in conjuction with PulseSupport
* to either get the property set for the associated PulseAudio straem or
* to automatically apply them to the envrionment.
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonon-4.6.80~git20130915/phonon/factory.cpp
new/phonon-4.6.80~git20130930/phonon/factory.cpp
--- old/phonon-4.6.80~git20130915/phonon/factory.cpp2013-09-09
18:37:42.0 +0200
+++ new/phonon-4.6.80~git20130930/phonon/factory.cpp2013-09-30
16:43:58.0 +0200
@@ -54,6 +54,9 @@
public:
FactoryPrivate();
~FactoryPrivate();
+bool tryCreateBackend(const QString &path);
+// Implementation depends on Qt version.
+bool createSuitableBackend(const QString &libPath, const
QList &plugins);
bool createBackend();
#ifndef QT_NO_PHONON_PLATFORMPLUGIN
PlatformPlugin *platformPlugin();
@@ -101,15 +104,131 @@
globalFactory->m_backendObject = b;
}
-/*void Factory::createBackend(const QString &library, const QString &version)
+bool FactoryPrivate::tryCreateBackend(const QString &path)
{
-Q_ASSERT(globalFactory->m_backendObject == 0);
-PlatformPlugin *f = globalFactory->platformPlugin();
-if (f) {
-globalFactory->m_backendObject = f->createBackend(library, version);
+QPluginLoader pluginLoader(path);
+
+pDebug() << "attempting to load" << path;
+if (!pluginLoader.load()) {
+pDebug() << Q_FUNC_INFO << " load failed:" <<
pluginLoader.errorString();
+return false;
}
-}*/
+pDebug() << pluginLoader.instance();
+m_backendObject = pluginLoader.instance();
+if (m_backendObject) {
+return true;
+}
+
+// no backend found, don't leave an unused plugin in memory
+pluginLoader.unload();
+return false;
+}
+
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+struct BackendDescriptor {
+explicit BackendDescriptor(const QString &path)
+: isValid(false)
+{
+QPluginLoader loader(path);
+
+iid = loader.metaData().value(QLatin1String("IID")).toString();
+
+const QJsonObject metaData =
loader.metaData().value(QLatin1String("MetaData")).toObject();
+name = metaData.value(QLatin1String("Name")).toString();
+icon = metaData.value(QLatin1String("Icon")).toString();
+version = metaData.value(QLatin1String("Version")).toString();
+website = metaData.value(QLatin1String("Website")).toString();
+preference =
metaData.value(QLatin1String("InitialPreference")).toDouble();
+
+pluginPath = path;
+
+if (name.isEmpty())
+name = QFileInfo(path).baseName();
+
+if (iid.isEmpty())
+return; // Not valid.