[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498
Maximiliano Curia
maxy at moszumanska.debian.org
Fri Oct 14 14:29:50 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=e66096d
The following commit has been merged in the master branch:
commit e66096d05acae401c9150eb43bdf5aa976b278f7
Author: Pinak Ahuja <pinak.ahuja at gmail.com>
Date: Thu Jun 16 10:19:38 2016 +0200
Add album art support for mpris plugin
Right now we only support album art if the player provides a local URL,
but some players provide a remote URL (spotify) I'll be adding support
for that in a later patch.
REVIEW: 128199
---
CMakeLists.txt | 2 +-
plugins/mpriscontrol/CMakeLists.txt | 2 +-
plugins/mpriscontrol/mpriscontrolplugin.cpp | 30 +++++++++++++++++++++++++++++
3 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b778ff9..abd3438 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required(VERSION 2.8.12)
find_package(ECM 0.0.9 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_SOURCE_DIR}/cmake)
-find_package(Qt5 5.2 REQUIRED COMPONENTS Quick)
+find_package(Qt5 5.2 REQUIRED COMPONENTS Quick Gui)
find_package(KF5 REQUIRED COMPONENTS I18n ConfigWidgets DBusAddons)
find_package(KF5DocTools)
find_package(Qca-qt5 2.1.0 REQUIRED)
diff --git a/plugins/mpriscontrol/CMakeLists.txt b/plugins/mpriscontrol/CMakeLists.txt
index 5203f1f..fb52395 100644
--- a/plugins/mpriscontrol/CMakeLists.txt
+++ b/plugins/mpriscontrol/CMakeLists.txt
@@ -16,4 +16,4 @@ qt5_add_dbus_interface(
kdeconnect_add_plugin(kdeconnect_mpriscontrol JSON kdeconnect_mpriscontrol.json SOURCES ${kdeconnect_mpriscontrol_SRCS})
-target_link_libraries(kdeconnect_mpriscontrol Qt5::DBus kdeconnectcore)
+target_link_libraries(kdeconnect_mpriscontrol Qt5::DBus kdeconnectcore Qt5::Gui)
diff --git a/plugins/mpriscontrol/mpriscontrolplugin.cpp b/plugins/mpriscontrol/mpriscontrolplugin.cpp
index 21b8abe..c83ffb0 100644
--- a/plugins/mpriscontrol/mpriscontrolplugin.cpp
+++ b/plugins/mpriscontrol/mpriscontrolplugin.cpp
@@ -28,6 +28,10 @@
#include <QDBusMessage>
#include <QDBusServiceWatcher>
+#include <QImage>
+#include <QBuffer>
+#include <QByteArray>
+
#include <KPluginFactory>
#include <core/device.h>
@@ -136,6 +140,32 @@ void MprisControlPlugin::propertiesChanged(const QString& propertyInterface, con
}
somethingToSend = true;
}
+ if (nowPlayingMap.contains("mpris:artUrl")) {
+ const QUrl artUrl(nowPlayingMap["mpris:artUrl"].toString());
+
+ /*
+ * We only handle images stored locally right now but it should be easy
+ * enough to download remote images and send them.
+ */
+ const int artMaxWidth = 512;
+ const int artMaxHeight = 512;
+ if (artUrl.isLocalFile()) {
+ QImage artImage(artUrl.path());
+
+ // Scale the image to a sane size
+ artImage = artImage.scaled({artMaxWidth, artMaxHeight}, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+
+ QByteArray imageBufferArray;
+ QBuffer imageBuffer(&imageBufferArray);
+ imageBuffer.open(QIODevice::WriteOnly);
+ artImage.save(&imageBuffer, "PNG");
+
+ const QString base64Image = QString::fromLatin1(imageBufferArray.toBase64());
+ np.set("artImage", base64Image);
+ somethingToSend = true;
+ }
+
+ }
}
if (properties.contains("PlaybackStatus")) {
--
kdeconnect packaging
More information about the pkg-kde-commits
mailing list