diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bluetooth/bluetooth.pro | 9 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothlocaldevice_bluez.cpp | 250 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothlocaldevice_p.h | 45 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothserviceinfo_bluez.cpp | 7 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothsocket_bluez.cpp | 87 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothsocket_p.h | 9 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothtransferreply_bluez.cpp | 128 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothtransferreply_bluez_p.h | 32 | ||||
-rw-r--r-- | src/bluetooth/ql2capserver_bluez.cpp | 4 | ||||
-rw-r--r-- | src/bluetooth/qrfcommserver_bluez.cpp | 27 |
10 files changed, 0 insertions, 598 deletions
diff --git a/src/bluetooth/bluetooth.pro b/src/bluetooth/bluetooth.pro index c838fec7..48bd05f7 100644 --- a/src/bluetooth/bluetooth.pro +++ b/src/bluetooth/bluetooth.pro @@ -78,15 +78,6 @@ config_bluez:contains(QT_CONFIG, dbus) { qbluetoothtransfermanager_bluez.cpp \ ql2capserver_bluez.cpp - contains(DEFINES,NOKIA_BT_SERVICES) { - message("Enabling Nokia BT services") - QT += serviceframework - } - contains(DEFINES,NOKIA_BT_PATCHES) { - message("Enabling Nokia BT patches") - LIBS += -lbluetooth - } - } else { message("Unsupported bluetooth platform, will not build a working QBluetooth library") message("Either no Qt dBus found or no Bluez headers") diff --git a/src/bluetooth/qbluetoothlocaldevice_bluez.cpp b/src/bluetooth/qbluetoothlocaldevice_bluez.cpp index d7e456ec..e42fb97c 100644 --- a/src/bluetooth/qbluetoothlocaldevice_bluez.cpp +++ b/src/bluetooth/qbluetoothlocaldevice_bluez.cpp @@ -93,21 +93,14 @@ QBluetoothAddress QBluetoothLocalDevice::address() const void QBluetoothLocalDevice::powerOn() { -#ifdef NOKIA_BT_SERVICES - nokiaBtManServiceInstance()->setPowered(true); -#else if (!d_ptr || !d_ptr->adapter) return; d_ptr->adapter->SetProperty(QLatin1String("Powered"), QDBusVariant(QVariant::fromValue(true))); -#endif } void QBluetoothLocalDevice::setHostMode(QBluetoothLocalDevice::HostMode mode) { -#ifdef NOKIA_BT_SERVICES - nokiaBtManServiceInstance()->setHostMode(mode); -#else if (!d_ptr || !d_ptr->adapter) return; @@ -130,7 +123,6 @@ void QBluetoothLocalDevice::setHostMode(QBluetoothLocalDevice::HostMode mode) // QDBusVariant(QVariant::fromValue(false))); break; } -#endif } QBluetoothLocalDevice::HostMode QBluetoothLocalDevice::hostMode() const @@ -249,9 +241,6 @@ void QBluetoothLocalDevice::requestPairing(const QBluetoothAddress &address, Pai Q_ARG(QBluetoothLocalDevice::Pairing, QBluetoothLocalDevice::Paired)); } else { -#ifdef NOKIA_BT_SERVICES - nokiaBtManServiceInstance()->requestPairing(address); -#else QDBusPendingReply<QDBusObjectPath> reply = d_ptr->adapter->CreatePairedDevice(address.toString(), QDBusObjectPath(d_ptr->agent_path), @@ -262,7 +251,6 @@ void QBluetoothLocalDevice::requestPairing(const QBluetoothAddress &address, Pai if(reply.isError()) qDebug() << Q_FUNC_INFO << reply.error() << d_ptr->agent_path; -#endif } } else if(pairing == Unpaired) { @@ -311,13 +299,7 @@ QBluetoothLocalDevice::Pairing QBluetoothLocalDevice::pairingStatus(const QBluet QBluetoothLocalDevicePrivate::QBluetoothLocalDevicePrivate(QBluetoothLocalDevice *q, QBluetoothAddress address) : adapter(0), agent(0), localAddress(address), msgConnection(0), q_ptr(q) { -#ifndef NOKIA_BT_SERVICES initializeAdapter(); -#else - connect(nokiaBtManServiceInstance(), SIGNAL(poweredChanged(bool)), SLOT(powerStateChanged(bool))); - connect(nokiaBtManServiceInstance(), SIGNAL(pairingCompleted(bool)), SLOT(pairingCompleted(bool))); - nokiaBtManServiceInstance()->acquire(); -#endif } QBluetoothLocalDevicePrivate::~QBluetoothLocalDevicePrivate() @@ -325,10 +307,6 @@ QBluetoothLocalDevicePrivate::~QBluetoothLocalDevicePrivate() delete msgConnection; delete adapter; delete agent; - -#ifdef NOKIA_BT_SERVICES - nokiaBtManServiceInstance()->release(); -#endif } void QBluetoothLocalDevicePrivate::initializeAdapter() @@ -382,44 +360,6 @@ void QBluetoothLocalDevicePrivate::initializeAdapter() } } -#ifdef NOKIA_BT_SERVICES -void QBluetoothLocalDevicePrivate::powerStateChanged(bool powered) -{ - Q_Q(QBluetoothLocalDevice); - QBluetoothLocalDevice::HostMode mode; - - if (powered) { - initializeAdapter(); - - QDBusPendingReply<QVariantMap> reply = adapter->GetProperties(); - reply.waitForFinished(); - if (reply.isError()){ - qWarning() << "Failed to get bluetooth properties"; - return; - } - - if (reply.value().value(QLatin1String("Discoverable")).toBool()) { - mode = QBluetoothLocalDevice::HostDiscoverable; - } else { - mode = QBluetoothLocalDevice::HostConnectable; - } - } else { - mode = QBluetoothLocalDevice::HostPoweredOff; - delete msgConnection; - msgConnection = 0; - delete adapter; - adapter = 0; - delete agent; - agent = 0; - } - - if (mode != currentMode) { - emit q->hostModeStateChanged(mode); - currentMode = mode; - } -} -#endif - void QBluetoothLocalDevicePrivate::RequestConfirmation(const QDBusObjectPath &in0, uint in1) { Q_UNUSED(in0); @@ -500,38 +440,6 @@ void QBluetoothLocalDevicePrivate::pairingCompleted(QDBusPendingCallWatcher *wat } -#ifdef NOKIA_BT_SERVICES -void QBluetoothLocalDevicePrivate::pairingCompleted(bool success) -{ - Q_Q(QBluetoothLocalDevice); - - if (!success) { - qDebug() << Q_FUNC_INFO << "failed to create pairing"; - emit q->pairingFinished(address, QBluetoothLocalDevice::Unpaired); - return; - } - - QDBusPendingReply<QDBusObjectPath> findReply = adapter->FindDevice(address.toString()); - findReply.waitForFinished(); - if (findReply.isError()) { - qDebug() << Q_FUNC_INFO << "failed to find device" << findReply.error(); - emit q->pairingFinished(address, QBluetoothLocalDevice::Unpaired); - return; - } - - OrgBluezDeviceInterface device(QLatin1String("org.bluez"), findReply.value().path(), - QDBusConnection::systemBus()); - - if (pairing == QBluetoothLocalDevice::AuthorizedPaired) { - device.SetProperty(QLatin1String("Trusted"), QDBusVariant(QVariant(true))); - emit q->pairingFinished(address, QBluetoothLocalDevice::AuthorizedPaired); - } else { - device.SetProperty(QLatin1String("Trusted"), QDBusVariant(QVariant(false))); - emit q->pairingFinished(address, QBluetoothLocalDevice::Paired); - } -} -#endif - void QBluetoothLocalDevicePrivate::Authorize(const QDBusObjectPath &in0, const QString &in1) { qDebug() << "Got authorize for" << in0.path() << in1; @@ -602,164 +510,6 @@ void QBluetoothLocalDevicePrivate::PropertyChanged(QString property, QDBusVarian currentMode = mode; } - -#ifdef NOKIA_BT_SERVICES - -NokiaBtManServiceConnection::NokiaBtManServiceConnection(): - m_btmanService(NULL), - m_refCount(0) -{ -} - -void NokiaBtManServiceConnection::acquire() -{ - QMutexLocker m(&m_refCountMutex); - ++m_refCount; - if (m_btmanService == NULL) { - connectToBtManService(); - } -} - -void NokiaBtManServiceConnection::release() -{ - QMutexLocker m(&m_refCountMutex); - --m_refCount; - if (m_refCount == 0) { - QTimer::singleShot(5000, this, SLOT(disconnectFromBtManService())); - } -} - -void NokiaBtManServiceConnection::connectToBtManService() -{ - if (m_btmanService == NULL) { - QServiceManager manager; - QServiceFilter filter(QLatin1String("com.nokia.mt.btmanservice")); - - // find services complying with filter - QList<QServiceInterfaceDescriptor> foundServices; - foundServices = manager.findInterfaces(filter); - - if (foundServices.count()) { - m_btmanService = manager.loadInterface(foundServices.at(0)); - } - if (m_btmanService) { - qDebug() << "connected to service:" << m_btmanService; - connect(m_btmanService, SIGNAL(errorUnrecoverableIPCFault(QService::UnrecoverableIPCError)), SLOT(sfwIPCError(QService::UnrecoverableIPCError))); - connect(m_btmanService, SIGNAL(powerStateChanged(int)), SLOT(powerStateChanged(int))); - connect(m_btmanService, SIGNAL(pairingFinished(QString,int,int)), SLOT(pairingFinished(QString,int,int))); - if (powered()) { - emit poweredChanged(true); - } - } else { - qDebug() << "failed to connect to btman service"; - } - } else { - qDebug() << "already connected to service:" << m_btmanService; - } -} - -void NokiaBtManServiceConnection::disconnectFromBtManService() -{ - // Check if none acquired the service in the meantime - QMutexLocker m(&m_refCountMutex); - if (m_refCount == 0 && m_btmanService) { - qDebug() << "disconnecting from btman service"; - m_btmanService->deleteLater(); - m_btmanService = NULL; - } -} - -bool NokiaBtManServiceConnection::powered() const -{ - int powerState; - QMetaObject::invokeMethod(m_btmanService, "powerState", Q_RETURN_ARG(int, powerState)); - return powerState == 2; // enabled -} - -void NokiaBtManServiceConnection::setPowered(bool powered) -{ - if (powered) { - QMetaObject::invokeMethod(m_btmanService, "acquireTemporaryPower"); - } else { - QMetaObject::invokeMethod(m_btmanService, "releaseTemporaryPower"); - } -} - -void NokiaBtManServiceConnection::setHostMode(QBluetoothLocalDevice::HostMode mode) -{ - m_forceDiscoverable = false; - m_forceConnectable = false; - - switch (mode) { - case QBluetoothLocalDevice::HostDiscoverableLimitedInquiry: - case QBluetoothLocalDevice::HostDiscoverable: - if (powered()) { - QMetaObject::invokeMethod(m_btmanService, "setDiscoverable", Q_ARG(bool, true)); - } else { - m_forceDiscoverable = true; - setPowered(true); - } - break; - case QBluetoothLocalDevice::HostConnectable: - if (powered()) { - QMetaObject::invokeMethod(m_btmanService, "setDiscoverable", Q_ARG(bool, false)); - } else { - m_forceConnectable = true; - setPowered(true); - } - break; - case QBluetoothLocalDevice::HostPoweredOff: - if (powered()) { - setPowered(false); - } - break; - } -} - -void NokiaBtManServiceConnection::powerStateChanged(int powerState) -{ - if (powerState == 0) { - emit poweredChanged(false); - } else if (powerState == 2) { - if (m_forceDiscoverable) { - m_forceDiscoverable = false; - QMetaObject::invokeMethod(m_btmanService, "setDiscoverable", Q_ARG(bool, true)); - } else if (m_forceConnectable) { - m_forceConnectable = false; - QMetaObject::invokeMethod(m_btmanService, "setDiscoverable", Q_ARG(bool, false)); - } - emit poweredChanged(true); - } -} - -void NokiaBtManServiceConnection::requestPairing(const QBluetoothAddress &address) -{ - m_pairingAddress = address.toString(); - QMetaObject::invokeMethod(m_btmanService, "requestPairing", Q_ARG(QString, m_pairingAddress), Q_ARG(bool, false)); -} - -void NokiaBtManServiceConnection::pairingFinished(const QString& address, int direction, int status) -{ - // DirectionOutgoing = 0 - if (m_pairingAddress != address || direction != 0) return; - m_pairingAddress.clear(); - - // StatusSuccess = 0 - emit pairingCompleted(status == 0); -} - -void NokiaBtManServiceConnection::sfwIPCError(QService::UnrecoverableIPCError error) -{ - qDebug() << "Connection to btman service broken:" << error << ". Trying to reconnect..."; - if (m_btmanService) { - m_btmanService->deleteLater(); - m_btmanService = NULL; - } - QMetaObject::invokeMethod(this, "connectToBtManService", Qt::QueuedConnection); -} - -#endif - //#include "qbluetoothlocaldevice.moc" #include "moc_qbluetoothlocaldevice_p.cpp" diff --git a/src/bluetooth/qbluetoothlocaldevice_p.h b/src/bluetooth/qbluetoothlocaldevice_p.h index 97ac07c6..c5f6be17 100644 --- a/src/bluetooth/qbluetoothlocaldevice_p.h +++ b/src/bluetooth/qbluetoothlocaldevice_p.h @@ -59,10 +59,6 @@ QT_BEGIN_NAMESPACE class QDBusPendingCallWatcher; QT_END_NAMESPACE -#ifdef NOKIA_BT_SERVICES -#include <QtServiceFramework/QServiceManager> -#include <QtCore/QMutex> -#endif #endif QT_BEGIN_HEADER @@ -104,11 +100,6 @@ public Q_SLOTS: // METHODS void PropertyChanged(QString,QDBusVariant); -#ifdef NOKIA_BT_SERVICES - void powerStateChanged(bool powered); - void pairingCompleted(bool success); -#endif - private: QDBusMessage msgConfirmation; QDBusConnection *msgConnection; @@ -118,42 +109,6 @@ private: 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); - void requestPairing(const QBluetoothAddress &address); - -signals: - void poweredChanged(bool powered); - void pairingCompleted(bool success); - -private: - QObject *m_btmanService; - int m_refCount; - QMutex m_refCountMutex; - bool m_forceDiscoverable; - bool m_forceConnectable; - QString m_pairingAddress; - -private slots: - void connectToBtManService(); - void disconnectFromBtManService(); - void sfwIPCError(QService::UnrecoverableIPCError); - void powerStateChanged(int powerState); - void pairingFinished(const QString &address, int direction, int status); -}; -Q_GLOBAL_STATIC(NokiaBtManServiceConnection, nokiaBtManServiceInstance) -#endif - #else class QBluetoothLocalDevicePrivate : public QObject { diff --git a/src/bluetooth/qbluetoothserviceinfo_bluez.cpp b/src/bluetooth/qbluetoothserviceinfo_bluez.cpp index 9a422f56..661142a7 100644 --- a/src/bluetooth/qbluetoothserviceinfo_bluez.cpp +++ b/src/bluetooth/qbluetoothserviceinfo_bluez.cpp @@ -289,19 +289,12 @@ bool QBluetoothServiceInfoPrivate::registerService() const serviceRecord = reply.value(); } else { -#ifndef NOKIA_BT_PATCHES QDBusPendingReply<> reply = service->UpdateRecord(serviceRecord, xmlServiceRecord); -#else - QDBusPendingReply<uint> reply = service->UpdateRecord(serviceRecord, xmlServiceRecord); -#endif reply.waitForFinished(); if (reply.isError()) { qDebug() << "UpdateRecord returned error" << reply.error(); return false; } -#ifdef NOKIA_BT_PATCHES - serviceRecord = reply.value(); -#endif } registered = true; diff --git a/src/bluetooth/qbluetoothsocket_bluez.cpp b/src/bluetooth/qbluetoothsocket_bluez.cpp index 024a40e6..f15d5425 100644 --- a/src/bluetooth/qbluetoothsocket_bluez.cpp +++ b/src/bluetooth/qbluetoothsocket_bluez.cpp @@ -58,12 +58,6 @@ #include <QtCore/QSocketNotifier> -#ifdef NOKIA_BT_PATCHES -extern "C" { -#include <bluetooth/brcm-rfcomm.h> -} -#endif - QTBLUETOOTH_BEGIN_NAMESPACE QBluetoothSocketPrivate::QBluetoothSocketPrivate() @@ -75,9 +69,6 @@ QBluetoothSocketPrivate::QBluetoothSocketPrivate() connecting(false), discoveryAgent(0) { -#ifdef NOKIA_BT_PATCHES - brcm_rfcomm_init(); -#endif } QBluetoothSocketPrivate::~QBluetoothSocketPrivate() @@ -86,10 +77,6 @@ QBluetoothSocketPrivate::~QBluetoothSocketPrivate() readNotifier = 0; delete connectWriteNotifier; connectWriteNotifier = 0; - -#ifdef NOKIA_BT_PATCHES - brcm_rfcomm_exit(); -#endif } bool QBluetoothSocketPrivate::ensureNativeSocket(QBluetoothSocket::SocketType type) @@ -109,18 +96,10 @@ bool QBluetoothSocketPrivate::ensureNativeSocket(QBluetoothSocket::SocketType ty switch (type) { case QBluetoothSocket::L2capSocket: -#ifndef NOKIA_BT_PATCHES socket = ::socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP); -#else - socket = -1; // Raw L2cap sockets not supported -#endif break; case QBluetoothSocket::RfcommSocket: -#ifndef NOKIA_BT_PATCHES socket = ::socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM); -#else - socket = brcm_rfcomm_socket(); -#endif break; default: socket = -1; @@ -163,19 +142,8 @@ void QBluetoothSocketPrivate::connectToService(const QBluetoothAddress &address, connectWriteNotifier->setEnabled(true); readNotifier->setEnabled(true);QString(); -#ifndef NOKIA_BT_PATCHES result = ::connect(socket, (sockaddr *)&addr, sizeof(addr)); -#else - brcm_rfcomm_socket_bind(socket, (sockaddr*)&addr, sizeof(addr)); - result = brcm_rfcomm_socket_connect(socket, (sockaddr *)&addr, sizeof(addr)); - qDebug() << "BRCM: connect result:" << result; -#endif } else if (socketType == QBluetoothSocket::L2capSocket) { -#ifndef NOKIA_BT_PATCHES - errorString = QString::fromLocal8Bit("Raw L2Cap sockets are not supported on this platform"); - q->setSocketError(QBluetoothSocket::UnknownSocketError); - return; -#endif sockaddr_l2 addr; memset(&addr, 0, sizeof(addr)); @@ -205,11 +173,7 @@ void QBluetoothSocketPrivate::_q_writeNotify() if(connecting && state == QBluetoothSocket::ConnectingState){ int errorno, len; len = sizeof(errorno); -#ifndef NOKIA_BT_PATCHES ::getsockopt(socket, SOL_SOCKET, SO_ERROR, &errorno, (socklen_t*)&len); -#else - brcm_rfcomm_socket_getsockopt(socket, SOL_SOCKET, SO_ERROR, &errorno, (socklen_t*)&len); -#endif if(errorno) { errorString = QString::fromLocal8Bit(strerror(errorno)); emit q->error(QBluetoothSocket::UnknownSocketError); @@ -233,11 +197,7 @@ void QBluetoothSocketPrivate::_q_writeNotify() int size = txBuffer.read(buf, 1024); -#ifndef NOKIA_BT_PATCHES if (::write(socket, buf, size) != size) { -#else - if (brcm_rfcomm_socket_write(socket, buf, size) != size) { -#endif socketError = QBluetoothSocket::NetworkError; emit q->error(socketError); } @@ -262,11 +222,7 @@ void QBluetoothSocketPrivate::_q_readNotify() Q_Q(QBluetoothSocket); char *writePointer = buffer.reserve(QPRIVATELINEARBUFFER_BUFFERSIZE); // qint64 readFromDevice = q->readData(writePointer, QPRIVATELINEARBUFFER_BUFFERSIZE); -#ifndef NOKIA_BT_PATCHES int readFromDevice = ::read(socket, writePointer, QPRIVATELINEARBUFFER_BUFFERSIZE); -#else - int readFromDevice = brcm_rfcomm_socket_read(socket, writePointer, QPRIVATELINEARBUFFER_BUFFERSIZE); -#endif if(readFromDevice <= 0){ int errsv = errno; readNotifier->setEnabled(false); @@ -340,19 +296,12 @@ QBluetoothAddress QBluetoothSocketPrivate::localAddress() const sockaddr_rc addr; socklen_t addrLength = sizeof(addr); -#ifndef NOKIA_BT_PATCHES if (::getsockname(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) { -#else - if (brcm_rfcomm_socket_getsockname(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) { -#endif quint64 bdaddr; convertAddress(addr.rc_bdaddr.b, bdaddr); return QBluetoothAddress(bdaddr); } } else if (socketType == QBluetoothSocket::L2capSocket) { -#ifndef NOKIA_BT_PATCHES - return QBluetoothAddress(); // Raw L2cap sockets not supported -#endif sockaddr_l2 addr; socklen_t addrLength = sizeof(addr); @@ -372,16 +321,9 @@ quint16 QBluetoothSocketPrivate::localPort() const sockaddr_rc addr; socklen_t addrLength = sizeof(addr); -#ifndef NOKIA_BT_PATCHES if (::getsockname(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) -#else - if (brcm_rfcomm_socket_getsockname(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) -#endif return addr.rc_channel; } else if (socketType == QBluetoothSocket::L2capSocket) { -#ifdef NOKIA_BT_PATCHES - return 0; // Raw L2cap sockets not supported -#endif sockaddr_l2 addr; socklen_t addrLength = sizeof(addr); @@ -403,18 +345,11 @@ QString QBluetoothSocketPrivate::peerName() const sockaddr_rc addr; socklen_t addrLength = sizeof(addr); -#ifndef NOKIA_BT_PATCHES if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) < 0) -#else - if (brcm_rfcomm_socket_getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) < 0) -#endif return QString(); convertAddress(addr.rc_bdaddr.b, bdaddr); } else if (socketType == QBluetoothSocket::L2capSocket) { -#ifdef NOKIA_BT_PATCHES - return QString(); // Raw L2cap sockets not supported -#endif sockaddr_l2 addr; socklen_t addrLength = sizeof(addr); @@ -471,19 +406,12 @@ QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const sockaddr_rc addr; socklen_t addrLength = sizeof(addr); -#ifndef NOKIA_BT_PATCHES if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) { -#else - if (brcm_rfcomm_socket_getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) { -#endif quint64 bdaddr; convertAddress(addr.rc_bdaddr.b, bdaddr); return QBluetoothAddress(bdaddr); } } else if (socketType == QBluetoothSocket::L2capSocket) { -#ifdef NOKIA_BT_PATCHES - return QBluetoothAddress(); // Raw L2cap sockets not supported -#endif sockaddr_l2 addr; socklen_t addrLength = sizeof(addr); @@ -503,16 +431,9 @@ quint16 QBluetoothSocketPrivate::peerPort() const sockaddr_rc addr; socklen_t addrLength = sizeof(addr); -#ifndef NOKIA_BT_PATCHES if (::getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) -#else - if (brcm_rfcomm_socket_getpeername(socket, reinterpret_cast<sockaddr *>(&addr), &addrLength) == 0) -#endif return addr.rc_channel; } else if (socketType == QBluetoothSocket::L2capSocket) { -#ifdef NOKIA_BT_PATCHES - return 0; // Raw L2cap sockets not supported -#endif sockaddr_l2 addr; socklen_t addrLength = sizeof(addr); @@ -527,11 +448,7 @@ qint64 QBluetoothSocketPrivate::writeData(const char *data, qint64 maxSize) { Q_Q(QBluetoothSocket); if (q->openMode() & QIODevice::Unbuffered) { -#ifndef NOKIA_BT_PATCHES if (::write(socket, data, maxSize) != maxSize) { -#else - if (brcm_rfcomm_socket_write(socket, (void*)data, maxSize) != maxSize) { -#endif socketError = QBluetoothSocket::NetworkError; emit q->error(socketError); } @@ -589,11 +506,7 @@ void QBluetoothSocketPrivate::close() // We are disconnected now, so go to unconnected. q->setSocketState(QBluetoothSocket::UnconnectedState); emit q->disconnected(); -#ifndef NOKIA_BT_PATCHES ::close(socket); -#else - brcm_rfcomm_socket_close(socket); -#endif } } diff --git a/src/bluetooth/qbluetoothsocket_p.h b/src/bluetooth/qbluetoothsocket_p.h index 4769c080..7058a0b6 100644 --- a/src/bluetooth/qbluetoothsocket_p.h +++ b/src/bluetooth/qbluetoothsocket_p.h @@ -144,21 +144,12 @@ private: static inline void convertAddress(quint64 from, quint8 (&to)[6]) { -#ifndef NOKIA_BT_PATCHES to[0] = (from >> 0) & 0xff; to[1] = (from >> 8) & 0xff; to[2] = (from >> 16) & 0xff; to[3] = (from >> 24) & 0xff; to[4] = (from >> 32) & 0xff; to[5] = (from >> 40) & 0xff; -#else - to[5] = (from >> 0) & 0xff; - to[4] = (from >> 8) & 0xff; - to[3] = (from >> 16) & 0xff; - to[2] = (from >> 24) & 0xff; - to[1] = (from >> 32) & 0xff; - to[0] = (from >> 40) & 0xff; -#endif } static inline void convertAddress(quint8 (&from)[6], quint64 &to) diff --git a/src/bluetooth/qbluetoothtransferreply_bluez.cpp b/src/bluetooth/qbluetoothtransferreply_bluez.cpp index 7fffc481..3369c460 100644 --- a/src/bluetooth/qbluetoothtransferreply_bluez.cpp +++ b/src/bluetooth/qbluetoothtransferreply_bluez.cpp @@ -78,10 +78,6 @@ QBluetoothTransferReplyBluez::QBluetoothTransferReplyBluez(QIODevice *input, QOb // res = QDBusConnection::sessionBus().registerService("org.qt.bt"); if(!res) qDebug() << "Failed Creating dbus objects"; - -#ifdef NOKIA_BT_SERVICES - nokiaBtServiceInstance()->acquire(); -#endif } /*! @@ -172,14 +168,6 @@ void QBluetoothTransferReplyBluez::sendReturned(QDBusPendingCallWatcher *watcher else m_error = QBluetoothTransferReply::UnknownError; -#ifdef NOKIA_BT_SERVICES - // Inform the service daemon that an outgoing transfer has failed (use a fake transfer ID as there is no real one yet) - QFile *file = qobject_cast<QFile *>(source); - QString tempId = QUuid::createUuid().toString(); - nokiaBtServiceInstance()->outgoingFile("/transfer" + tempId, address.toString(), file->fileName(), QBluetoothTransferReply::attribute(QBluetoothTransferRequest::TypeAttribute).toString(), m_size); - nokiaBtServiceInstance()->setTransferFinished("/transfer" + tempId, false); -#endif - // allow time for the developer to connect to the signal QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection, Q_ARG(QBluetoothTransferReply*, this)); } @@ -201,10 +189,6 @@ void QBluetoothTransferReplyBluez::Complete(const QDBusObjectPath &in0) m_transfer_path.clear(); m_finished = true; m_running = false; - -#ifdef NOKIA_BT_SERVICES - nokiaBtServiceInstance()->setTransferFinished(in0.path(), true); -#endif } void QBluetoothTransferReplyBluez::Error(const QDBusObjectPath &in0, const QString &in1) @@ -220,20 +204,12 @@ void QBluetoothTransferReplyBluez::Error(const QDBusObjectPath &in0, const QStri m_error = QBluetoothTransferReply::UnknownError; emit finished(this); - -#ifdef NOKIA_BT_SERVICES - nokiaBtServiceInstance()->setTransferFinished(in0.path(), false); -#endif } void QBluetoothTransferReplyBluez::Progress(const QDBusObjectPath &in0, qulonglong in1) { Q_UNUSED(in0); emit uploadProgress(in1, m_size); - -#ifdef NOKIA_BT_SERVICES - nokiaBtServiceInstance()->setTranferProgress(in0.path(), in1, m_size); -#endif } void QBluetoothTransferReplyBluez::Release() @@ -246,14 +222,7 @@ QString QBluetoothTransferReplyBluez::Request(const QDBusObjectPath &in0) { m_transfer_path = in0.path(); -#ifdef NOKIA_BT_SERVICES - QFile *file = qobject_cast<QFile *>(source); - nokiaBtServiceInstance()->outgoingFile(m_transfer_path, address.toString(), file->fileName(), QBluetoothTransferReply::attribute(QBluetoothTransferRequest::TypeAttribute).toString(), m_size); - nokiaBtServiceInstance()->setTransferStarted(m_transfer_path); -#endif - return QString(); - } /*! @@ -283,11 +252,6 @@ void QBluetoothTransferReplyBluez::abort() qDebug() << "Failed to abort transfer" << reply.error(); } delete xfer; - -#ifdef NOKIA_BT_SERVICES - nokiaBtServiceInstance()->setTransferFinished(m_transfer_path, false); -#endif - } } @@ -306,98 +270,6 @@ qint64 QBluetoothTransferReplyBluez::writeData(const char*, qint64) return 0; } - -#ifdef NOKIA_BT_SERVICES - -NokiaBtServiceConnection::NokiaBtServiceConnection(): - m_obexService(NULL), - m_refCount(0) -{ -} - -void NokiaBtServiceConnection::acquire() -{ - QMutexLocker m(&m_refCountMutex); - ++m_refCount; - if (m_obexService == NULL) { - connectToObexServerService(); - } -} - -void NokiaBtServiceConnection::release() -{ - QMutexLocker m(&m_refCountMutex); - --m_refCount; - if (m_refCount == 0) { - QTimer::singleShot(5000, this, SLOT(disconnectFromObexServerService())); - } -} - -void NokiaBtServiceConnection::disconnectFromObexServerService() -{ - // Check if noone acquired the service in the meantime - QMutexLocker m(&m_refCountMutex); - if (m_refCount == 0 && m_obexService != NULL) { - m_obexService->deleteLater(); - m_obexService = NULL; - } -} - -void NokiaBtServiceConnection::connectToObexServerService() -{ - if (m_obexService == NULL) { - QServiceManager manager; - QServiceFilter filter(QLatin1String("com.nokia.mt.obexserverservice.control")); - // filter.setServiceName("ObexServerServiceControl"); - - // find services complying with filter - QList<QServiceInterfaceDescriptor> foundServices; - foundServices = manager.findInterfaces(filter); - - if (foundServices.count()) { - m_obexService = manager.loadInterface(foundServices.at(0)); - } - if (m_obexService) { - qDebug() << "connected to service:" << m_obexService; - connect(m_obexService, SIGNAL(errorUnrecoverableIPCFault(QService::UnrecoverableIPCError)), SLOT(sfwIPCError(QService::UnrecoverableIPCError))); - } else { - qDebug() << "failed to connect to Obex server service"; - } - } else { - qDebug() << "already connected to service:" << m_obexService; - } -} - -void NokiaBtServiceConnection::sfwIPCError(QService::UnrecoverableIPCError error) -{ - qDebug() << "Connection to Obex server broken:" << error << ". Trying to reconnect..."; - m_obexService->deleteLater(); - m_obexService = NULL; - QMetaObject::invokeMethod(this, "connectToObexServerService", Qt::QueuedConnection); -} - -void NokiaBtServiceConnection::outgoingFile(const QString &transferId, const QString &remoteDevice, const QString &fileName, const QString &mimeType, quint64 size) -{ - QMetaObject::invokeMethod(m_obexService, "outgoingFile", Q_ARG(QString, transferId), Q_ARG(QString, remoteDevice), Q_ARG(QString, fileName), Q_ARG(QString, mimeType), Q_ARG(quint64, size)); -} - -void NokiaBtServiceConnection::setTransferStarted(const QString &transferId) -{ - QMetaObject::invokeMethod(m_obexService, "setTransferStarted", Q_ARG(QString, transferId)); -} - -void NokiaBtServiceConnection::setTransferFinished(const QString &transferId, bool success) -{ - QMetaObject::invokeMethod(m_obexService, "setTransferFinished", Q_ARG(QString, transferId), Q_ARG(bool, success)); -} - -void NokiaBtServiceConnection::setTranferProgress(const QString &transferId, quint64 progress, quint64 total) -{ - QMetaObject::invokeMethod(m_obexService, "setTransferProgress", Q_ARG(QString, transferId), Q_ARG(quint64, progress), Q_ARG(quint64, total)); -} - -#endif - #include "moc_qbluetoothtransferreply_bluez_p.cpp" QTBLUETOOTH_END_NAMESPACE diff --git a/src/bluetooth/qbluetoothtransferreply_bluez_p.h b/src/bluetooth/qbluetoothtransferreply_bluez_p.h index 65987a00..d2ec509c 100644 --- a/src/bluetooth/qbluetoothtransferreply_bluez_p.h +++ b/src/bluetooth/qbluetoothtransferreply_bluez_p.h @@ -50,10 +50,6 @@ #include "qbluetoothtransferreply.h" -#ifdef NOKIA_BT_SERVICES -#include <QtServiceFramework/QServiceManager> -#endif - QT_BEGIN_HEADER class OrgOpenobexClientInterface; @@ -125,34 +121,6 @@ public slots: }; -#ifdef NOKIA_BT_SERVICES -class NokiaBtServiceConnection: public QObject -{ - Q_OBJECT -public: - NokiaBtServiceConnection(); - void acquire(); - void release(); - - void outgoingFile(const QString &transferId, const QString &remoteDevice, const QString &fileName, const QString &mimeType, quint64 size); - void setTransferStarted(const QString &transferId); - void setTransferFinished(const QString &transferId, bool success); - void setTranferProgress(const QString &transferId, quint64 progress, quint64 total); - -private: - QObject *m_obexService; - int m_refCount; - QMutex m_refCountMutex; - -private slots: - void connectToObexServerService(); - void disconnectFromObexServerService(); - void sfwIPCError(QService::UnrecoverableIPCError); -}; -Q_GLOBAL_STATIC(NokiaBtServiceConnection, nokiaBtServiceInstance) - -#endif - QTBLUETOOTH_END_NAMESPACE QT_END_HEADER diff --git a/src/bluetooth/ql2capserver_bluez.cpp b/src/bluetooth/ql2capserver_bluez.cpp index 21d2a475..00558dab 100644 --- a/src/bluetooth/ql2capserver_bluez.cpp +++ b/src/bluetooth/ql2capserver_bluez.cpp @@ -97,10 +97,6 @@ bool QL2capServer::listen(const QBluetoothAddress &address, quint16 port) { Q_D(QL2capServer); -#ifdef NOKIA_BT_PATCHES - return false; // Raw L2Cap not supported -#endif - int sock = d->socket->socketDescriptor(); if (sock < 0) return false; diff --git a/src/bluetooth/qrfcommserver_bluez.cpp b/src/bluetooth/qrfcommserver_bluez.cpp index f0a2b6ba..f40d6e6f 100644 --- a/src/bluetooth/qrfcommserver_bluez.cpp +++ b/src/bluetooth/qrfcommserver_bluez.cpp @@ -52,12 +52,6 @@ #include <errno.h> -#ifdef NOKIA_BT_PATCHES -extern "C" { -#include <bluetooth/brcm-rfcomm.h> -} -#endif - QTBLUETOOTH_BEGIN_NAMESPACE static inline void convertAddress(quint64 from, quint8 (&to)[6]) @@ -119,18 +113,10 @@ bool QRfcommServer::listen(const QBluetoothAddress &address, quint16 port) else convertAddress(Q_UINT64_C(0), addr.rc_bdaddr.b); -#ifndef NOKIA_BT_PATCHES if (::bind(sock, reinterpret_cast<sockaddr *>(&addr), sizeof(sockaddr_rc)) < 0) -#else - if (brcm_rfcomm_socket_bind(sock, reinterpret_cast<sockaddr *>(&addr), sizeof(sockaddr_rc)) < 0) -#endif return false; -#ifndef NOKIA_BT_PATCHES if (::listen(sock, d->maxPendingConnections) < 0) -#else - if (brcm_rfcomm_socket_listen(sock, d->maxPendingConnections) < 0) -#endif return false; d->socket->setSocketState(QBluetoothSocket::ListeningState); @@ -173,13 +159,8 @@ QBluetoothSocket *QRfcommServer::nextPendingConnection() sockaddr_rc addr; socklen_t length = sizeof(sockaddr_rc); -#ifndef NOKIA_BT_PATCHES int pending = ::accept(d->socket->socketDescriptor(), reinterpret_cast<sockaddr *>(&addr), &length); -#else - int pending = brcm_rfcomm_socket_accept(d->socket->socketDescriptor(), - reinterpret_cast<sockaddr *>(&addr), &length); -#endif if (pending >= 0) { QBluetoothSocket *newSocket = new QBluetoothSocket; newSocket->setSocketDescriptor(pending, QBluetoothSocket::RfcommSocket); @@ -232,11 +213,7 @@ void QRfcommServer::setSecurityFlags(QBluetooth::SecurityFlags security) qDebug() << hex << "Setting lm to" << lm << security; -#ifndef NOKIA_BT_PATCHES if (setsockopt(d->socket->socketDescriptor(), SOL_RFCOMM, RFCOMM_LM, &lm, sizeof(lm)) < 0){ -#else - if (brcm_rfcomm_socket_setsockopt(d->socket->socketDescriptor(), SOL_RFCOMM, RFCOMM_LM, &lm, sizeof(lm)) < 0){ -#endif qWarning() << "Failed to set socket option, closing socket for safety" << errno; qWarning() << "Error: " << strerror(errno); d->socket->close(); @@ -251,11 +228,7 @@ QBluetooth::SecurityFlags QRfcommServer::securityFlags() const int len = sizeof(lm); int security = QBluetooth::NoSecurity; -#ifndef NOKIA_BT_PATCHES if (getsockopt(d->socket->socketDescriptor(), SOL_RFCOMM, RFCOMM_LM, &lm, (socklen_t *)&len) < 0) { -#else - if (brcm_rfcomm_socket_getsockopt(d->socket->socketDescriptor(), SOL_RFCOMM, RFCOMM_LM, &lm, (socklen_t *)&len) < 0) { -#endif qWarning() << "Failed to get security flags" << strerror(errno); return QBluetooth::NoSecurity; } |