File indexing completed on 2024-12-01 12:29:49
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 #ifndef BLUEZQT_MANAGER_P_H 0010 #define BLUEZQT_MANAGER_P_H 0011 0012 #include <QDBusContext> 0013 #include <QHash> 0014 #include <QObject> 0015 0016 #include "bluezagentmanager1.h" 0017 #include "bluezprofilemanager1.h" 0018 #include "dbusobjectmanager.h" 0019 #include "rfkill.h" 0020 #include "types.h" 0021 0022 namespace BluezQt 0023 { 0024 typedef org::freedesktop::DBus::ObjectManager DBusObjectManager; 0025 typedef org::bluez::AgentManager1 BluezAgentManager; 0026 typedef org::bluez::ProfileManager1 BluezProfileManager; 0027 0028 class Manager; 0029 class Adapter; 0030 class Device; 0031 class AdapterPrivate; 0032 0033 class ManagerPrivate : public QObject, protected QDBusContext 0034 { 0035 Q_OBJECT 0036 0037 public: 0038 explicit ManagerPrivate(Manager *parent); 0039 0040 void init(); 0041 void nameHasOwnerFinished(QDBusPendingCallWatcher *watcher); 0042 void load(); 0043 void getManagedObjectsFinished(QDBusPendingCallWatcher *watcher); 0044 void clear(); 0045 0046 AdapterPtr findUsableAdapter() const; 0047 0048 void serviceRegistered(); 0049 void serviceUnregistered(); 0050 void interfacesAdded(const QDBusObjectPath &objectPath, const QVariantMapMap &interfaces); 0051 void interfacesRemoved(const QDBusObjectPath &objectPath, const QStringList &interfaces); 0052 void adapterRemoved(const AdapterPtr &adapter); 0053 void adapterPoweredChanged(bool powered); 0054 void rfkillStateChanged(Rfkill::State state); 0055 0056 void addAdapter(const QString &adapterPath, const QVariantMap &properties); 0057 void addDevice(const QString &devicePath, const QVariantMap &properties); 0058 void removeAdapter(const QString &adapterPath); 0059 void removeDevice(const QString &devicePath); 0060 0061 bool rfkillBlocked() const; 0062 void setUsableAdapter(const AdapterPtr &adapter); 0063 0064 Manager *q; 0065 Rfkill *m_rfkill; 0066 DBusObjectManager *m_dbusObjectManager; 0067 BluezAgentManager *m_bluezAgentManager; 0068 BluezProfileManager *m_bluezProfileManager; 0069 0070 QHash<QString, AdapterPtr> m_adapters; 0071 QHash<QString, DevicePtr> m_devices; 0072 AdapterPtr m_usableAdapter; 0073 0074 bool m_initialized; 0075 bool m_bluezRunning; 0076 bool m_loaded; 0077 bool m_adaptersLoaded; 0078 bool m_bluetoothBlocked; 0079 0080 Q_SIGNALS: 0081 void initError(const QString &errorText); 0082 void initFinished(); 0083 0084 private Q_SLOTS: 0085 void propertiesChanged(const QString &interface, const QVariantMap &changed, const QStringList &invalidated); 0086 void dummy(); 0087 }; 0088 0089 } // namespace BluezQt 0090 0091 #endif // BLUEZQT_MANAGER_P_H