summaryrefslogtreecommitdiffstats
path: root/src/PulseAudioQt/pulseobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/PulseAudioQt/pulseobject.cpp')
-rw-r--r--src/PulseAudioQt/pulseobject.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/PulseAudioQt/pulseobject.cpp b/src/PulseAudioQt/pulseobject.cpp
new file mode 100644
index 0000000..ac9b975
--- /dev/null
+++ b/src/PulseAudioQt/pulseobject.cpp
@@ -0,0 +1,86 @@
+/*
+ SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org>
+
+ SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
+*/
+
+#include "pulseobject.h"
+#include "pulseobject_p.h"
+
+#include "context.h"
+
+#include <QIcon>
+
+namespace PulseAudioQt
+{
+PulseObject::PulseObject(QObject *parent)
+ : QObject(parent)
+ , d(new PulseObjectPrivate(this))
+{
+}
+
+PulseObject::~PulseObject()
+{
+ delete d;
+}
+
+PulseObjectPrivate::PulseObjectPrivate(PulseObject *q)
+ : q(q)
+{
+}
+
+PulseObjectPrivate::~PulseObjectPrivate()
+{
+}
+
+QString PulseObject::name() const
+{
+ return d->m_name;
+}
+
+QString PulseObject::iconName() const
+{
+ QString name = d->m_properties.value(QStringLiteral("device.icon_name")).toString();
+ if (!name.isEmpty() && QIcon::hasThemeIcon(name)) {
+ return name;
+ }
+
+ name = d->m_properties.value(QStringLiteral("media.icon_name")).toString();
+ if (!name.isEmpty() && QIcon::hasThemeIcon(name)) {
+ return name;
+ }
+
+ name = d->m_properties.value(QStringLiteral("window.icon_name")).toString();
+ if (!name.isEmpty() && QIcon::hasThemeIcon(name)) {
+ return name;
+ }
+
+ name = d->m_properties.value(QStringLiteral("application.icon_name")).toString();
+ if (!name.isEmpty() && QIcon::hasThemeIcon(name)) {
+ return name;
+ }
+
+ name = d->m_properties.value(QStringLiteral("application.process.binary")).toString();
+ if (!name.isEmpty() && QIcon::hasThemeIcon(name)) {
+ return name;
+ }
+
+ name = d->m_properties.value(QStringLiteral("application.name")).toString();
+ if (!name.isEmpty() && QIcon::hasThemeIcon(name)) {
+ return name;
+ }
+
+ name = property("name").toString();
+ if (!name.isEmpty() && QIcon::hasThemeIcon(name)) {
+ return name;
+ }
+
+ return QString();
+}
+
+QVariantMap PulseObject::properties() const
+{
+ return d->m_properties;
+}
+
+} // PulseAudioQt