diff options
author | Fabian Bumberger <fbumberger@rim.com> | 2013-08-02 18:09:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-29 14:06:54 +0200 |
commit | d8d903826daa8db49e437b76fb80693ab8feb01e (patch) | |
tree | 8e794636168a3955a5f33c8dbb5a51b11a285b2c /src/imports/bluetooth/qdeclarativebluetoothservice.cpp | |
parent | bfc49d07b0638927aca3cf63238a80f98ee516a7 (diff) |
Merge QRfcommServer and QL2capServer to QBluetoothServer
Task-number: QTBUG-32722
Change-Id: Ia75ad5af2f81b737a8cca09dba919a7dc0fa0f8a
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src/imports/bluetooth/qdeclarativebluetoothservice.cpp')
-rw-r--r-- | src/imports/bluetooth/qdeclarativebluetoothservice.cpp | 58 |
1 files changed, 16 insertions, 42 deletions
diff --git a/src/imports/bluetooth/qdeclarativebluetoothservice.cpp b/src/imports/bluetooth/qdeclarativebluetoothservice.cpp index 242c5a5d..83a6fea7 100644 --- a/src/imports/bluetooth/qdeclarativebluetoothservice.cpp +++ b/src/imports/bluetooth/qdeclarativebluetoothservice.cpp @@ -44,8 +44,7 @@ #include <qbluetoothdeviceinfo.h> #include <QtBluetooth/QBluetoothSocket> #include <QtBluetooth/QBluetoothAddress> -#include <ql2capserver.h> -#include <qrfcommserver.h> +#include <QtBluetooth/QBluetoothServer> #include <QObject> @@ -347,26 +346,24 @@ bool QDeclarativeBluetoothService::isRegistered() const int QDeclarativeBluetoothServicePrivate::listen() { + if (m_protocol != "l2cap" && m_protocol != "rfcomm") { + qDebug() << "Unknown protocol, can't make service" << m_protocol; + return -1; + } + QBluetoothServer::ServerType serverType; if (m_protocol == "l2cap") { - QL2capServer *server = new QL2capServer(); - - server->setMaxPendingConnections(1); - server->listen(QBluetoothAddress(), m_port); - m_port = server->serverPort(); - m_listen = server; + serverType = QBluetoothServer::L2capServer; } else if (m_protocol == "rfcomm") { - QRfcommServer *server = new QRfcommServer(); - - server->setMaxPendingConnections(1); - server->listen(QBluetoothAddress(), m_port); - m_port = server->serverPort(); - m_listen = server; - } - else { - qDebug() << "Unknown protocol, can't make service" << m_protocol; + serverType = QBluetoothServer::RfcommServer; } + QBluetoothServer *server = new QBluetoothServer(serverType); + server->setMaxPendingConnections(1); + server->listen(QBluetoothAddress(), m_port); + m_port = server->serverPort(); + m_listen = server; + return m_port; } @@ -459,7 +456,7 @@ void QDeclarativeBluetoothService::new_connection() QDeclarativeBluetoothSocket *QDeclarativeBluetoothService::nextClient() { - QL2capServer *server = qobject_cast<QL2capServer *>(d->m_listen); + QBluetoothServer *server = qobject_cast<QBluetoothServer *>(d->m_listen); if (server) { if (server->hasPendingConnections()) { QBluetoothSocket *socket = server->nextPendingConnection(); @@ -470,23 +467,12 @@ QDeclarativeBluetoothSocket *QDeclarativeBluetoothService::nextClient() return 0x0; } } - QRfcommServer *rserver = qobject_cast<QRfcommServer *>(d->m_listen); - if (rserver) { - if (rserver->hasPendingConnections()) { - QBluetoothSocket *socket = rserver->nextPendingConnection(); - return new QDeclarativeBluetoothSocket(socket, this, 0x0);; - } - else { - qDebug() << "Socket has no pending connection, failing"; - return 0x0; - } - } return 0x0; } void QDeclarativeBluetoothService::assignNextClient(QDeclarativeBluetoothSocket *dbs) { - QL2capServer *server = qobject_cast<QL2capServer *>(d->m_listen); + QBluetoothServer *server = qobject_cast<QBluetoothServer *>(d->m_listen); if (server) { if (server->hasPendingConnections()) { QBluetoothSocket *socket = server->nextPendingConnection(); @@ -498,18 +484,6 @@ void QDeclarativeBluetoothService::assignNextClient(QDeclarativeBluetoothSocket return; } } - QRfcommServer *rserver = qobject_cast<QRfcommServer *>(d->m_listen); - if (rserver) { - if (rserver->hasPendingConnections()) { - QBluetoothSocket *socket = rserver->nextPendingConnection(); - dbs->newSocket(socket, this); - return; - } - else { - qDebug() << "Socket has no pending connection, failing"; - return; - } - } return; } |