File indexing completed on 2025-01-19 06:44:39
0001 /* 0002 * BluezQt - Asynchronous Bluez wrapper library 0003 * 0004 * SPDX-FileCopyrightText: 2014 David Rosca <nowrep@gmail.com> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "profile.h" 0010 #include "debug.h" 0011 #include "profile_p.h" 0012 0013 #include <unistd.h> 0014 0015 #include <QDBusUnixFileDescriptor> 0016 #include <QLocalSocket> 0017 0018 namespace BluezQt 0019 { 0020 Profile::Profile(QObject *parent) 0021 : QObject(parent) 0022 , d(new ProfilePrivate) 0023 { 0024 } 0025 0026 Profile::~Profile() = default; 0027 0028 void Profile::setName(const QString &name) 0029 { 0030 d->options[QStringLiteral("Name")] = name; 0031 } 0032 0033 void Profile::setService(const QString &service) 0034 { 0035 d->options[QStringLiteral("Service")] = service; 0036 } 0037 0038 void Profile::setLocalRole(Profile::LocalRole role) 0039 { 0040 QString str; 0041 switch (role) { 0042 case ClientRole: 0043 str = QStringLiteral("client"); 0044 break; 0045 0046 case ServerRole: 0047 str = QStringLiteral("server"); 0048 break; 0049 0050 default: 0051 break; 0052 } 0053 0054 if (str.isEmpty()) { 0055 qCWarning(BLUEZQT) << "Invalid local role!"; 0056 return; 0057 } 0058 0059 d->options[QStringLiteral("Role")] = str; 0060 } 0061 0062 void Profile::setChannel(quint16 channel) 0063 { 0064 if (channel > 31) { 0065 qCWarning(BLUEZQT) << "Invalid channel number. Must be 0-31!"; 0066 return; 0067 } 0068 0069 d->options[QStringLiteral("Channel")] = QVariant::fromValue(channel); 0070 } 0071 0072 void Profile::setPsm(quint16 psm) 0073 { 0074 d->options[QStringLiteral("PSM")] = QVariant::fromValue(psm); 0075 } 0076 0077 void Profile::setRequireAuthentication(bool require) 0078 { 0079 d->options[QStringLiteral("RequireAuthentication")] = require; 0080 } 0081 0082 void Profile::setRequireAuthorization(bool require) 0083 { 0084 d->options[QStringLiteral("RequireAuthorization")] = require; 0085 } 0086 0087 void Profile::setAutoConnect(bool autoConnect) 0088 { 0089 d->options[QStringLiteral("AutoConnect")] = autoConnect; 0090 } 0091 0092 void Profile::setServiceRecord(const QString &serviceRecord) 0093 { 0094 d->options[QStringLiteral("ServiceRecord")] = serviceRecord; 0095 } 0096 0097 void Profile::setVersion(quint16 version) 0098 { 0099 d->options[QStringLiteral("Version")] = QVariant::fromValue(version); 0100 } 0101 0102 void Profile::setFeatures(quint16 features) 0103 { 0104 d->options[QStringLiteral("Features")] = QVariant::fromValue(features); 0105 } 0106 0107 QSharedPointer<QLocalSocket> Profile::createSocket(const QDBusUnixFileDescriptor &fd) 0108 { 0109 int newfd = ::dup(fd.fileDescriptor()); 0110 QSharedPointer<QLocalSocket> socket(new QLocalSocket); 0111 socket->setSocketDescriptor(newfd); 0112 return socket; 0113 } 0114 0115 void Profile::newConnection(DevicePtr device, const QDBusUnixFileDescriptor &fd, const QVariantMap &properties, const Request<> &request) 0116 { 0117 Q_UNUSED(device) 0118 Q_UNUSED(fd) 0119 Q_UNUSED(properties) 0120 0121 request.cancel(); 0122 } 0123 0124 void Profile::requestDisconnection(DevicePtr device, const Request<> &request) 0125 { 0126 Q_UNUSED(device) 0127 0128 request.cancel(); 0129 } 0130 0131 void Profile::release() 0132 { 0133 } 0134 0135 } // namespace BluezQt 0136 0137 #include "moc_profile.cpp"