File indexing completed on 2025-01-19 12:42:13
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 #ifndef DECLARATIVEDEVICE_H 0010 #define DECLARATIVEDEVICE_H 0011 0012 #include "declarativeinput.h" 0013 #include "declarativemediaplayer.h" 0014 #include "device.h" 0015 0016 class DeclarativeAdapter; 0017 class DeclarativeBattery; 0018 0019 class DeclarativeDevice : public QObject 0020 { 0021 Q_OBJECT 0022 0023 Q_PROPERTY(QString ubi READ ubi CONSTANT) 0024 Q_PROPERTY(QString address READ address CONSTANT) 0025 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) 0026 Q_PROPERTY(QString friendlyName READ friendlyName NOTIFY friendlyNameChanged) 0027 Q_PROPERTY(QString remoteName READ remoteName NOTIFY remoteNameChanged) 0028 Q_PROPERTY(quint32 deviceClass READ deviceClass NOTIFY deviceClassChanged) 0029 Q_PROPERTY(BluezQt::Device::Type type READ type NOTIFY typeChanged) 0030 Q_PROPERTY(quint16 appearance READ appearance NOTIFY appearanceChanged) 0031 Q_PROPERTY(QString icon READ icon NOTIFY iconChanged) 0032 Q_PROPERTY(bool paired READ isPaired NOTIFY pairedChanged) 0033 Q_PROPERTY(bool trusted READ isTrusted WRITE setTrusted NOTIFY trustedChanged) 0034 Q_PROPERTY(bool blocked READ isBlocked WRITE setBlocked NOTIFY blockedChanged) 0035 Q_PROPERTY(bool legacyPairing READ hasLegacyPairing NOTIFY legacyPairingChanged) 0036 Q_PROPERTY(qint16 rssi READ rssi NOTIFY rssiChanged) 0037 Q_PROPERTY(bool connected READ isConnected NOTIFY connectedChanged) 0038 Q_PROPERTY(QStringList uuids READ uuids NOTIFY uuidsChanged) 0039 Q_PROPERTY(QString modalias READ modalias NOTIFY modaliasChanged) 0040 Q_PROPERTY(DeclarativeBattery *battery READ battery NOTIFY batteryChanged) 0041 Q_PROPERTY(DeclarativeInput *input READ input NOTIFY inputChanged) 0042 Q_PROPERTY(DeclarativeMediaPlayer *mediaPlayer READ mediaPlayer NOTIFY mediaPlayerChanged) 0043 Q_PROPERTY(DeclarativeAdapter *adapter READ adapter CONSTANT) 0044 0045 public: 0046 explicit DeclarativeDevice(BluezQt::DevicePtr device, DeclarativeAdapter *adapter); 0047 0048 QString ubi() const; 0049 0050 QString address() const; 0051 0052 QString name() const; 0053 void setName(const QString &name); 0054 0055 QString friendlyName() const; 0056 0057 QString remoteName() const; 0058 0059 quint32 deviceClass() const; 0060 0061 BluezQt::Device::Type type() const; 0062 0063 quint16 appearance() const; 0064 0065 QString icon() const; 0066 0067 bool isPaired() const; 0068 0069 bool isTrusted() const; 0070 void setTrusted(bool trusted); 0071 0072 bool isBlocked() const; 0073 void setBlocked(bool blocked); 0074 0075 bool hasLegacyPairing() const; 0076 0077 qint16 rssi() const; 0078 0079 bool isConnected() const; 0080 0081 QStringList uuids() const; 0082 0083 QString modalias() const; 0084 0085 DeclarativeBattery *battery() const; 0086 0087 DeclarativeInput *input() const; 0088 0089 DeclarativeMediaPlayer *mediaPlayer() const; 0090 0091 DeclarativeAdapter *adapter() const; 0092 0093 public Q_SLOTS: 0094 BluezQt::PendingCall *connectToDevice(); 0095 BluezQt::PendingCall *disconnectFromDevice(); 0096 BluezQt::PendingCall *connectProfile(const QString &uuid); 0097 BluezQt::PendingCall *disconnectProfile(const QString &uuid); 0098 BluezQt::PendingCall *pair(); 0099 BluezQt::PendingCall *cancelPairing(); 0100 0101 Q_SIGNALS: 0102 void deviceRemoved(DeclarativeDevice *device); 0103 void deviceChanged(DeclarativeDevice *device); 0104 void nameChanged(const QString &name); 0105 void friendlyNameChanged(const QString &friendlyName); 0106 void remoteNameChanged(const QString &remoteName); 0107 void deviceClassChanged(quint32 deviceClass); 0108 void typeChanged(BluezQt::Device::Type type); 0109 void appearanceChanged(quint16 appearance); 0110 void iconChanged(const QString &icon); 0111 void pairedChanged(bool paired); 0112 void trustedChanged(bool trusted); 0113 void blockedChanged(bool blocked); 0114 void legacyPairingChanged(bool legacyPairing); 0115 void rssiChanged(qint16 rssi); 0116 void connectedChanged(bool connected); 0117 void uuidsChanged(const QStringList &uuids); 0118 void modaliasChanged(const QString &modalias); 0119 void batteryChanged(DeclarativeBattery *battery); 0120 void inputChanged(DeclarativeInput *input); 0121 void mediaPlayerChanged(DeclarativeMediaPlayer *mediaPlayer); 0122 0123 private: 0124 void updateBattery(); 0125 void updateInput(); 0126 void updateMediaPlayer(); 0127 0128 BluezQt::DevicePtr m_device; 0129 DeclarativeAdapter *m_adapter; 0130 DeclarativeBattery *m_battery; 0131 DeclarativeInput *m_input; 0132 DeclarativeMediaPlayer *m_mediaPlayer; 0133 }; 0134 0135 #endif // DECLARATIVEDEVICE_H