diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2018-07-25 14:28:22 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2018-08-09 08:55:04 +0000 |
commit | 80bea1f32b92c70c21c96762e31c726cb49e180f (patch) | |
tree | 4cc8558c45986359a51756b4959756c712ca5332 /src/bluetooth/bluez | |
parent | f1d00a83d12f27c37c20b6138f00ff82960018c1 (diff) |
Implement QBluetoothSocket Client support for Bluez5 DBus
The new code is not yet enabled in QBluetoothSocket because
the server side implementation is still missing.
Task-number: QTBUG-68550
Change-Id: I2f94dac9f7665c8d4ba5d675e91c5ab81af8504a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/bluetooth/bluez')
-rw-r--r-- | src/bluetooth/bluez/bluez.pri | 2 | ||||
-rw-r--r-- | src/bluetooth/bluez/profile1context.cpp | 72 | ||||
-rw-r--r-- | src/bluetooth/bluez/profile1context_p.h | 96 |
3 files changed, 170 insertions, 0 deletions
diff --git a/src/bluetooth/bluez/bluez.pri b/src/bluetooth/bluez/bluez.pri index 9fb9242e..4201f104 100644 --- a/src/bluetooth/bluez/bluez.pri +++ b/src/bluetooth/bluez/bluez.pri @@ -15,6 +15,7 @@ HEADERS += bluez/manager_p.h \ bluez/device1_bluez5_p.h \ bluez/profilemanager1_p.h \ bluez/profile1_p.h \ + bluez/profile1context_p.h \ bluez/obex_client1_bluez5_p.h \ bluez/obex_objectpush1_bluez5_p.h \ bluez/obex_transfer1_bluez5_p.h \ @@ -43,6 +44,7 @@ SOURCES += bluez/manager.cpp \ bluez/bluez5_helper.cpp \ bluez/profilemanager1.cpp \ bluez/profile1.cpp \ + bluez/profile1context.cpp \ bluez/obex_client1_bluez5.cpp \ bluez/obex_objectpush1_bluez5.cpp \ bluez/obex_transfer1_bluez5.cpp \ diff --git a/src/bluetooth/bluez/profile1context.cpp b/src/bluetooth/bluez/profile1context.cpp new file mode 100644 index 00000000..5eeec56a --- /dev/null +++ b/src/bluetooth/bluez/profile1context.cpp @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtBluetooth module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "profile1context_p.h" + +#include <QtCore/qloggingcategory.h> + +QT_BEGIN_NAMESPACE + +Q_DECLARE_LOGGING_CATEGORY(QT_BT_BLUEZ) + +OrgBluezProfile1ContextInterface::OrgBluezProfile1ContextInterface(QObject *parent) : QObject(parent) +{ +} + +void OrgBluezProfile1ContextInterface::NewConnection(const QDBusObjectPath &/*remotePath*/, + const QDBusUnixFileDescriptor &descriptor, + const QVariantMap &/*properties*/) +{ + qCDebug(QT_BT_BLUEZ) << "Profile Context: New Connection"; + emit newConnection(descriptor); + setDelayedReply(false); +} + +void OrgBluezProfile1ContextInterface::RequestDisconnection(const QDBusObjectPath &/*remotePath*/) +{ + qCDebug(QT_BT_BLUEZ) << "Profile Context: Request Disconnection"; + setDelayedReply(false); +} + +void OrgBluezProfile1ContextInterface::Release() +{ + qCDebug(QT_BT_BLUEZ) << "Profile Context: Release"; +} + +QT_END_NAMESPACE diff --git a/src/bluetooth/bluez/profile1context_p.h b/src/bluetooth/bluez/profile1context_p.h new file mode 100644 index 00000000..bd7b7df3 --- /dev/null +++ b/src/bluetooth/bluez/profile1context_p.h @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtBluetooth module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef PROFILECONTEXT_P_H +#define PROFILECONTEXT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtCore/qobject.h> +#include <QtDBus/qdbuscontext.h> +#include <QtDBus/qdbusextratypes.h> +#include <QtDBus/qdbusunixfiledescriptor.h> + +QT_BEGIN_NAMESPACE + +class OrgBluezProfile1ContextInterface : public QObject, protected QDBusContext +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "org.bluez.Profile1") + Q_CLASSINFO("D-Bus Introspection", "" +" <interface name=\"org.bluez.Profile1\">\n" +" <method name=\"NewConnection\">\n" +" <arg direction=\"in\" type=\"o\"/>\n" +" <arg direction=\"in\" type=\"h\"/>\n" +" <arg direction=\"in\" type=\"a{sv}\"/>\n" +" <annotation value=\"QVariantMap\" name=\"org.qtproject.QtDBus.QtTypeName.In2\"/>\n" +" </method>\n" +" <method name=\"RequestDisconnection\">\n" +" <arg direction=\"in\" type=\"o\"/>\n" +" </method>\n" +" <method name=\"Release\">\n" +" <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n" +" </method>\n" +" </interface>\n" + "") +public: + explicit OrgBluezProfile1ContextInterface(QObject *parent = nullptr); + +Q_SIGNALS: + void newConnection(const QDBusUnixFileDescriptor &fd); + +public Q_SLOTS: + void NewConnection(const QDBusObjectPath &, const QDBusUnixFileDescriptor &, + const QVariantMap &); + void RequestDisconnection(const QDBusObjectPath &); + Q_NOREPLY void Release(); +}; + +QT_END_NAMESPACE + +#endif // PROFILECONTEXT_P_H |