You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libcutefish/bluez/declarativedevice.h

136 lines
4.3 KiB
C++

/*
* BluezQt - Asynchronous BlueZ wrapper library
*
* SPDX-FileCopyrightText: 2015 David Rosca <nowrep@gmail.com>
*
* SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#ifndef DECLARATIVEDEVICE_H
#define DECLARATIVEDEVICE_H
#include "declarativeinput.h"
#include "declarativemediaplayer.h"
#include <BluezQt/Device>
class DeclarativeAdapter;
// class DeclarativeBattery;
class DeclarativeDevice : public QObject
{
Q_OBJECT
Q_PROPERTY(QString ubi READ ubi CONSTANT)
Q_PROPERTY(QString address READ address CONSTANT)
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(QString friendlyName READ friendlyName NOTIFY friendlyNameChanged)
Q_PROPERTY(QString remoteName READ remoteName NOTIFY remoteNameChanged)
Q_PROPERTY(quint32 deviceClass READ deviceClass NOTIFY deviceClassChanged)
Q_PROPERTY(BluezQt::Device::Type type READ type NOTIFY typeChanged)
Q_PROPERTY(quint16 appearance READ appearance NOTIFY appearanceChanged)
Q_PROPERTY(QString icon READ icon NOTIFY iconChanged)
Q_PROPERTY(bool paired READ isPaired NOTIFY pairedChanged)
Q_PROPERTY(bool trusted READ isTrusted WRITE setTrusted NOTIFY trustedChanged)
Q_PROPERTY(bool blocked READ isBlocked WRITE setBlocked NOTIFY blockedChanged)
Q_PROPERTY(bool legacyPairing READ hasLegacyPairing NOTIFY legacyPairingChanged)
Q_PROPERTY(qint16 rssi READ rssi NOTIFY rssiChanged)
Q_PROPERTY(bool connected READ isConnected NOTIFY connectedChanged)
Q_PROPERTY(QStringList uuids READ uuids NOTIFY uuidsChanged)
Q_PROPERTY(QString modalias READ modalias NOTIFY modaliasChanged)
Q_PROPERTY(DeclarativeInput *input READ input NOTIFY inputChanged)
Q_PROPERTY(DeclarativeMediaPlayer *mediaPlayer READ mediaPlayer NOTIFY mediaPlayerChanged)
Q_PROPERTY(DeclarativeAdapter *adapter READ adapter CONSTANT)
public:
explicit DeclarativeDevice(BluezQt::DevicePtr device, DeclarativeAdapter *adapter);
QString ubi() const;
QString address() const;
QString name() const;
void setName(const QString &name);
QString friendlyName() const;
QString remoteName() const;
quint32 deviceClass() const;
BluezQt::Device::Type type() const;
quint16 appearance() const;
QString icon() const;
bool isPaired() const;
bool isTrusted() const;
void setTrusted(bool trusted);
bool isBlocked() const;
void setBlocked(bool blocked);
bool hasLegacyPairing() const;
qint16 rssi() const;
bool isConnected() const;
QStringList uuids() const;
QString modalias() const;
// DeclarativeBattery *battery() const;
DeclarativeInput *input() const;
DeclarativeMediaPlayer *mediaPlayer() const;
DeclarativeAdapter *adapter() const;
public Q_SLOTS:
BluezQt::PendingCall *connectToDevice();
BluezQt::PendingCall *disconnectFromDevice();
BluezQt::PendingCall *connectProfile(const QString &uuid);
BluezQt::PendingCall *disconnectProfile(const QString &uuid);
BluezQt::PendingCall *pair();
BluezQt::PendingCall *cancelPairing();
Q_SIGNALS:
void deviceRemoved(DeclarativeDevice *device);
void deviceChanged(DeclarativeDevice *device);
void nameChanged(const QString &name);
void friendlyNameChanged(const QString &friendlyName);
void remoteNameChanged(const QString &remoteName);
void deviceClassChanged(quint32 deviceClass);
void typeChanged(BluezQt::Device::Type type);
void appearanceChanged(quint16 appearance);
void iconChanged(const QString &icon);
void pairedChanged(bool paired);
void trustedChanged(bool trusted);
void blockedChanged(bool blocked);
void legacyPairingChanged(bool legacyPairing);
void rssiChanged(qint16 rssi);
void connectedChanged(bool connected);
void uuidsChanged(const QStringList &uuids);
void modaliasChanged(const QString &modalias);
// void batteryChanged(DeclarativeBattery *battery);
void inputChanged(DeclarativeInput *input);
void mediaPlayerChanged(DeclarativeMediaPlayer *mediaPlayer);
private:
void updateBattery();
void updateInput();
void updateMediaPlayer();
BluezQt::DevicePtr m_device;
DeclarativeAdapter *m_adapter;
// DeclarativeBattery *m_battery;
DeclarativeInput *m_input;
DeclarativeMediaPlayer *m_mediaPlayer;
};
#endif // DECLARATIVEDEVICE_H