summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qbluetoothlocaldevice_p.h
diff options
context:
space:
mode:
authorChristian Fetzer <christian.fetzer@nokia.com>2012-05-09 13:56:08 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-29 13:58:02 +0200
commit74f47b50fa9b102448413cff5477a32ea4b030fe (patch)
treee8ce8f779a30c86178c910b25f001fc5be78447d /src/bluetooth/qbluetoothlocaldevice_p.h
parent29383f82989ee4a5460cfbd19e9256bbf2d5fdd3 (diff)
Make use of Nokia bt services for powering on/off bluetooth.
Change-Id: Ie648226fd821403208b21749f624f34fc7abc498 Reviewed-by: Michael Zanetti <michael.zanetti@nokia.com> Reviewed-by: Alex <alex.blasche@nokia.com>
Diffstat (limited to 'src/bluetooth/qbluetoothlocaldevice_p.h')
-rw-r--r--src/bluetooth/qbluetoothlocaldevice_p.h47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/bluetooth/qbluetoothlocaldevice_p.h b/src/bluetooth/qbluetoothlocaldevice_p.h
index 0c592612..78d316cb 100644
--- a/src/bluetooth/qbluetoothlocaldevice_p.h
+++ b/src/bluetooth/qbluetoothlocaldevice_p.h
@@ -58,6 +58,11 @@ class OrgBluezAgentAdaptor;
QT_BEGIN_NAMESPACE
class QDBusPendingCallWatcher;
QT_END_NAMESPACE
+
+#ifdef NOKIA_BT_SERVICES
+#include <QtServiceFramework/QServiceManager>
+#include <QtCore/QMutex>
+#endif
#endif
QT_BEGIN_HEADER
@@ -73,12 +78,13 @@ class QBluetoothLocalDevicePrivate : public QObject,
Q_OBJECT
Q_DECLARE_PUBLIC(QBluetoothLocalDevice)
public:
- QBluetoothLocalDevicePrivate();
+ QBluetoothLocalDevicePrivate(QBluetoothLocalDevice *q, QBluetoothAddress localAddress = QBluetoothAddress());
~QBluetoothLocalDevicePrivate();
OrgBluezAdapterInterface *adapter;
OrgBluezAgentAdaptor *agent;
QString agent_path;
+ QBluetoothAddress localAddress;
QBluetoothAddress address;
QBluetoothLocalDevice::Pairing pairing;
QBluetoothLocalDevice::HostMode currentMode;
@@ -98,12 +104,51 @@ public Q_SLOTS: // METHODS
void PropertyChanged(QString,QDBusVariant);
+#ifdef NOKIA_BT_SERVICES
+ void powerStateChanged(bool powered);
+#endif
+
private:
QDBusMessage msgConfirmation;
QDBusConnection *msgConnection;
QBluetoothLocalDevice *q_ptr;
+
+ void initializeAdapter();
+};
+
+#ifdef NOKIA_BT_SERVICES
+class NokiaBtManServiceConnection: public QObject
+{
+ Q_OBJECT
+
+public:
+ NokiaBtManServiceConnection();
+ void acquire();
+ void release();
+ void setPowered(bool powered);
+ bool powered() const;
+ void setHostMode(QBluetoothLocalDevice::HostMode mode);
+
+signals:
+ void poweredChanged(bool powered);
+
+private:
+ QObject *m_btmanService;
+ int m_refCount;
+ QMutex m_refCountMutex;
+ bool m_forceDiscoverable;
+ bool m_forceConnectable;
+
+private slots:
+ void connectToBtManService();
+ void disconnectFromBtManService();
+ void sfwIPCError(QService::UnrecoverableIPCError);
+ void powerStateChanged(int powerState);
};
+Q_GLOBAL_STATIC(NokiaBtManServiceConnection, nokiaBtManServiceInstance)
+#endif
+
#else
class QBluetoothLocalDevicePrivate : public QObject
{