summaryrefslogtreecommitdiff
path: root/libresource-overridesqt
diff options
context:
space:
mode:
authorWolf Bergenheim <ext-wolf.2.bergenheim@nokia.com>2010-07-05 14:14:56 +0300
committerWolf Bergenheim <ext-wolf.2.bergenheim@nokia.com>2010-07-05 14:14:56 +0300
commit32ab94785e8b8d70bf1f5a2fd3fa0ee735b4a32e (patch)
tree0590f5f9cf636fc94eecb61a39721569412b4c7d /libresource-overridesqt
parent3ad5033772ff8c1a331f0c0b208a4a90b698e57b (diff)
Added libresource-overridesqt
Diffstat (limited to 'libresource-overridesqt')
-rw-r--r--libresource-overridesqt/libresource-overridesqt.pro36
-rw-r--r--libresource-overridesqt/libresource-overridesqt1.pc12
-rw-r--r--libresource-overridesqt/override.cpp63
-rw-r--r--libresource-overridesqt/override.h32
4 files changed, 143 insertions, 0 deletions
diff --git a/libresource-overridesqt/libresource-overridesqt.pro b/libresource-overridesqt/libresource-overridesqt.pro
new file mode 100644
index 0000000..c306266
--- /dev/null
+++ b/libresource-overridesqt/libresource-overridesqt.pro
@@ -0,0 +1,36 @@
+include(../common.pri)
+TEMPLATE = lib
+TARGET = resource-overridesqt
+DESTDIR = build
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+PUBLIC_HEADERS = override.h
+
+HEADERS += $${PUBLIC_HEADERS}
+
+SOURCES += override.cpp
+
+QMAKE_CXXFLAGS += -Wall
+LIBS += -L$${LIBDBUSQEVENTLOOP}/build -ldbus-qeventloop
+
+OBJECTS_DIR = build
+MOC_DIR = moc
+
+CONFIG += qt dll
+QT += dbus
+PKGCONFIG += dbus-1 libresource0
+
+QMAKE_DISTCLEAN += -r moc build
+
+# Install directives
+headers.files = $${PUBLIC_HEADERS}
+INSTALLBASE = /usr
+target.path = $${INSTALLBASE}/lib
+headers.path = $${INSTALLBASE}/include/resource/qt4/policy
+pc.files = libresource-overridesqt1.pc
+pc.path = $${INSTALLBASE}/lib/pkgconfig
+
+INSTALLS = target headers pc
+
diff --git a/libresource-overridesqt/libresource-overridesqt1.pc b/libresource-overridesqt/libresource-overridesqt1.pc
new file mode 100644
index 0000000..a6cf64e
--- /dev/null
+++ b/libresource-overridesqt/libresource-overridesqt1.pc
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include/resource/qt4
+
+Name: libresource-overridesqt1
+Description: Maemo resource management Qt API
+Version: 1.11
+Libs: -L${libdir}
+Cflags: -I${includedir}
+Requires: QtDbus
+
diff --git a/libresource-overridesqt/override.cpp b/libresource-overridesqt/override.cpp
new file mode 100644
index 0000000..71102df
--- /dev/null
+++ b/libresource-overridesqt/override.cpp
@@ -0,0 +1,63 @@
+#include "override.h"
+
+#define MANAGER_PATH "/org/maemo/Playback/Manager"
+#define MANAGER_SERVICE "org.maemo.Playback.Manager"
+#define MANAGER_INTERFACE "org.maemo.Playback.Manager"
+
+using namespace ResourcePolicy;
+
+Override * ResourcePolicy::createMute(QObject *parent)
+{
+ return new Override("Mute", parent);
+}
+
+Override * ResourcePolicy::createPrivacyOverride(QObject *parent)
+{
+ return new Override("PrivacyOverride", parent);
+}
+
+Override * ResourcePolicy::createBluetoothOVerride(QObject *parent)
+{
+ return new Override("BluetoothOverride", parent);
+}
+
+Override::Override(QString overrideType, QObject *parent):
+ QObject(parent), dBusConnection(QDBusConnection::sessionBus()), type(overrideType)
+{
+ dBusConnection.connect(MANAGER_SERVICE, MANAGER_PATH, MANAGER_INTERFACE,
+ type, this, SLOT(handleChange(bool)));
+}
+
+Override::~Override()
+{
+}
+
+void Override::fetchState()
+{
+ QDBusMessage msg;
+ QString method = "Get" + type;
+
+ msg = QDBusMessage::createMethodCall(MANAGER_SERVICE, MANAGER_PATH,
+ MANAGER_INTERFACE, method);
+ dBusConnection.send(msg);
+}
+
+void Override::request(bool newState)
+{
+ QDBusMessage msg;
+ QString method = "Request" + type;
+
+ msg = QDBusMessage::createMethodCall(MANAGER_SERVICE, MANAGER_PATH,
+ MANAGER_INTERFACE, method);
+
+ QVariantList args;
+ args.append(newState);
+ msg.setArguments(args);
+ dBusConnection.send(msg);
+}
+
+void Override::handleChange(bool newState)
+{
+ emit changed(newState);
+}
+
diff --git a/libresource-overridesqt/override.h b/libresource-overridesqt/override.h
new file mode 100644
index 0000000..c906a55
--- /dev/null
+++ b/libresource-overridesqt/override.h
@@ -0,0 +1,32 @@
+#pragma once
+
+#include <QtDBus>
+#include <QDBusConnection>
+#include <QDBusArgument>
+
+namespace ResourcePolicy
+{
+ class Override : public QObject
+ {
+ Q_OBJECT
+public:
+ Override(QString overrideType, QObject *parent=NULL);
+ virtual ~Override();
+ void fetchState();
+
+signals:
+ void changed(bool newState);
+
+private slots:
+ void handleChange(bool newState);
+ void request(bool newState);
+
+private:
+ QDBusConnection dBusConnection;
+ QString type;
+ };
+ Override * createMute(QObject *parent=NULL);
+ Override * createPrivacyOverride(QObject *parent=NULL);
+ Override * createBluetoothOVerride(QObject *parent=NULL);
+}
+