File indexing completed on 2025-04-20 12:18:45
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() 0027 { 0028 delete d; 0029 } 0030 0031 void Profile::setName(const QString &name) 0032 { 0033 d->options[QStringLiteral("Name")] = name; 0034 } 0035 0036 void Profile::setService(const QString &service) 0037 { 0038 d->options[QStringLiteral("Service")] = service; 0039 } 0040 0041 void Profile::setLocalRole(Profile::LocalRole role) 0042 { 0043 QString str; 0044 switch (role) { 0045 case ClientRole: 0046 str = QStringLiteral("client"); 0047 break; 0048 0049 case ServerRole: 0050 str = QStringLiteral("server"); 0051 break; 0052 0053 default: 0054 break; 0055 } 0056 0057 if (str.isEmpty()) { 0058 qCWarning(BLUEZQT) << "Invalid local role!"; 0059 return; 0060 } 0061 0062 d->options[QStringLiteral("Role")] = str; 0063 } 0064 0065 void Profile::setChannel(quint16 channel) 0066 { 0067 if (channel > 31) { 0068 qCWarning(BLUEZQT) << "Invalid channel number. Must be 0-31!"; 0069 return; 0070 } 0071 0072 d->options[QStringLiteral("Channel")] = QVariant::fromValue(channel); 0073 } 0074 0075 void Profile::setPsm(quint16 psm) 0076 { 0077 d->options[QStringLiteral("PSM")] = QVariant::fromValue(psm); 0078 } 0079 0080 void Profile::setRequireAuthentication(bool require) 0081 { 0082 d->options[QStringLiteral("RequireAuthentication")] = require; 0083 } 0084 0085 void Profile::setRequireAuthorization(bool require) 0086 { 0087 d->options[QStringLiteral("RequireAuthorization")] = require; 0088 } 0089 0090 void Profile::setAutoConnect(bool autoConnect) 0091 { 0092 d->options[QStringLiteral("AutoConnect")] = autoConnect; 0093 } 0094 0095 void Profile::setServiceRecord(const QString &serviceRecord) 0096 { 0097 d->options[QStringLiteral("ServiceRecord")] = serviceRecord; 0098 } 0099 0100 void Profile::setVersion(quint16 version) 0101 { 0102 d->options[QStringLiteral("Version")] = QVariant::fromValue(version); 0103 } 0104 0105 void Profile::setFeatures(quint16 features) 0106 { 0107 d->options[QStringLiteral("Features")] = QVariant::fromValue(features); 0108 } 0109 0110 QSharedPointer<QLocalSocket> Profile::createSocket(const QDBusUnixFileDescriptor &fd) 0111 { 0112 int newfd = ::dup(fd.fileDescriptor()); 0113 QSharedPointer<QLocalSocket> socket(new QLocalSocket); 0114 socket->setSocketDescriptor(newfd); 0115 return socket; 0116 } 0117 0118 void Profile::newConnection(DevicePtr device, const QDBusUnixFileDescriptor &fd, const QVariantMap &properties, const Request<> &request) 0119 { 0120 Q_UNUSED(device) 0121 Q_UNUSED(fd) 0122 Q_UNUSED(properties) 0123 0124 request.cancel(); 0125 } 0126 0127 void Profile::requestDisconnection(DevicePtr device, const Request<> &request) 0128 { 0129 Q_UNUSED(device) 0130 0131 request.cancel(); 0132 } 0133 0134 void Profile::release() 0135 { 0136 } 0137 0138 } // namespace BluezQt 0139 0140 #include "moc_profile.cpp"