tdebluez
objectmanagerImpl.h
Go to the documentation of this file.
1/*
2 *
3 * Object Manager implementation of bluez5
4 *
5 * Copyright (C) 2018 Emanoil Kotsev <deloptes@gmail.com>
6 *
7 *
8 * This file is part of libtdebluez.
9 *
10 * libtdebluez is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * libtdebluez is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with kbluetooth; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 *
24 */
25
26#ifndef OBJECTMANAGERIMPL_H_INCLUDED
27#define OBJECTMANAGERIMPL_H_INCLUDED
28
29#include <tqdbusconnection.h>
30#include <tdelocale.h>
31
32#include "interfaces/objectmanagerProxy.h"
33#include "interfaces/agentmanager1Proxy.h"
36#include "interfaces/propertiesProxy.h"
37
38#include "adapterImpl.h"
39#include "deviceImpl.h"
40
41//using namespace org::bluez;
42
43#define DBUS_CONN_NAME "TDEBluez"
44
45#define DBUS_AUTH_SERVICE_PATH "/org/trinitydesktop/tdebluez"
46#define DEVICE_PIN_CAPABILITY "KeyboardDisplay"
47
48namespace TDEBluetooth
49{
50
52{
54
55public:
56 ObjectManagerImpl(const TQString& service, const TQString& path, TQObject* parent = 0, const char* name = 0);
57
58 virtual ~ObjectManagerImpl();
63 // typedef TQValueList<TQString> ServiceList;
64
65 // --- helper to get private members of the class --- //
67 bool isConnectedToDBUS();
69 TQT_DBusConnection* getConnection();
71 bool close();
72
73 //
74 AgentManager1Proxy* getAgentManager();
75 ProfileManager1Proxy* getProfileManager();
76 HealthManager1Proxy* getHealthManager();
77 AdapterList getAdapters();
78 DeviceList getDevices();
79 // ServiceList getServices();
80 ConnectionList listConnections(const TQString&);
81
82
84 bool registerAgent(); //TQT_DBusError&
86 bool unregisterAgent(); //TQT_DBusError&
88 bool requestDefaultAgent(); //TQT_DBusError&
89
90 bool isAgentRegistered();
91
92 bool isAgentDefaultAgent();
93
94private:
95 bool initDBUS();
96 void adapterPropertiesChanged(TQString path, const TQMap<TQString, TQT_DBusVariant>& changed_properties);
97 void devicePropertiesChanged(TQString path, const TQMap<TQString, TQT_DBusVariant>& changed_properties);
98 void mediaControlPropertiesChanged(TQString path, const TQMap<TQString, TQT_DBusVariant>& changed_properties);
99
100private:
110
111signals:
112 // from ObjectManager
113 void adapterAdded(const TQString&);
115
116 void deviceAdded(const TQString&);
118
121
122 // from Adapter1
124 // void adapterModeChanged(const TQString&, const TQString&);
129 // TODO: this should be same as modeChanged
132
133 // from Device1
136 void deviceNameChanged(const TQString&, const TQString&);
138 // https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.gap.appearance.xml
140 void deviceIconChanged(const TQString&, const TQString&);
141 void devicePairedChanged(const TQString&, bool);
142 void deviceTrustedChanged(const TQString&, bool);
143 void deviceBlockedChanged(const TQString&, bool);
153
154 // from MediaControl1
157
158private slots:
159 bool reconnect();
160
161 // inherited from ObjectManager
162 void slotInterfacesAdded(const TQT_DBusObjectPath& object, const TQT_DBusDataMap< TQString >& interfaces);
163 void slotInterfacesRemoved(const TQT_DBusObjectPath& object, const TQStringList& interfaces);
164
170
171}; // class ObjectManagerImpl
172
173}; // namespace TDEBluetooth
174
175#endif //OBJECTMANAGERIMPL_H_INCLUDED
176
177// End of File
void deviceServiceDataChanged(const TQString &, TQT_DBusDataMap< TQString >)
void adapterRemoved(const TQString &)
void adapterNameChanged(const TQString &, const TQString &)
void deviceUUIDsChanged(const TQString &, TQStringList)
void mediaControlRemoved(const TQString &)
void deviceNameChanged(const TQString &, const TQString &)
void adapterDiscoverableChanged(const TQString &, bool state)
void deviceServicesResolvedChanged(const TQString &, bool)
void deviceClassChanged(const TQString &, TQ_UINT32)
TQMap< TQString, org::freedesktop::DBus::PropertiesProxy * > PropertiesMap
void deviceAppearanceChanged(const TQString &, TQ_UINT32)
void adapterPowerOnChanged(const TQString &, bool state)
void adapterDiscoverableTimeoutChanged(const TQString &, TQ_UINT32 timeout)
void deviceRSSIChanged(const TQString &, TQ_INT16)
TQValueList< TQString > ConnectionList
void deviceAliasChanged(const TQString &, const TQString &)
void deviceManufacturerDataChanged(const TQString &, TQT_DBusDataMap< TQ_UINT16 >)
TQT_DBusConnection dBusConn
TQt connection to D-Bus.
void mediaControlPlayerChanged(const TQString &, const TQT_DBusObjectPath &)
void deviceIconChanged(const TQString &, const TQString &)
TQValueList< TQString > DeviceList
void deviceAdded(const TQString &)
void deviceConnectedChanged(const TQString &, bool)
ProfileManager1Proxy * profileManager
void adapterAdded(const TQString &)
TQValueList< TQString > AdapterList
void deviceAddressChanged(const TQString &, const TQString &)
void deviceTrustedChanged(const TQString &, bool)
void devicePairedChanged(const TQString &, bool)
void deviceBlockedChanged(const TQString &, bool)
HealthManager1Proxy * healthManager
void adapterAliasChanged(const TQString &, const TQString &)
void adapterClassChanged(const TQString &, TQ_UINT32 classvalue)
void deviceRemoved(const TQString &)
void mediaControlAdded(const TQString &)
void deviceLegacyPairingChanged(const TQString &, bool)
void mediaControlConnectedChanged(const TQString &, bool state)
void adapterDiscoveringChanged(const TQString &, bool state)
void deviceAdapterChanged(const TQString &, const TQT_DBusObjectPath &)
void deviceTxPowerChanged(const TQString &, TQ_INT16)