diff options
Diffstat (limited to 'src/bt.cc')
| -rw-r--r-- | src/bt.cc | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -205,9 +205,11 @@ class BaseProxy : public sdbus::ProxyInterfaces<sdbus::Properties_proxy> { protected: BaseProxy(sdbus::IConnection& connection, sdbus::ObjectPath const& path, + sdbus::InterfaceName const& interface, std::map<sdbus::PropertyName, size_t> const& names) : sdbus::ProxyInterfaces<sdbus::Properties_proxy>(connection, kService, path), + interface_(interface), names_(names) {} virtual void update(size_t field, sdbus::Variant const& value) = 0; @@ -229,7 +231,7 @@ class BaseProxy : public sdbus::ProxyInterfaces<sdbus::Properties_proxy> { const sdbus::InterfaceName& interface_name, const std::map<sdbus::PropertyName, sdbus::Variant>& changed, const std::vector<sdbus::PropertyName>& invalidated) override { - if (interface_name != kAdapterInterface) + if (interface_name != interface_) return; ++waiting_; for (auto const& pair : changed) { @@ -262,6 +264,7 @@ class BaseProxy : public sdbus::ProxyInterfaces<sdbus::Properties_proxy> { } } + sdbus::InterfaceName const& interface_; std::map<sdbus::PropertyName, size_t> const& names_; uint8_t waiting_{0}; bool updated_{false}; @@ -279,7 +282,8 @@ class DeviceProxy : public BaseProxy, public Device { DeviceProxy(IManager& manager, sdbus::IConnection& connection, sdbus::ObjectPath const& path, std::map<sdbus::PropertyName, sdbus::Variant> const& properties) - : BaseProxy(connection, path, kNames), manager_(manager) { + : BaseProxy(connection, path, kDeviceInterface, kNames), + manager_(manager) { init(properties); } @@ -370,7 +374,8 @@ class AdapterProxy : public BaseProxy, public Adapter { AdapterProxy(IManager& manager, sdbus::IConnection& connection, sdbus::ObjectPath const& path, std::map<sdbus::PropertyName, sdbus::Variant> const& properties) - : BaseProxy(connection, path, kNames), manager_(manager) { + : BaseProxy(connection, path, kAdapterInterface, kNames), + manager_(manager) { init(properties); } |
