diff options
author | Christian Fetzer <christian.fetzer@nokia.com> | 2012-05-09 13:56:08 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-29 13:58:02 +0200 |
commit | 74f47b50fa9b102448413cff5477a32ea4b030fe (patch) | |
tree | e8ce8f779a30c86178c910b25f001fc5be78447d /src/bluetooth/qbluetoothlocaldevice_p.h | |
parent | 29383f82989ee4a5460cfbd19e9256bbf2d5fdd3 (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.h | 47 |
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 { |