File indexing completed on 2025-01-19 06:44:34
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 "adapter.h" 0010 #include "adapter_p.h" 0011 #include "device.h" 0012 #include "device_p.h" 0013 #include "pendingcall.h" 0014 0015 namespace BluezQt 0016 { 0017 Adapter::Adapter(const QString &path, const QVariantMap &properties) 0018 : QObject() 0019 , d(new AdapterPrivate(path, properties)) 0020 { 0021 } 0022 0023 Adapter::~Adapter() = default; 0024 0025 AdapterPtr Adapter::toSharedPtr() const 0026 { 0027 return d->q.toStrongRef(); 0028 } 0029 0030 QString Adapter::ubi() const 0031 { 0032 return d->m_bluezAdapter->path(); 0033 } 0034 0035 QString Adapter::address() const 0036 { 0037 return d->m_address; 0038 } 0039 0040 QString Adapter::name() const 0041 { 0042 return d->m_alias; 0043 } 0044 0045 PendingCall *Adapter::setName(const QString &name) 0046 { 0047 return new PendingCall(d->setDBusProperty(QStringLiteral("Alias"), name), PendingCall::ReturnVoid, this); 0048 } 0049 0050 QString Adapter::systemName() const 0051 { 0052 return d->m_name; 0053 } 0054 0055 quint32 Adapter::adapterClass() const 0056 { 0057 return d->m_adapterClass; 0058 } 0059 0060 bool Adapter::isPowered() const 0061 { 0062 return d->m_powered; 0063 } 0064 0065 PendingCall *Adapter::setPowered(bool powered) 0066 { 0067 return new PendingCall(d->setDBusProperty(QStringLiteral("Powered"), powered), PendingCall::ReturnVoid, this); 0068 } 0069 0070 bool Adapter::isDiscoverable() const 0071 { 0072 return d->m_discoverable; 0073 } 0074 0075 PendingCall *Adapter::setDiscoverable(bool discoverable) 0076 { 0077 return new PendingCall(d->setDBusProperty(QStringLiteral("Discoverable"), discoverable), PendingCall::ReturnVoid, this); 0078 } 0079 0080 quint32 Adapter::discoverableTimeout() const 0081 { 0082 return d->m_discoverableTimeout; 0083 } 0084 0085 PendingCall *Adapter::setDiscoverableTimeout(quint32 timeout) 0086 { 0087 return new PendingCall(d->setDBusProperty(QStringLiteral("DiscoverableTimeout"), timeout), PendingCall::ReturnVoid, this); 0088 } 0089 0090 bool Adapter::isPairable() const 0091 { 0092 return d->m_pairable; 0093 } 0094 0095 PendingCall *Adapter::setPairable(bool pairable) 0096 { 0097 return new PendingCall(d->setDBusProperty(QStringLiteral("Pairable"), pairable), PendingCall::ReturnVoid, this); 0098 } 0099 0100 quint32 Adapter::pairableTimeout() const 0101 { 0102 return d->m_pairableTimeout; 0103 } 0104 0105 PendingCall *Adapter::setPairableTimeout(quint32 timeout) 0106 { 0107 return new PendingCall(d->setDBusProperty(QStringLiteral("PairableTimeout"), timeout), PendingCall::ReturnVoid, this); 0108 } 0109 0110 bool Adapter::isDiscovering() 0111 { 0112 return d->m_discovering; 0113 } 0114 0115 QStringList Adapter::uuids() const 0116 { 0117 return d->m_uuids; 0118 } 0119 0120 QString Adapter::modalias() const 0121 { 0122 return d->m_modalias; 0123 } 0124 0125 GattManagerPtr Adapter::gattManager() const 0126 { 0127 return d->m_gattManager; 0128 } 0129 0130 LEAdvertisingManagerPtr Adapter::leAdvertisingManager() const 0131 { 0132 return d->m_leAdvertisingManager; 0133 } 0134 0135 MediaPtr Adapter::media() const 0136 { 0137 return d->m_media; 0138 } 0139 0140 QList<DevicePtr> Adapter::devices() const 0141 { 0142 return d->m_devices; 0143 } 0144 0145 DevicePtr Adapter::deviceForAddress(const QString &address) const 0146 { 0147 for (DevicePtr device : std::as_const(d->m_devices)) { 0148 if (device->address() == address) { 0149 return device; 0150 } 0151 } 0152 return DevicePtr(); 0153 } 0154 0155 PendingCall *Adapter::startDiscovery() 0156 { 0157 return new PendingCall(d->m_bluezAdapter->StartDiscovery(), PendingCall::ReturnVoid, this); 0158 } 0159 0160 PendingCall *Adapter::stopDiscovery() 0161 { 0162 return new PendingCall(d->m_bluezAdapter->StopDiscovery(), PendingCall::ReturnVoid, this); 0163 } 0164 0165 PendingCall *Adapter::removeDevice(DevicePtr device) 0166 { 0167 return new PendingCall(d->m_bluezAdapter->RemoveDevice(QDBusObjectPath(device->ubi())), PendingCall::ReturnVoid, this); 0168 } 0169 0170 PendingCall* Adapter::setDiscoveryFilter(const QVariantMap& filter) 0171 { 0172 return new PendingCall(d->m_bluezAdapter->SetDiscoveryFilter(filter), PendingCall::ReturnVoid, this); 0173 } 0174 0175 PendingCall* Adapter::getDiscoveryFilters() 0176 { 0177 return new PendingCall(d->m_bluezAdapter->GetDiscoveryFilters(), PendingCall::ReturnStringList, this); 0178 } 0179 0180 } // namespace BluezQt 0181 0182 #include "moc_adapter.cpp"