File indexing completed on 2024-05-12 15:32:33
0001 /* 0002 * BluezQt - Asynchronous BlueZ wrapper library 0003 * 0004 * SPDX-FileCopyrightText: 2015 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 "declarativedevice.h" 0010 #include "declarativeadapter.h" 0011 #include "declarativebattery.h" 0012 0013 #include <QStringList> 0014 0015 DeclarativeDevice::DeclarativeDevice(BluezQt::DevicePtr device, DeclarativeAdapter *adapter) 0016 : QObject(adapter) 0017 , m_device(device) 0018 , m_adapter(adapter) 0019 , m_battery(nullptr) 0020 , m_input(nullptr) 0021 , m_mediaPlayer(nullptr) 0022 { 0023 connect(m_device.data(), &BluezQt::Device::nameChanged, this, &DeclarativeDevice::nameChanged); 0024 connect(m_device.data(), &BluezQt::Device::friendlyNameChanged, this, &DeclarativeDevice::friendlyNameChanged); 0025 connect(m_device.data(), &BluezQt::Device::remoteNameChanged, this, &DeclarativeDevice::remoteNameChanged); 0026 connect(m_device.data(), &BluezQt::Device::deviceClassChanged, this, &DeclarativeDevice::deviceClassChanged); 0027 connect(m_device.data(), &BluezQt::Device::typeChanged, this, &DeclarativeDevice::typeChanged); 0028 connect(m_device.data(), &BluezQt::Device::appearanceChanged, this, &DeclarativeDevice::appearanceChanged); 0029 connect(m_device.data(), &BluezQt::Device::iconChanged, this, &DeclarativeDevice::iconChanged); 0030 connect(m_device.data(), &BluezQt::Device::pairedChanged, this, &DeclarativeDevice::pairedChanged); 0031 connect(m_device.data(), &BluezQt::Device::trustedChanged, this, &DeclarativeDevice::trustedChanged); 0032 connect(m_device.data(), &BluezQt::Device::blockedChanged, this, &DeclarativeDevice::blockedChanged); 0033 connect(m_device.data(), &BluezQt::Device::legacyPairingChanged, this, &DeclarativeDevice::legacyPairingChanged); 0034 connect(m_device.data(), &BluezQt::Device::rssiChanged, this, &DeclarativeDevice::rssiChanged); 0035 connect(m_device.data(), &BluezQt::Device::connectedChanged, this, &DeclarativeDevice::connectedChanged); 0036 connect(m_device.data(), &BluezQt::Device::uuidsChanged, this, &DeclarativeDevice::uuidsChanged); 0037 connect(m_device.data(), &BluezQt::Device::modaliasChanged, this, &DeclarativeDevice::modaliasChanged); 0038 connect(m_device.data(), &BluezQt::Device::mediaPlayerChanged, this, &DeclarativeDevice::updateMediaPlayer); 0039 connect(m_device.data(), &BluezQt::Device::inputChanged, this, &DeclarativeDevice::updateInput); 0040 connect(m_device.data(), &BluezQt::Device::batteryChanged, this, &DeclarativeDevice::updateBattery); 0041 0042 connect(m_device.data(), &BluezQt::Device::deviceRemoved, this, [this]() { 0043 Q_EMIT deviceRemoved(this); 0044 }); 0045 0046 connect(m_device.data(), &BluezQt::Device::deviceChanged, this, [this]() { 0047 Q_EMIT deviceChanged(this); 0048 }); 0049 0050 updateInput(); 0051 updateMediaPlayer(); 0052 } 0053 0054 QString DeclarativeDevice::ubi() const 0055 { 0056 return m_device->ubi(); 0057 } 0058 0059 QString DeclarativeDevice::address() const 0060 { 0061 return m_device->address(); 0062 } 0063 0064 QString DeclarativeDevice::name() const 0065 { 0066 return m_device->name(); 0067 } 0068 0069 void DeclarativeDevice::setName(const QString &name) 0070 { 0071 m_device->setName(name); 0072 } 0073 0074 QString DeclarativeDevice::friendlyName() const 0075 { 0076 return m_device->friendlyName(); 0077 } 0078 0079 QString DeclarativeDevice::remoteName() const 0080 { 0081 return m_device->remoteName(); 0082 } 0083 0084 quint32 DeclarativeDevice::deviceClass() const 0085 { 0086 return m_device->deviceClass(); 0087 } 0088 0089 BluezQt::Device::Type DeclarativeDevice::type() const 0090 { 0091 return m_device->type(); 0092 } 0093 0094 quint16 DeclarativeDevice::appearance() const 0095 { 0096 return m_device->appearance(); 0097 } 0098 0099 QString DeclarativeDevice::icon() const 0100 { 0101 return m_device->icon(); 0102 } 0103 0104 bool DeclarativeDevice::isPaired() const 0105 { 0106 return m_device->isPaired(); 0107 } 0108 0109 bool DeclarativeDevice::isTrusted() const 0110 { 0111 return m_device->isTrusted(); 0112 } 0113 0114 void DeclarativeDevice::setTrusted(bool trusted) 0115 { 0116 m_device->setTrusted(trusted); 0117 } 0118 0119 bool DeclarativeDevice::isBlocked() const 0120 { 0121 return m_device->isBlocked(); 0122 } 0123 0124 void DeclarativeDevice::setBlocked(bool blocked) 0125 { 0126 m_device->setBlocked(blocked); 0127 } 0128 0129 bool DeclarativeDevice::hasLegacyPairing() const 0130 { 0131 return m_device->hasLegacyPairing(); 0132 } 0133 0134 qint16 DeclarativeDevice::rssi() const 0135 { 0136 return m_device->rssi(); 0137 } 0138 0139 bool DeclarativeDevice::isConnected() const 0140 { 0141 return m_device->isConnected(); 0142 } 0143 0144 QStringList DeclarativeDevice::uuids() const 0145 { 0146 return m_device->uuids(); 0147 } 0148 0149 QString DeclarativeDevice::modalias() const 0150 { 0151 return m_device->modalias(); 0152 } 0153 0154 DeclarativeBattery *DeclarativeDevice::battery() const 0155 { 0156 return m_battery; 0157 } 0158 0159 DeclarativeInput *DeclarativeDevice::input() const 0160 { 0161 return m_input; 0162 } 0163 0164 DeclarativeMediaPlayer *DeclarativeDevice::mediaPlayer() const 0165 { 0166 return m_mediaPlayer; 0167 } 0168 0169 DeclarativeAdapter *DeclarativeDevice::adapter() const 0170 { 0171 return m_adapter; 0172 } 0173 0174 BluezQt::PendingCall *DeclarativeDevice::connectToDevice() 0175 { 0176 return m_device->connectToDevice(); 0177 } 0178 0179 BluezQt::PendingCall *DeclarativeDevice::disconnectFromDevice() 0180 { 0181 return m_device->disconnectFromDevice(); 0182 } 0183 0184 BluezQt::PendingCall *DeclarativeDevice::connectProfile(const QString &uuid) 0185 { 0186 return m_device->connectProfile(uuid); 0187 } 0188 0189 BluezQt::PendingCall *DeclarativeDevice::disconnectProfile(const QString &uuid) 0190 { 0191 return m_device->disconnectProfile(uuid); 0192 } 0193 0194 BluezQt::PendingCall *DeclarativeDevice::pair() 0195 { 0196 return m_device->pair(); 0197 } 0198 0199 BluezQt::PendingCall *DeclarativeDevice::cancelPairing() 0200 { 0201 return m_device->cancelPairing(); 0202 } 0203 0204 void DeclarativeDevice::updateBattery() 0205 { 0206 if (m_battery) { 0207 m_battery->deleteLater(); 0208 m_battery = nullptr; 0209 } 0210 0211 if (m_device->battery()) { 0212 m_battery = new DeclarativeBattery(m_device->battery(), this); 0213 } 0214 0215 Q_EMIT batteryChanged(m_battery); 0216 } 0217 0218 void DeclarativeDevice::updateInput() 0219 { 0220 if (m_input) { 0221 m_input->deleteLater(); 0222 m_input = nullptr; 0223 } 0224 0225 if (m_device->input()) { 0226 m_input = new DeclarativeInput(m_device->input(), this); 0227 } 0228 0229 Q_EMIT inputChanged(m_input); 0230 } 0231 0232 void DeclarativeDevice::updateMediaPlayer() 0233 { 0234 if (m_mediaPlayer) { 0235 m_mediaPlayer->deleteLater(); 0236 m_mediaPlayer = nullptr; 0237 } 0238 0239 if (m_device->mediaPlayer()) { 0240 m_mediaPlayer = new DeclarativeMediaPlayer(m_device->mediaPlayer(), this); 0241 } 0242 0243 Q_EMIT mediaPlayerChanged(m_mediaPlayer); 0244 } 0245 0246 #include "moc_declarativedevice.cpp"